Re: [PATCH v4 2/8] init.h: add __read_mostly to early_param_on_off()

From: Borislav Petkov
Date: Thu Apr 30 2015 - 12:00:55 EST


On Wed, Apr 29, 2015 at 02:44:21PM -0700, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>

So this one is missing a commit message too but we need to talk about
this. Why are we adding __read_mostly in the macro? This would put every
param declared this way into __section__(".data..read_mostly") and I'm
not really convinced that is needed.

Those setup params get accessed a couple of times only during boot, in
non-critical paths so we don't really care.

If you care about pat_enabled being read a lot, you could do:

int __read_mostly pat_enabled;

only for it.

But for every param declared this way? I'm not sure we want that...

> Cc: Andy Walls <awalls@xxxxxxxxxxxxxxxx>
> Cc: Doug Ledford <dledford@xxxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Juergen Gross <jgross@xxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Cc: Dave Airlie <airlied@xxxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxx>
> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: x86@xxxxxxxxxx
> Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
> ---
> include/linux/init.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/init.h b/include/linux/init.h
> index 21b6d76..a0385cc 100644
> --- a/include/linux/init.h
> +++ b/include/linux/init.h
> @@ -272,7 +272,7 @@ struct obs_kernel_param {
>
> #define early_param_on_off(str_on, str_off, var, config) \
> \
> - int var = IS_ENABLED(config); \
> + int __read_mostly var = IS_ENABLED(config); \
> \
> static int __init parse_##var##_on(char *arg) \
> { \

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/