Messages in this thread | | | Date | Wed, 20 Jan 2021 10:12:01 -0500 (EST) | From | Mikulas Patocka <> | Subject | Re: Expense of read_iter |
| |
On Wed, 20 Jan 2021, Jan Kara wrote:
> Yeah, I agree. I'm against ext4 private solution for this read problem. And > I'm also against duplicating ->read_iter functionatily in ->read handler. > The maintenance burden of this code duplication is IMHO just too big. We > rather need to improve the generic code so that the fast path is faster. > And every filesystem will benefit because this is not ext4 specific > problem. > > Honza
Do you have some idea how to optimize the generic code that calls ->read_iter?
vfs_read calls ->read if it is present. If not, it calls new_sync_read. new_sync_read's frame size is 128 bytes - it holds the structures iovec, kiocb and iov_iter. new_sync_read calls ->read_iter.
I have found out that the cost of calling new_sync_read is 3.3%, Zhongwei found out 3.9%. (the benchmark repeatedy reads the same 4k page)
I don't see any way how to optimize new_sync_read or how to reduce its frame size. Do you?
Mikulas
| |