On Fri, Dec 7, 2018 at 4:11 AM Christoph Hellwig <hch@xxxxxx> wrote: > > On Thu, Dec 06, 2018 at 10:11:39AM -0800, Darrick J. Wong wrote: > > I think this has the same problem that Dave complained about back in > > October -- if I have a hard disk with 512b sectors, a xfs with 4k > > blocks, and mount it on a machine with 64k pages, then single-sector > > buffers will get a small slab allocation, but single-fsb buffers will > > now fall back to grabbing a 64k page to hold 4k worth of data. > > > > Even if we add a second slab for single-fsb blocks, we'll run into the > > same problem if the filesystem contains multi-block directory blocks, so > > then we'd potentially need a third slab, and... is there a way to ask a > > slab allocator for multiple contiguous objects totalling less than > > PAGE_SIZE bytes? > > No, unfortunately there is not. And the sad part is that generally it > will give you aligned ones, just with slub debugging turned on it won't. page_frag_alloc() can support that, could we fix it for this use case? thanks, Ming Lei