Messages in this thread | | | Date | Thu, 17 Aug 2023 07:01:04 +0800 | From | "Yin, Fengwei" <> | Subject | Re: [linus:master] [io_uring] caec5ebe77: stress-ng.io-uring.ops_per_sec -33.1% regression |
| |
Hi Jens,
On 8/17/2023 3:27 AM, Jens Axboe wrote: >> static const struct file_operations shmem_file_operations = { >> .mmap = shmem_mmap, >> - .open = generic_file_open, >> + .open = shmem_file_open, >> .get_unmapped_area = shmem_get_unmapped_area, >> #ifdef CONFIG_TMPFS >> .llseek = shmem_file_llseek, >> >> The performance change when running stress-ng.io_uring with testing file >> in tmpfs is gone. >> >> This is just the information FYI. I may miss something obviously here. Thanks. > This actually highlighted a problem with the old nowait logic, in that > it assumed !bdev would mean that nowait was fine. Looking at shmem, we > definitely need IOCB_NOWAIT handling in there to make that safe. So the > old code was buggy, and conversely, we can't also just add the > FMODE_NOWAIT without first making those improvements to shmem first. Thanks a lot for the explanation.
> > Basically you'd want to ensure that the read_iter and write_iter paths > honor IOCB_NOWAIT. Once that's done, then FMODE_NOWAIT can indeed be set > in the open helper. > > I might take a stab at this, but I'm out sick right now so don't think > it'd be cohesive if I did it right now. Take care.
Regards Yin, Fengwei
| |