On Fri, Sep 12, 2025 at 09:53:02AM +0200, David Hildenbrand wrote: > On 11.09.25 19:56, Luck, Tony wrote: > > On Thu, Sep 11, 2025 at 10:46:10AM +0200, David Hildenbrand wrote: > > > On 10.09.25 18:15, Kyle Meyer wrote: > > > > Soft offlining a HugeTLB page reduces the available HugeTLB page pool. > > > > Since HugeTLB pages are preallocated, reducing the available HugeTLB > > > > page pool can cause allocation failures. > > > > > > > > /proc/sys/vm/enable_soft_offline provides a sysctl interface to > > > > disable/enable soft offline: > > > > > > > > 0 - Soft offline is disabled. > > > > 1 - Soft offline is enabled. > > > > > > > > The current sysctl interface does not distinguish between HugeTLB pages > > > > and other page types. > > > > > > > > Disable soft offline for HugeTLB pages by default (1) and extend the > > > > sysctl interface to preserve existing behavior (2): > > > > > > > > 0 - Soft offline is disabled. > > > > 1 - Soft offline is enabled (excluding HugeTLB pages). > > > > 2 - Soft offline is enabled (including HugeTLB pages). > > > > > > > > Update documentation for the sysctl interface, reference the sysctl > > > > interface in the sysfs ABI documentation, and update HugeTLB soft > > > > offline selftests. > > > > > > I'm sure you spotted that the documentation for > > > "/sys/devices/system/memory/soft_offline_pag" resides under "testing". > > > > But that is only one of several places in the kernel that > > feed into the page offline code. > > Right, I can see one more call to soft_offline_page() from > arch/parisc/kernel/pdt.c. > > And there is memory_failure_work_func() that I missed. > > So agreed that this goes beyond testing. > > It caught my attention because you ended up modifying documentation residing > in Documentation/ABI/testing/sysfs-memory-page-offline. > > Reading 56374430c5dfc that Kyle pointed out is gets clearer. > > So the patch motivation/idea makes sense to me. > > > I'll note two things: > > (1) The interface design is not really extensible. Imagine if we want to > exclude yet another page type. > > Can we maybe add a second interface that defines a filter for types? > > Alternatively, you could use all the remaining flags as such a filter. > > 0 - Soft offline is completely disabled. > 1 - Soft offline is enabled except for manually disabled types. > > Filter > > 2 - disable hugetlb. > > So value 3 would give you "enable all except hugetlb" etc. > > We could add in the future > > 4 - disable guest_memfd (just some random example) > > > Then you > > 2) Changing the semantics of the value "1" > > IIUC, you are changing the semantics of value "1". It used to mean > "SOFT_OFFLINE_ENABLED" now it is "SOFT_OFFLINE_ENABLED_SKIP_HUGETLB", which > is a change in behavior. > > If that is the case, I don't think that's okay. > > > 2) I am not sure about changing the default. That should be an admin/ > distro decision. Thank you, that sounds good to me. I'll put something together. Thanks, Kyle Meyer