Re: [RFC 0/5] Ext4: Add support for blocksize < pagesize for dioread_nolock
From: Ritesh Harjani <hidden>
Date: 2019-11-07 11:16:26
Also in:
linux-fsdevel
On 11/6/19 10:53 PM, Jan Kara wrote:
On Wed 16-10-19 13:07:06, Ritesh Harjani wrote:quoted
This patch series adds the support for blocksize < pagesize for dioread_nolock feature. Since in case of blocksize < pagesize, we can have multiple small buffers of page as unwritten extents, we need to maintain a vector of these unwritten extents which needs the conversion after the IO is complete. Thus, we maintain a list of tuple <offset, size> pair (io_end_vec) for this & traverse this list to do the unwritten to written conversion. Appreciate any reviews/comments on this patches.I know Ted has merged the patches already so this is just informational but I've read the patches and they look fine to me. Thanks for the work! I was
Appreciate your help too for valuable feedback & pointers at various places.
just thinking that we could actually make the vector tracking more efficient because the io_end always looks like: one-big-extent-to-fully-write + whatever it takes to fully write out the last page So your vectors could be also expressed as "extent to write" + bitmap of blocks written in the last page. And 64-bits are enough for the bitmap for anything ext4 supports so we could easily save allocation of ioend_vec etc. Just a suggestion.
Yes, sounds good to me. Although slab allocations are also fast. However I agree this should be more efficient and will also avoid the list management and or list pointer traversal. Sure, will work over this optimization once I get some closure on some ongoing open items. Thanks & appreciate your feedback. ritesh