Re: [PATCH 1/5] mm: Add support for unaccepted memory

From: Dave Hansen
Date: Tue Aug 10 2021 - 14:56:18 EST


On 8/10/21 11:30 AM, Andi Kleen wrote:
>> So, this is right in the fast path of the page allocator.  It's a
>> one-time thing per 2M page, so it's not permanent.
>>
>> *But* there's both a global spinlock and a firmware call hidden in
>> clear_page_offline().  That's *GOT* to hurt if you were, for instance,
>> running a benchmark while this code path is being tickled.  Not just to
>>
>> That could be just downright catastrophic for scalability, albeit
>> temporarily
>
> This would be only a short blib at initialization until the system
> reaches steady state. So yes it would be temporary, but very short at that.

But it can't be *that* short or we wouldn't be going to all this trouble
in the first place. This can't simultaneously be both bad enough that
this series exists, but minor enough that nobody will notice or care at
runtime.

In general, I'd rather have a system which is running userspace, slowly,
than one where I'm waiting for the kernel. The trade-off being made is
a *good* trade-off for me. But, not everyone is going to agree with me.

This also begs the question of how folks know when this "blip" is over.
Do we have a counter for offline pages? Is there any way to force page
acceptance? Or, are we just stuck allocating a bunch of memory to warm
up the system?

How do folks who care about these new blips avoid them?

Again, I don't particularly care about how this affects the
benchmarkers. But, I do care that they're going to hound us when these
blips start impacting their 99th percentile tail latencies.