Re: [PATCH v10 01/10] fs: Allow fine-grained control of folio sizes

Matthew Wilcox
2024-07-16T15:26:18Z

On Mon, Jul 15, 2024 at 11:44:48AM +0200, Pankaj Raghav (Samsung) wrote:
> +/*
> + * mapping_max_folio_size_supported() - Check the max folio size supported
> + *
> + * The filesystem should call this function at mount time if there is a
> + * requirement on the folio mapping size in the page cache.
> + */
> +static inline size_t mapping_max_folio_size_supported(void)
> +{
> + if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
> + return 1U << (PAGE_SHIFT + MAX_PAGECACHE_ORDER);
> + return PAGE_SIZE;
> +}

There's no need for this to be part of this patch. I've removed stuff
from this patch before that's not needed, please stop adding unnecessary
functions. This would logically be part of patch 10.

> +static inline void mapping_set_folio_order_range(struct address_space *mapping,
> + unsigned int min,
> + unsigned int max)
> +{
> + if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
> + return;
> +
> + if (min > MAX_PAGECACHE_ORDER) {
> + VM_WARN_ONCE(1,
> + "min order > MAX_PAGECACHE_ORDER. Setting min_order to MAX_PAGECACHE_ORDER");
> + min = MAX_PAGECACHE_ORDER;
> + }

This is really too much. It's something that will never happen. Just
delete the message.

> + if (max > MAX_PAGECACHE_ORDER) {
> + VM_WARN_ONCE(1,
> + "max order > MAX_PAGECACHE_ORDER. Setting max_order to MAX_PAGECACHE_ORDER");
> + max = MAX_PAGECACHE_ORDER;

Absolutely not. If the filesystem declares it can support a block size
of 4TB, then good for it. We just silently clamp it.