Re: [linux-next:master] [mm] 7b32f64bc5: pts.svt-av1.Preset13.Bosphorus4K.frames_per_second 45.8% regression
Suren Baghdasaryan <[email protected]> Thu, 18 Jun 2026 09:51:53 -0700
| Newsgroups | dev.linux.lists.oe-lkp,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm |
|---|---|
| Message-ID | <CAJuCfpH_Fp=J-m-kVZ3VVmqH0cAfNX6CQKWt3XmAJq1Rp9sFwQ@mail.gmail.com> |
On Thu, Jun 18, 2026 at 9:32=E2=80=AFAM Pedro Falcato <[email protected]> wr= ote: > > On Thu, Jun 18, 2026 at 04:03:43PM +0000, Suren Baghdasaryan wrote: > > On Thu, Jun 18, 2026 at 2:30=E2=80=AFPM Lorenzo Stoakes <[email protected]= > wrote: > > > > > > On Thu, Jun 18, 2026 at 11:30:47AM +0200, Jan Kara wrote: > > > > On Thu 18-06-26 16:00:42, kernel test robot wrote: > > > > > Hello, > > > > > > > > > > kernel test robot noticed a 45.8% regression of pts.svt-av1.Prese= t13.Bosphorus4K.frames_per_second on: > > > > > > > > This one looks serious enough and real. It would be good to figure = out what > > > > happens in this benchmark that it benefits from the readahead acros= s VMA > > > > boundaries so much... > > > > > > I think a revert first no? This seems pretty huge for something that = isn't key > > > to the kernel, then a new attempt can be tried with this issue addres= sed > > > perhaps? > > > > A quick search yields: "The > > pts.svt-av1.Preset13.Bosphorus4K.frames_per_second is a benchmarking > > metric from the Phoronix Test Suite that measures how many frames per > > second a CPU can encode using the open-source SVT-AV1 video encoder." > > > > If this is a video encoding benchmark I would expect it to explicitly > > prefetch the data from the disk before measuring the encoding speed. > > If limiting readahead caused this regression, I suspect the benchmark > > doesn't explicitly prefetch the data... > > Well, commonly video data doesn't actually fit in memory :) > > A quick look at the code (I think it's https://gitlab.com/AOMediaCodec/SV= T-AV1/-/blob/master/Source/App/app_process_cmd.c#L821) > suggests it is progressively mapping the file data for a given frame > (or frames?). So the old behavior would result in page faults for a given > frame starting readahead for the next few frames. This looks reasonable. Yeah, looks like it's mapping one frame at a time and even that is done with 3 mmap calls - it maps luma_read_size and then 2 chroma_read_size chunks which are consequitive and could have been mapped with one syscall. Seems very inefficient but I guess it's legit. > > FWIW I suspected this was a really weird case regarding mprotect or > something, and I'm happy it isn't; but at least I had a suggestion for th= at - > for this, maybe dropping the change (for now?) is the best course of acti= on. > > -- > Pedro