Re: [PATCH v5 2/4] mm: Provide kernel parameter to allow disabling page init poisoning

From: Alexander Duyck
Date: Wed Sep 26 2018 - 11:25:23 EST


On 9/26/2018 12:38 AM, Michal Hocko wrote:
On Tue 25-09-18 13:20:12, Alexander Duyck wrote:
[...]
+ vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y.
+ May slow down system boot speed, especially when
+ enabled on systems with a large amount of memory.
+ All options are enabled by default, and this
+ interface is meant to allow for selectively
+ enabling or disabling specific virtual memory
+ debugging features.
+
+ Available options are:
+ P Enable page structure init time poisoning
+ - Disable all of the above options

I agree with Dave that this is confusing as hell. So what does vm_debug
(without any options means). I assume it's NOP and all debugging is
enabled and that is the default. What if I want to disable _only_ the
page struct poisoning. The weird lookcing `-' will disable all other
options that we might gather in the future.

With no options it works just like slub_debug and enables all available options. So in our case it is a NOP since we wanted the debugging enabled by default.

Why cannot you simply go with [no]vm_page_poison[=on/off]?

That is what I had to begin with, but Dave Hansen and Dan Williams suggested that I go with a slub_debug style interface so we could extend it in the future.

It would probably make more sense if we had additional options added, but we only have one option for now so the only values we really have are 'P' and '-' for now.