Re: [PATCH v2 2/4] nfs/blocklayout: Use bulk page allocation APIs

Christoph Hellwig
2024-06-22T05:08:16Z

On Fri, Jun 21, 2024 at 12:22:30PM -0400, cel@kernel.org wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
>
> nfs4_get_device_info() frequently requests more than a few pages
> when provisioning a nfs4_deviceid_node object. Make this more
> efficient by using alloc_pages_bulk_array(). This API is known to be
> several times faster than an open-coded loop around alloc_page().
>
> release_pages() is folio-enabled so it is also more efficient than
> repeatedly invoking __free_pages().

This isn't really a pnfs fix, right? Just a little optimization.
It does looks fine to me:

Reviewed-by: Christoph Hellwig <hch@lst.de>

But I'd really with if we could do better than this with lazy
decoding in ->alloc_deviceid_node, which (at least for blocklayout)
knows roughly how much we need to decode after the first value
parsed. Or at least cache it if it is that frequent (which it
really shouldn't be due to the device id cache, or am I missing
something?)