linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal
@ 2024-02-04 23:29 Yoann Congal
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Yoann Congal @ 2024-02-04 23:29 UTC (permalink / raw)
  To: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86
  Cc: André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Petr Mladek, Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Yoann Congal

This series focuses on CONFIG_BASE_SMALL.
The first patch fixes LOG_CPU_MAX_BUF_SHIFT when CONFIG_BASE_SMALL is
used.
The second patch globally replace CONFIG_BASE_SMALL usages by the
equivalent !CONFIG_BASE_FULL.

Patch history:
v2 -> v3: Applied Luis Chamberlain's comments (Thanks!):
* Split the single commit in two : one functional fix, one global
  removal.

v2 patch was named "printk: Remove redundant CONFIG_BASE_SMALL"
https://lore.kernel.org/all/20240127220026.1722399-1-yoann.congal@smile.fr/
* Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>
* Reviewed-by: John Ogness <john.ogness@linutronix.de>

v1 -> v2: Applied Masahiro Yamada's comments (Thanks!):
* Changed from "Change CONFIG_BASE_SMALL to type bool" to
  "Remove it and switch usage to !CONFIG_BASE_FULL"
* Fixed "Fixes:" tag and reference to the mailing list thread.
* Added a note about CONFIG_LOG_CPU_MAX_BUF_SHIFT changing.

v1 patch was named "treewide: Change CONFIG_BASE_SMALL to bool type"
https://lore.kernel.org/all/20240126163032.1613731-1-yoann.congal@smile.fr/

Yoann Congal (2):
  printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled
  printk: Remove redundant CONFIG_BASE_SMALL

 arch/x86/include/asm/mpspec.h | 2 +-
 drivers/tty/vt/vc_screen.c    | 2 +-
 include/linux/threads.h       | 6 +++---
 include/linux/udp.h           | 2 +-
 include/linux/xarray.h        | 2 +-
 init/Kconfig                  | 9 ++-------
 kernel/futex/core.c           | 6 +++---
 kernel/user.c                 | 2 +-
 8 files changed, 13 insertions(+), 18 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled
  2024-02-04 23:29 [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Yoann Congal
@ 2024-02-04 23:29 ` Yoann Congal
  2024-02-05  3:02   ` Masahiro Yamada
                     ` (2 more replies)
  2024-02-04 23:29 ` [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL Yoann Congal
  2024-02-05 13:48 ` [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Petr Mladek
  2 siblings, 3 replies; 9+ messages in thread
From: Yoann Congal @ 2024-02-04 23:29 UTC (permalink / raw)
  To: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86
  Cc: André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Petr Mladek, Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Yoann Congal, Vegard Nossum

LOG_CPU_MAX_BUF_SHIFT default value depends on BASE_SMALL:
  config LOG_CPU_MAX_BUF_SHIFT
  	default 12 if !BASE_SMALL
  	default 0 if BASE_SMALL
But, BASE_SMALL is a config of type int and "!BASE_SMALL" is always
evaluated to true whatever is the value of BASE_SMALL.

This patch fixes this by using BASE_FULL (type bool) which is equivalent
to BASE_SMALL==0.

Note: This changes CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 to
CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 for BASE_SMALL defconfigs, but that will
not be a big impact due to this code in kernel/printk/printk.c:
  /* by default this will only continue through for large > 64 CPUs */
  if (cpu_extra <= __LOG_BUF_LEN / 2)
          return;
Systems using CONFIG_BASE_SMALL and having 64+ CPUs should be quite
rare.

John Ogness <john.ogness@linutronix.de> (printk reviewer) wrote:
> For printk this will mean that BASE_SMALL systems were probably
> previously allocating/using the dynamic ringbuffer and now they will
> just continue to use the static ringbuffer. Which is fine and saves
> memory (as it should).

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/all/CAMuHMdWm6u1wX7efZQf=2XUAHascps76YQac6rdnQGhc8nop_Q@mail.gmail.com/
Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
Closes: https://lore.kernel.org/all/f6856be8-54b7-0fa0-1d17-39632bf29ada@oracle.com/
Fixes: 4e244c10eab3 ("kconfig: remove unneeded symbol_empty variable")
---
 init/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/init/Kconfig b/init/Kconfig
index deda3d14135bb..73efb76f38734 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -734,8 +734,8 @@ config LOG_CPU_MAX_BUF_SHIFT
 	int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
 	depends on SMP
 	range 0 21
-	default 12 if !BASE_SMALL
-	default 0 if BASE_SMALL
+	default 12 if BASE_FULL
+	default 0
 	depends on PRINTK
 	help
 	  This option allows to increase the default ring buffer size
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL
  2024-02-04 23:29 [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Yoann Congal
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
@ 2024-02-04 23:29 ` Yoann Congal
  2024-02-05  3:01   ` Masahiro Yamada
  2024-02-05 13:37   ` Petr Mladek
  2024-02-05 13:48 ` [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Petr Mladek
  2 siblings, 2 replies; 9+ messages in thread
From: Yoann Congal @ 2024-02-04 23:29 UTC (permalink / raw)
  To: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86
  Cc: André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Petr Mladek, Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Yoann Congal

CONFIG_BASE_SMALL is currently a type int but is only used as a boolean
equivalent to !CONFIG_BASE_FULL.

So, remove it entirely and move every usage to !CONFIG_BASE_FULL:
Since CONFIG_BASE_FULL is a type bool config,
CONFIG_BASE_SMALL == 0 becomes  IS_ENABLED(CONFIG_BASE_FULL) and
CONFIG_BASE_SMALL != 0 becomes !IS_ENABLED(CONFIG_BASE_FULL).

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
 arch/x86/include/asm/mpspec.h | 2 +-
 drivers/tty/vt/vc_screen.c    | 2 +-
 include/linux/threads.h       | 6 +++---
 include/linux/udp.h           | 2 +-
 include/linux/xarray.h        | 2 +-
 init/Kconfig                  | 5 -----
 kernel/futex/core.c           | 6 +++---
 kernel/user.c                 | 2 +-
 8 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
index 4b0f98a8d338d..44307fb37fa25 100644
--- a/arch/x86/include/asm/mpspec.h
+++ b/arch/x86/include/asm/mpspec.h
@@ -15,7 +15,7 @@ extern int pic_mode;
  * Summit or generic (i.e. installer) kernels need lots of bus entries.
  * Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets.
  */
-#if CONFIG_BASE_SMALL == 0
+#ifdef CONFIG_BASE_FULL
 # define MAX_MP_BUSSES		260
 #else
 # define MAX_MP_BUSSES		32
diff --git a/drivers/tty/vt/vc_screen.c b/drivers/tty/vt/vc_screen.c
index 67e2cb7c96eec..d0e4fcd1bd8b5 100644
--- a/drivers/tty/vt/vc_screen.c
+++ b/drivers/tty/vt/vc_screen.c
@@ -51,7 +51,7 @@
 #include <asm/unaligned.h>
 
 #define HEADER_SIZE	4u
-#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE)
+#define CON_BUF_SIZE (IS_ENABLED(CONFIG_BASE_FULL) ? PAGE_SIZE : 256)
 
 /*
  * Our minor space:
diff --git a/include/linux/threads.h b/include/linux/threads.h
index c34173e6c5f18..f0f7a8aaba77d 100644
--- a/include/linux/threads.h
+++ b/include/linux/threads.h
@@ -25,14 +25,14 @@
 /*
  * This controls the default maximum pid allocated to a process
  */
-#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
+#define PID_MAX_DEFAULT (IS_ENABLED(CONFIG_BASE_FULL) ? 0x8000 : 0x1000)
 
 /*
  * A maximum of 4 million PIDs should be enough for a while.
  * [NOTE: PID/TIDs are limited to 2^30 ~= 1 billion, see FUTEX_TID_MASK.]
  */
-#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \
-	(sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))
+#define PID_MAX_LIMIT (IS_ENABLED(CONFIG_BASE_FULL) ? \
+	(sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT) : PAGE_SIZE * 8)
 
 /*
  * Define a minimum number of pids per cpu.  Heuristically based
diff --git a/include/linux/udp.h b/include/linux/udp.h
index d04188714dca1..ca8a172169019 100644
--- a/include/linux/udp.h
+++ b/include/linux/udp.h
@@ -24,7 +24,7 @@ static inline struct udphdr *udp_hdr(const struct sk_buff *skb)
 }
 
 #define UDP_HTABLE_SIZE_MIN_PERNET	128
-#define UDP_HTABLE_SIZE_MIN		(CONFIG_BASE_SMALL ? 128 : 256)
+#define UDP_HTABLE_SIZE_MIN		(IS_ENABLED(CONFIG_BASE_FULL) ? 256 : 128)
 #define UDP_HTABLE_SIZE_MAX		65536
 
 static inline u32 udp_hashfn(const struct net *net, u32 num, u32 mask)
diff --git a/include/linux/xarray.h b/include/linux/xarray.h
index cb571dfcf4b16..7e00e71c2d266 100644
--- a/include/linux/xarray.h
+++ b/include/linux/xarray.h
@@ -1141,7 +1141,7 @@ static inline void xa_release(struct xarray *xa, unsigned long index)
  * doubled the number of slots per node, we'd get only 3 nodes per 4kB page.
  */
 #ifndef XA_CHUNK_SHIFT
-#define XA_CHUNK_SHIFT		(CONFIG_BASE_SMALL ? 4 : 6)
+#define XA_CHUNK_SHIFT		(IS_ENABLED(CONFIG_BASE_FULL) ? 6 : 4)
 #endif
 #define XA_CHUNK_SIZE		(1UL << XA_CHUNK_SHIFT)
 #define XA_CHUNK_MASK		(XA_CHUNK_SIZE - 1)
diff --git a/init/Kconfig b/init/Kconfig
index 73efb76f38734..3c1654fc770b5 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1940,11 +1940,6 @@ config RT_MUTEXES
 	bool
 	default y if PREEMPT_RT
 
-config BASE_SMALL
-	int
-	default 0 if BASE_FULL
-	default 1 if !BASE_FULL
-
 config MODULE_SIG_FORMAT
 	def_bool n
 	select SYSTEM_DATA_VERIFICATION
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index 1e78ef24321e8..8488d3a23e2fd 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -1150,10 +1150,10 @@ static int __init futex_init(void)
 	unsigned int futex_shift;
 	unsigned long i;
 
-#if CONFIG_BASE_SMALL
-	futex_hashsize = 16;
-#else
+#ifdef CONFIG_BASE_FULL
 	futex_hashsize = roundup_pow_of_two(256 * num_possible_cpus());
+#else
+	futex_hashsize = 16;
 #endif
 
 	futex_queues = alloc_large_system_hash("futex", sizeof(*futex_queues),
diff --git a/kernel/user.c b/kernel/user.c
index 03cedc366dc9e..8f39fd0236fa0 100644
--- a/kernel/user.c
+++ b/kernel/user.c
@@ -88,7 +88,7 @@ EXPORT_SYMBOL_GPL(init_user_ns);
  * when changing user ID's (ie setuid() and friends).
  */
 
-#define UIDHASH_BITS	(CONFIG_BASE_SMALL ? 3 : 7)
+#define UIDHASH_BITS	(IS_ENABLED(CONFIG_BASE_FULL) ? 7 : 3)
 #define UIDHASH_SZ	(1 << UIDHASH_BITS)
 #define UIDHASH_MASK		(UIDHASH_SZ - 1)
 #define __uidhashfn(uid)	(((uid >> UIDHASH_BITS) + uid) & UIDHASH_MASK)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL
  2024-02-04 23:29 ` [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL Yoann Congal
@ 2024-02-05  3:01   ` Masahiro Yamada
  2024-02-05 13:37   ` Petr Mladek
  1 sibling, 0 replies; 9+ messages in thread
From: Masahiro Yamada @ 2024-02-05  3:01 UTC (permalink / raw)
  To: Yoann Congal
  Cc: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86,
	André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Matthew Wilcox, Peter Zijlstra, Petr Mladek,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn

On Mon, Feb 5, 2024 at 8:30 AM Yoann Congal <yoann.congal@smile.fr> wrote:
>
> CONFIG_BASE_SMALL is currently a type int but is only used as a boolean
> equivalent to !CONFIG_BASE_FULL.
>
> So, remove it entirely and move every usage to !CONFIG_BASE_FULL:
> Since CONFIG_BASE_FULL is a type bool config,
> CONFIG_BASE_SMALL == 0 becomes  IS_ENABLED(CONFIG_BASE_FULL) and
> CONFIG_BASE_SMALL != 0 becomes !IS_ENABLED(CONFIG_BASE_FULL).
>
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>



Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>




-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
@ 2024-02-05  3:02   ` Masahiro Yamada
  2024-02-05  8:39   ` John Ogness
  2024-02-05 13:34   ` Petr Mladek
  2 siblings, 0 replies; 9+ messages in thread
From: Masahiro Yamada @ 2024-02-05  3:02 UTC (permalink / raw)
  To: Yoann Congal
  Cc: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86,
	André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Matthew Wilcox, Peter Zijlstra, Petr Mladek,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Vegard Nossum

On Mon, Feb 5, 2024 at 8:30 AM Yoann Congal <yoann.congal@smile.fr> wrote:
>
> LOG_CPU_MAX_BUF_SHIFT default value depends on BASE_SMALL:
>   config LOG_CPU_MAX_BUF_SHIFT
>         default 12 if !BASE_SMALL
>         default 0 if BASE_SMALL
> But, BASE_SMALL is a config of type int and "!BASE_SMALL" is always
> evaluated to true whatever is the value of BASE_SMALL.
>
> This patch fixes this by using BASE_FULL (type bool) which is equivalent
> to BASE_SMALL==0.
>
> Note: This changes CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 to
> CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 for BASE_SMALL defconfigs, but that will
> not be a big impact due to this code in kernel/printk/printk.c:
>   /* by default this will only continue through for large > 64 CPUs */
>   if (cpu_extra <= __LOG_BUF_LEN / 2)
>           return;
> Systems using CONFIG_BASE_SMALL and having 64+ CPUs should be quite
> rare.
>
> John Ogness <john.ogness@linutronix.de> (printk reviewer) wrote:
> > For printk this will mean that BASE_SMALL systems were probably
> > previously allocating/using the dynamic ringbuffer and now they will
> > just continue to use the static ringbuffer. Which is fine and saves
> > memory (as it should).
>
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Closes: https://lore.kernel.org/all/CAMuHMdWm6u1wX7efZQf=2XUAHascps76YQac6rdnQGhc8nop_Q@mail.gmail.com/
> Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
> Closes: https://lore.kernel.org/all/f6856be8-54b7-0fa0-1d17-39632bf29ada@oracle.com/
> Fixes: 4e244c10eab3 ("kconfig: remove unneeded symbol_empty variable")
> ---
>  init/Kconfig | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)



Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
  2024-02-05  3:02   ` Masahiro Yamada
@ 2024-02-05  8:39   ` John Ogness
  2024-02-05 13:34   ` Petr Mladek
  2 siblings, 0 replies; 9+ messages in thread
From: John Ogness @ 2024-02-05  8:39 UTC (permalink / raw)
  To: Yoann Congal, linux-fsdevel, linux-kbuild, linux-kernel,
	linux-serial, x86
  Cc: André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, Josh Triplett,
	Masahiro Yamada, Matthew Wilcox, Peter Zijlstra, Petr Mladek,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Yoann Congal, Vegard Nossum

On 2024-02-05, Yoann Congal <yoann.congal@smile.fr> wrote:
> LOG_CPU_MAX_BUF_SHIFT default value depends on BASE_SMALL:
>   config LOG_CPU_MAX_BUF_SHIFT
>   	default 12 if !BASE_SMALL
>   	default 0 if BASE_SMALL
> But, BASE_SMALL is a config of type int and "!BASE_SMALL" is always
> evaluated to true whatever is the value of BASE_SMALL.
>
> This patch fixes this by using BASE_FULL (type bool) which is equivalent
> to BASE_SMALL==0.
>
> Note: This changes CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 to
> CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 for BASE_SMALL defconfigs, but that will
> not be a big impact due to this code in kernel/printk/printk.c:
>   /* by default this will only continue through for large > 64 CPUs */
>   if (cpu_extra <= __LOG_BUF_LEN / 2)
>           return;
> Systems using CONFIG_BASE_SMALL and having 64+ CPUs should be quite
> rare.
>
> John Ogness <john.ogness@linutronix.de> (printk reviewer) wrote:
>> For printk this will mean that BASE_SMALL systems were probably
>> previously allocating/using the dynamic ringbuffer and now they will
>> just continue to use the static ringbuffer. Which is fine and saves
>> memory (as it should).
>
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Closes: https://lore.kernel.org/all/CAMuHMdWm6u1wX7efZQf=2XUAHascps76YQac6rdnQGhc8nop_Q@mail.gmail.com/
> Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
> Closes: https://lore.kernel.org/all/f6856be8-54b7-0fa0-1d17-39632bf29ada@oracle.com/
> Fixes: 4e244c10eab3 ("kconfig: remove unneeded symbol_empty variable")

Reviewed-by: John Ogness <john.ogness@linutronix.de>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
  2024-02-05  3:02   ` Masahiro Yamada
  2024-02-05  8:39   ` John Ogness
@ 2024-02-05 13:34   ` Petr Mladek
  2 siblings, 0 replies; 9+ messages in thread
From: Petr Mladek @ 2024-02-05 13:34 UTC (permalink / raw)
  To: Yoann Congal
  Cc: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86,
	André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn, Vegard Nossum

On Mon 2024-02-05 00:29:44, Yoann Congal wrote:
> LOG_CPU_MAX_BUF_SHIFT default value depends on BASE_SMALL:
>   config LOG_CPU_MAX_BUF_SHIFT
>   	default 12 if !BASE_SMALL
>   	default 0 if BASE_SMALL
> But, BASE_SMALL is a config of type int and "!BASE_SMALL" is always
> evaluated to true whatever is the value of BASE_SMALL.
> 
> This patch fixes this by using BASE_FULL (type bool) which is equivalent
> to BASE_SMALL==0.
> 
> Note: This changes CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 to
> CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 for BASE_SMALL defconfigs, but that will
> not be a big impact due to this code in kernel/printk/printk.c:
>   /* by default this will only continue through for large > 64 CPUs */
>   if (cpu_extra <= __LOG_BUF_LEN / 2)
>           return;
> Systems using CONFIG_BASE_SMALL and having 64+ CPUs should be quite
> rare.
> 
> John Ogness <john.ogness@linutronix.de> (printk reviewer) wrote:
> > For printk this will mean that BASE_SMALL systems were probably
> > previously allocating/using the dynamic ringbuffer and now they will
> > just continue to use the static ringbuffer. Which is fine and saves
> > memory (as it should).

More precisely, it allocated the buffer dynamically when the sum
of per-CPU-extra space exceeded half of the default static ring
buffer. This happened for systems with more than 64 CPUs with
the default config values.

I believe that this patch won't have any effect in practice.
It is hard to imagine a system with >64 CPUs which would require
BASE_SMALL kernel. Well, never say never ;-)

> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Closes: https://lore.kernel.org/all/CAMuHMdWm6u1wX7efZQf=2XUAHascps76YQac6rdnQGhc8nop_Q@mail.gmail.com/
> Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
> Closes: https://lore.kernel.org/all/f6856be8-54b7-0fa0-1d17-39632bf29ada@oracle.com/
> Fixes: 4e244c10eab3 ("kconfig: remove unneeded symbol_empty variable")

Reviewed-by: Petr Mladek <pmladek@suse.com>

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL
  2024-02-04 23:29 ` [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL Yoann Congal
  2024-02-05  3:01   ` Masahiro Yamada
@ 2024-02-05 13:37   ` Petr Mladek
  1 sibling, 0 replies; 9+ messages in thread
From: Petr Mladek @ 2024-02-05 13:37 UTC (permalink / raw)
  To: Yoann Congal
  Cc: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86,
	André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn

On Mon 2024-02-05 00:29:45, Yoann Congal wrote:
> CONFIG_BASE_SMALL is currently a type int but is only used as a boolean
> equivalent to !CONFIG_BASE_FULL.
> 
> So, remove it entirely and move every usage to !CONFIG_BASE_FULL:
> Since CONFIG_BASE_FULL is a type bool config,
> CONFIG_BASE_SMALL == 0 becomes  IS_ENABLED(CONFIG_BASE_FULL) and
> CONFIG_BASE_SMALL != 0 becomes !IS_ENABLED(CONFIG_BASE_FULL).
> 
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>

Reviewed-by: Petr Mladek <pmladek@suse.com>

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal
  2024-02-04 23:29 [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Yoann Congal
  2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
  2024-02-04 23:29 ` [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL Yoann Congal
@ 2024-02-05 13:48 ` Petr Mladek
  2 siblings, 0 replies; 9+ messages in thread
From: Petr Mladek @ 2024-02-05 13:48 UTC (permalink / raw)
  To: Yoann Congal
  Cc: linux-fsdevel, linux-kbuild, linux-kernel, linux-serial, x86,
	André Almeida, Borislav Petkov, Darren Hart, Dave Hansen,
	Davidlohr Bueso, Geert Uytterhoeven, Greg Kroah-Hartman,
	H . Peter Anvin, Ingo Molnar, Jiri Slaby, John Ogness,
	Josh Triplett, Masahiro Yamada, Matthew Wilcox, Peter Zijlstra,
	Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner,
	Willem de Bruijn

On Mon 2024-02-05 00:29:43, Yoann Congal wrote:
> This series focuses on CONFIG_BASE_SMALL.
> The first patch fixes LOG_CPU_MAX_BUF_SHIFT when CONFIG_BASE_SMALL is
> used.
> The second patch globally replace CONFIG_BASE_SMALL usages by the
> equivalent !CONFIG_BASE_FULL.

Nit: I would personally do it the other way around and get rid of
     CONFIG_BASE_SMALL.

     CONFIG_BASE_FULL is the default and is used by most users. It is
     the CONFIG_BASE_SMALL which needs special treating.

     That said, I do not want to block this patchset because
     of my preferences.

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-02-05 13:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-04 23:29 [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Yoann Congal
2024-02-04 23:29 ` [PATCH v3 1/2] printk: Fix LOG_CPU_MAX_BUF_SHIFT when BASE_SMALL is enabled Yoann Congal
2024-02-05  3:02   ` Masahiro Yamada
2024-02-05  8:39   ` John Ogness
2024-02-05 13:34   ` Petr Mladek
2024-02-04 23:29 ` [PATCH v3 2/2] printk: Remove redundant CONFIG_BASE_SMALL Yoann Congal
2024-02-05  3:01   ` Masahiro Yamada
2024-02-05 13:37   ` Petr Mladek
2024-02-05 13:48 ` [PATCH v3 0/2] printk: CONFIG_BASE_SMALL fix for LOG_CPU_MAX_BUF_SHIFT and removal Petr Mladek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).