[PATCH v3 00/11] Enable setexpr command to print cpu-list like bitmaps
lukas.funke-oss at weidmueller.com
lukas.funke-oss at weidmueller.com
Wed Jan 10 10:10:26 CET 2024
From: Lukas Funke <lukas.funke at weidmueller.com>
This series enables the 'setexpr' command to print "cpu list"-like
bitmaps based on the printk format specifier [1].
One use-case is to pass cpu list [2] based kernel parameter like
'isolcpu', 'nohz_full', irq affinity or RCU related CPU parameter to
the kernel via a separate firmware variable without exposing the
'bootargs' variable to directly.
Example:
=> env set value 0xdeadbeef
=> setexpr a fmt isolcpus=%32pbl $value
=> echo $a
isolcpus=0-3,5-7,9-13,15-16,18-19,21,23,25-28,30-31
[1] https://www.kernel.org/doc/Documentation/printk-formats.txt
[2] https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
Changes in v3:
- Use generic find_next_zero_bit() from arch/arm/include/asm/bitops.h
- Redirect sandbox ffz() implementation to generic __ffs() impl
- Remove '%bp' from documentation
- Give an example output in the documentation
- Remove bitmap_string() conversion function since the same function
can be achieved using other format specifier
- Dereference pointer argument (i.e. *value) in the
'setexpr name fmt <format> value' case. This is currently only
supported in the 'setexptr <name> [*]<value>' and
'setexptr <name> [*]<value> <op> [*]<value2>' case
Changes in v2:
- Add bitmap format specifier to documentation
Lukas Funke (11):
sandbox: add generic find_next_zero_bit implementation
linux: bitmap.h: add 'for_each_set_bitrange' iteration macro
test: cmd: setexpr: Add tests for bitmap string format
doc: printf() codes: Add bitmap format specifier
cmd: printf: Correctly handle field width
lib: Add hextobarray() function
lib: vsprintf: enable '%pbl' format specifier
setexpr: rename 'get_arg()' to 'setexpr_get_arg()'
setexpr: Promote 'setexpr_get_arg()' to a public function
setexptr: Extend setexpr_get_arg() to handle pointer to memory
cmd: printf: forward '%p' format string specifier
arch/sandbox/include/asm/bitops.h | 60 +++++++++++++++++++------------
cmd/printf.c | 53 ++++++++++++++++++++++++++-
cmd/setexpr.c | 48 +++++++++++++++----------
doc/develop/printf.rst | 4 +++
include/command.h | 27 ++++++++++++++
include/linux/bitmap.h | 7 ++++
include/vsprintf.h | 7 ++++
lib/strto.c | 35 ++++++++++++++++++
lib/vsprintf.c | 42 ++++++++++++++++++++++
test/cmd/setexpr.c | 22 ++++++++++++
10 files changed, 263 insertions(+), 42 deletions(-)
--
2.30.2
More information about the U-Boot
mailing list