Re: [RFC PATCH 08/15] fs: proc: use PAGES_PER_SECTION for page offline checking period.

From: Mike Rapoport
Date: Sat Aug 07 2021 - 06:32:40 EST


On Thu, Aug 05, 2021 at 03:02:46PM -0400, Zi Yan wrote:
> From: Zi Yan <ziy@xxxxxxxxxx>
>
> It keeps the existing behavior after MAX_ORDER is increased beyond
> a section size.
>
> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx>
> Cc: Mike Rapoport <rppt@xxxxxxxxxx>
> Cc: David Hildenbrand <david@xxxxxxxxxx>
> Cc: Oscar Salvador <osalvador@xxxxxxx>
> Cc: Ying Chen <chenying.kernel@xxxxxxxxxxxxx>
> Cc: Feng Zhou <zhoufeng.zf@xxxxxxxxxxxxx>
> Cc: linux-fsdevel@xxxxxxxxxxxxxxx
> Cc: linux-mm@xxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
> fs/proc/kcore.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
> index 3f148759a5fd..77b7ba48fb44 100644
> --- a/fs/proc/kcore.c
> +++ b/fs/proc/kcore.c
> @@ -486,7 +486,7 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
> }
> }
>
> - if (page_offline_frozen++ % MAX_ORDER_NR_PAGES == 0) {
> + if (page_offline_frozen++ % PAGES_PER_SECTION == 0) {

The behavior changes here. E.g. with default configuration on x86 instead
of cond_resched() every 2M we get cond_resched() every 128M.

I'm not saying it's wrong but at least it deserves an explanation why.

> page_offline_thaw();
> cond_resched();
> page_offline_freeze();
> --
> 2.30.2
>

--
Sincerely yours,
Mike.