mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Thomas Weißschuh" <linux@weissschuh.net>
To: david.laight.linux@gmail.com, g@t-8ch.de
Cc: Willy Tarreau <w@1wt.eu>,
	linux-kernel@vger.kernel.org,  Cheng Li <lechain@gmail.com>
Subject: Re: [PATCH v2 next 04/11] tools/nolibc/printf: Output pad characters in 16 byte chunks
Date: Mon, 16 Feb 2026 20:30:27 +0100	[thread overview]
Message-ID: <e12cafbe-b16d-400e-9ac2-96a8a3d77007@t-8ch.de> (raw)
In-Reply-To: <20260206191121.3602-5-david.laight.linux@gmail.com>

On 2026-02-06 19:11:14+0000, david.laight.linux@gmail.com wrote:
> From: David Laight <david.laight.linux@gmail.com>
> 
> Simple to do and saves calls to the callback function.
> 
> Signed-off-by: David Laight <david.laight.linux@gmail.com>
> ---
> 
> Changes for v2:
> Formally patch 3, unchanged.
> 
>  tools/include/nolibc/stdio.h | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/include/nolibc/stdio.h b/tools/include/nolibc/stdio.h
> index 552f09d51d82..c044a6b3babe 100644
> --- a/tools/include/nolibc/stdio.h
> +++ b/tools/include/nolibc/stdio.h
> @@ -355,10 +355,12 @@ int __nolibc_printf(__nolibc_printf_cb cb, void *state, const char *fmt, va_list
>  			outstr = fmt;
>  			len = ofs - 1;
>  		flush_str:
> -			while (width-- > len) {
> -				if (cb(state, " ", 1) != 0)
> +			while (width > len) {
> +				unsigned int pad_len = ((width - len - 1) & 15) + 1;

So this is a modulo, which does not return 0.
While I am sure you and Willy recognize this instantly, I had to squint a bit.
While I understand that a regular modulo operator might be problematic
on some architectures, does it also apply to constant module values?
The compiler could do this on its own.  If not, we should have a macro.

I am wondering why it is a modulo and not some sort of max()...

Could you move the tests for the new functionality into the patches that
introduce that functionality? That would make it easier to review and
play with the code. Also it would allow to selectively apply the patches.
For example I get compiler warnings/errors in the later patches, so I
the full array of new tests will fail if I skip these later patches.

> +				width -= pad_len;
> +				written += pad_len;
> +				if (cb(state, "                ", pad_len) != 0)
>  					return -1;
> -				written += 1;
>  			}
>  			if (cb(state, outstr, len) != 0)
>  				return -1;
> -- 
> 2.39.5
> 

  parent reply	other threads:[~2026-02-16 19:30 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-06 19:11 [PATCH v2 next 00/11] tools/nolibc: Enhance printf() david.laight.linux
2026-02-06 19:11 ` [PATCH v2 next 01/11] tools/nolibc/printf: Change variable used for format chars from 'c' to 'ch' david.laight.linux
2026-02-07 18:51   ` Willy Tarreau
2026-02-16 18:52   ` Thomas Weißschuh
2026-02-06 19:11 ` [PATCH v2 next 02/11] tools/nolibc/printf: Move snprintf length check to callback david.laight.linux
2026-02-07 19:12   ` Willy Tarreau
2026-02-07 23:28     ` David Laight
2026-02-08 15:12       ` Willy Tarreau
2026-02-08 22:49         ` David Laight
2026-02-06 19:11 ` [PATCH v2 next 03/11] tools/nolibc/printf: Add buffering to vfprintf() callback david.laight.linux
2026-02-07 19:29   ` Willy Tarreau
2026-02-07 23:36     ` David Laight
2026-02-16 19:07       ` Thomas Weißschuh
2026-02-17 11:51         ` David Laight
2026-02-18 17:52           ` Thomas Weißschuh
2026-02-06 19:11 ` [PATCH v2 next 04/11] tools/nolibc/printf: Output pad characters in 16 byte chunks david.laight.linux
2026-02-07 19:38   ` Willy Tarreau
2026-02-07 23:43     ` David Laight
2026-02-08 15:14       ` Willy Tarreau
2026-02-16 19:30   ` Thomas Weißschuh [this message]
2026-02-16 22:29     ` David Laight
2026-02-18 17:30       ` Thomas Weißschuh
2026-02-06 19:11 ` [PATCH v2 next 05/11] tools/nolibc/printf: Simplify __nolibc_printf() david.laight.linux
2026-02-07 20:05   ` Willy Tarreau
2026-02-07 23:50     ` David Laight
2026-02-08 12:20       ` David Laight
2026-02-08 14:44         ` Willy Tarreau
2026-02-08 16:54           ` David Laight
2026-02-08 17:06             ` Willy Tarreau
2026-02-06 19:11 ` [PATCH v2 next 06/11] tools/nolibc/printf: Use bit-masks to hold requested flag, length and conversion chars david.laight.linux
2026-02-08 15:22   ` Willy Tarreau
2026-02-16 19:52   ` Thomas Weißschuh
2026-02-16 22:47     ` David Laight
2026-02-18 17:36       ` Thomas Weißschuh
2026-02-18 22:57         ` David Laight
2026-02-06 19:11 ` [PATCH v2 next 07/11] tools/nolibc/printf: Add support for conversion flags "#- +" and format "%X" david.laight.linux
2026-02-08 15:47   ` Willy Tarreau
2026-02-08 17:14     ` David Laight
2026-02-08 16:06   ` Willy Tarreau
2026-02-16 19:57   ` Thomas Weißschuh
2026-02-16 22:50     ` David Laight
2026-02-18 17:39       ` Thomas Weißschuh
2026-02-16 20:11   ` Thomas Weißschuh
2026-02-16 22:52     ` David Laight
2026-02-06 19:11 ` [PATCH v2 next 08/11] tools/nolibc/printf: Add support for zero padding and field precision david.laight.linux
2026-02-08 16:16   ` Willy Tarreau
2026-02-08 17:31     ` David Laight
2026-02-06 19:11 ` [PATCH v2 next 09/11] selftests/nolibc: Improve reporting of vfprintf() errors david.laight.linux
2026-02-16 20:05   ` Thomas Weißschuh
2026-02-17 10:48     ` David Laight
2026-02-18 17:48       ` Thomas Weißschuh
2026-02-06 19:11 ` [PATCH v2 next 10/11] selftests/nolibc: Increase coverage of printf format tests david.laight.linux
2026-02-16 20:14   ` Thomas Weißschuh
2026-02-16 20:23   ` Thomas Weißschuh
2026-02-16 22:54     ` David Laight
2026-02-18 17:41       ` Thomas Weißschuh
2026-02-06 19:11 ` [PATCH v2 next 11/11] selftests/nolibc: Use printf("%.*s", n, "") to align output david.laight.linux
2026-02-08 16:20   ` Willy Tarreau
2026-02-16 20:22   ` Thomas Weißschuh
2026-02-06 21:36 ` [PATCH v2 next 00/11] tools/nolibc: Enhance printf() David Laight

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e12cafbe-b16d-400e-9ac2-96a8a3d77007@t-8ch.de \
    --to=linux@weissschuh.net \
    --cc=david.laight.linux@gmail.com \
    --cc=g@t-8ch.de \
    --cc=lechain@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®