On Mon, Nov 22, 2021 at 04:32:29PM +0100, Michal Hocko wrote: > Hi, > The previous version has been posted here [1] > > I hope I have addressed all the feedback. There were some suggestions > for further improvements but I would rather make this smaller as I > cannot really invest more time and I believe further changes can be done > on top. > > This version is a rebase on top of the current Linus tree. Except for > the review feedback and conflicting changes in the area there is only > one change to filter out __GFP_NOFAIL from the bulk allocator. This is > not necessary strictly speaking AFAICS but I found it less confusing > because vmalloc has its fallback strategy and the bulk allocator is > meant only for the fast path. > > Original cover: > Based on a recent discussion with Dave and Neil [2] I have tried to > implement NOFS, NOIO, NOFAIL support for the vmalloc to make > life of kvmalloc users easier. > > A requirement for NOFAIL support for kvmalloc was new to me but this > seems to be really needed by the xfs code. > > NOFS/NOIO was a known and a long term problem which was hoped to be > handled by the scope API. Those scope should have been used at the > reclaim recursion boundaries both to document them and also to remove > the necessity of NOFS/NOIO constrains for all allocations within that > scope. Instead workarounds were developed to wrap a single allocation > instead (like ceph_kvmalloc). > > First patch implements NOFS/NOIO support for vmalloc. The second one > adds NOFAIL support and the third one bundles all together into kvmalloc > and drops ceph_kvmalloc which can use kvmalloc directly now. > > I hope I haven't missed anything in the vmalloc allocator. Correct __GFP_NOLOCKDEP support is also needed. See: https://lore.kernel.org/linux-mm/20211119225435.GZ449541@xxxxxxxxxxxxxxxxxxx/ Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx