public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] net: cleanup bitmaps printing
@ 2026-03-19 20:17 Yury Norov
  2026-03-19 20:17 ` [PATCH 1/2] octeontx2-af: simplify rvu_debugfs Yury Norov
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Yury Norov @ 2026-03-19 20:17 UTC (permalink / raw)
  To: To : Jakub Kicinski, Paolo Abeni, David S. Miller, Eric Dumazet,
	Andrew Lunn, Simon Horman, Sunil Goutham, Linu Cherian,
	Geetha sowjanya, Jerin Jacob, Subbaraya Sundeep,
	Stanislav Fomichev, Kuniyuki Iwashima, Christian Brauner,
	Yajun Deng, netdev, linux-kernel
  Cc: Yury Norov, Thomas Weißschuh, Yury Norov

Bitmap API has a bitmap_print_to_pagebuf() function that is intended to
print bitmap into a human readable format, making sure that the output
string will not get big enough to cross the current page limit.

Some drivers use this function immediately before passing the result to
scnprintf() with no modification. This is useless because scnprintf(),
and helpers based on it like seq_pritf() and sysfs_emit(), take care of
not overflowing the buffer by itself, and perfectly print bitmaps with
"%*pb[l]".

v1: https://lore.kernel.org/all/20260219181407.290201-1-ynorov@nvidia.com/
v2:
 - fix copy-paste error in print_npa_qsize() (Simon);
 - fix typo in #1 subject (Jakub).

Yury Norov (2):
  octeontx2-af: siplify rvu_debugfs
  net-sysfs: switch xps_queue_show() to sysfs_emit()

 .../marvell/octeontx2/af/rvu_debugfs.c        | 28 ++++---------------
 net/core/net-sysfs.c                          |  2 +-
 2 files changed, 6 insertions(+), 24 deletions(-)

-- 
2.43.0


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

* [PATCH 1/2] octeontx2-af: simplify rvu_debugfs
  2026-03-19 20:17 [PATCH v2 0/2] net: cleanup bitmaps printing Yury Norov
@ 2026-03-19 20:17 ` Yury Norov
  2026-03-19 20:17 ` [PATCH 2/2] net-sysfs: switch xps_queue_show() to sysfs_emit() Yury Norov
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Yury Norov @ 2026-03-19 20:17 UTC (permalink / raw)
  To: To : Jakub Kicinski, Paolo Abeni, David S. Miller, Eric Dumazet,
	Andrew Lunn, Simon Horman, Sunil Goutham, Linu Cherian,
	Geetha sowjanya, Jerin Jacob, Subbaraya Sundeep,
	Stanislav Fomichev, Kuniyuki Iwashima, Christian Brauner,
	Yajun Deng, netdev, linux-kernel
  Cc: Yury Norov, Thomas Weißschuh, Yury Norov

The driver uses bitmap_print_to_pagebuf() to store human-readable
bitmaps representations in a temporary buffers; and then feed
seq_printf() with it.

Switch to using seq_printf("%*pb") directly and drop intermediate
buffer.

Signed-off-by: Yury Norov <ynorov@nvidia.com>
---
 .../marvell/octeontx2/af/rvu_debugfs.c        | 28 ++++---------------
 1 file changed, 5 insertions(+), 23 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 15d3cb0b9da6..9e5a85998ccc 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -960,30 +960,21 @@ static bool rvu_dbg_is_valid_lf(struct rvu *rvu, int blkaddr, int lf,
 
 static void print_npa_qsize(struct seq_file *m, struct rvu_pfvf *pfvf)
 {
-	char *buf;
-
-	buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!buf)
-		return;
-
 	if (!pfvf->aura_ctx) {
 		seq_puts(m, "Aura context is not initialized\n");
 	} else {
-		bitmap_print_to_pagebuf(false, buf, pfvf->aura_bmap,
-					pfvf->aura_ctx->qsize);
 		seq_printf(m, "Aura count : %d\n", pfvf->aura_ctx->qsize);
-		seq_printf(m, "Aura context ena/dis bitmap : %s\n", buf);
+		seq_printf(m, "Aura context ena/dis bitmap : %*pb\n",
+			   pfvf->aura_ctx->qsize, pfvf->aura_bmap);
 	}
 
 	if (!pfvf->pool_ctx) {
 		seq_puts(m, "Pool context is not initialized\n");
 	} else {
-		bitmap_print_to_pagebuf(false, buf, pfvf->pool_bmap,
-					pfvf->pool_ctx->qsize);
 		seq_printf(m, "Pool count : %d\n", pfvf->pool_ctx->qsize);
-		seq_printf(m, "Pool context ena/dis bitmap : %s\n", buf);
+		seq_printf(m, "Pool context ena/dis bitmap : %*pb\n",
+			   pfvf->pool_ctx->qsize, pfvf->pool_bmap);
 	}
-	kfree(buf);
 }
 
 /* The 'qsize' entry dumps current Aura/Pool context Qsize
@@ -2545,17 +2536,8 @@ RVU_DEBUG_SEQ_FOPS(nix_cq_ctx, nix_cq_ctx_display, nix_cq_ctx_write);
 static void print_nix_qctx_qsize(struct seq_file *filp, int qsize,
 				 unsigned long *bmap, char *qtype)
 {
-	char *buf;
-
-	buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!buf)
-		return;
-
-	bitmap_print_to_pagebuf(false, buf, bmap, qsize);
 	seq_printf(filp, "%s context count : %d\n", qtype, qsize);
-	seq_printf(filp, "%s context ena/dis bitmap : %s\n",
-		   qtype, buf);
-	kfree(buf);
+	seq_printf(filp, "%s context ena/dis bitmap : %*pb\n", qtype, qsize, bmap);
 }
 
 static void print_nix_qsize(struct seq_file *filp, struct rvu_pfvf *pfvf)
-- 
2.43.0


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

* [PATCH 2/2] net-sysfs: switch xps_queue_show() to sysfs_emit()
  2026-03-19 20:17 [PATCH v2 0/2] net: cleanup bitmaps printing Yury Norov
  2026-03-19 20:17 ` [PATCH 1/2] octeontx2-af: simplify rvu_debugfs Yury Norov
@ 2026-03-19 20:17 ` Yury Norov
  2026-03-20 17:44 ` [PATCH v2 0/2] net: cleanup bitmaps printing Simon Horman
  2026-03-24 10:20 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Yury Norov @ 2026-03-19 20:17 UTC (permalink / raw)
  To: To : Jakub Kicinski, Paolo Abeni, David S. Miller, Eric Dumazet,
	Andrew Lunn, Simon Horman, Sunil Goutham, Linu Cherian,
	Geetha sowjanya, Jerin Jacob, Subbaraya Sundeep,
	Stanislav Fomichev, Kuniyuki Iwashima, Christian Brauner,
	Yajun Deng, netdev, linux-kernel
  Cc: Yury Norov, Thomas Weißschuh, Yury Norov

Switch the function to use the proper sysfs_emit("%pb").

Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Yury Norov <ynorov@nvidia.com>
---
 net/core/net-sysfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 07624b682b08..a260f8b4d5c6 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1754,7 +1754,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,
 out_no_maps:
 	rcu_read_unlock();
 
-	len = bitmap_print_to_pagebuf(false, buf, mask, nr_ids);
+	len = sysfs_emit(buf, "%*pb\n", nr_ids, mask);
 	bitmap_free(mask);
 
 	return len < PAGE_SIZE ? len : -EINVAL;
-- 
2.43.0


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

* Re: [PATCH v2 0/2] net: cleanup bitmaps printing
  2026-03-19 20:17 [PATCH v2 0/2] net: cleanup bitmaps printing Yury Norov
  2026-03-19 20:17 ` [PATCH 1/2] octeontx2-af: simplify rvu_debugfs Yury Norov
  2026-03-19 20:17 ` [PATCH 2/2] net-sysfs: switch xps_queue_show() to sysfs_emit() Yury Norov
@ 2026-03-20 17:44 ` Simon Horman
  2026-03-24 10:20 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2026-03-20 17:44 UTC (permalink / raw)
  To: Yury Norov
  Cc: Jakub Kicinski, Paolo Abeni, David S. Miller, Eric Dumazet,
	Andrew Lunn, Sunil Goutham, Linu Cherian, Geetha sowjanya,
	Jerin Jacob, Subbaraya Sundeep, Stanislav Fomichev,
	Kuniyuki Iwashima, Christian Brauner, Yajun Deng, netdev,
	linux-kernel, Thomas Weißschuh, Yury Norov

On Thu, Mar 19, 2026 at 04:17:09PM -0400, Yury Norov wrote:
> Bitmap API has a bitmap_print_to_pagebuf() function that is intended to
> print bitmap into a human readable format, making sure that the output
> string will not get big enough to cross the current page limit.
> 
> Some drivers use this function immediately before passing the result to
> scnprintf() with no modification. This is useless because scnprintf(),
> and helpers based on it like seq_pritf() and sysfs_emit(), take care of
> not overflowing the buffer by itself, and perfectly print bitmaps with
> "%*pb[l]".
> 
> v1: https://lore.kernel.org/all/20260219181407.290201-1-ynorov@nvidia.com/
> v2:
>  - fix copy-paste error in print_npa_qsize() (Simon);
>  - fix typo in #1 subject (Jakub).

Thanks for the updates.

Reviewed-by: Simon Horman <horms@kernel.org>


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

* Re: [PATCH v2 0/2] net: cleanup bitmaps printing
  2026-03-19 20:17 [PATCH v2 0/2] net: cleanup bitmaps printing Yury Norov
                   ` (2 preceding siblings ...)
  2026-03-20 17:44 ` [PATCH v2 0/2] net: cleanup bitmaps printing Simon Horman
@ 2026-03-24 10:20 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-03-24 10:20 UTC (permalink / raw)
  To: Yury Norov
  Cc: kuba, pabeni, davem, edumazet, andrew+netdev, horms, sgoutham,
	lcherian, gakula, jerinj, sbhatta, sdf, kuniyu, brauner,
	yajun.deng, netdev, linux-kernel, linux, yury.norov

Hello:

This series was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Thu, 19 Mar 2026 16:17:09 -0400 you wrote:
> Bitmap API has a bitmap_print_to_pagebuf() function that is intended to
> print bitmap into a human readable format, making sure that the output
> string will not get big enough to cross the current page limit.
> 
> Some drivers use this function immediately before passing the result to
> scnprintf() with no modification. This is useless because scnprintf(),
> and helpers based on it like seq_pritf() and sysfs_emit(), take care of
> not overflowing the buffer by itself, and perfectly print bitmaps with
> "%*pb[l]".
> 
> [...]

Here is the summary with links:
  - [1/2] octeontx2-af: simplify rvu_debugfs
    https://git.kernel.org/netdev/net-next/c/6e4235adfa88
  - [2/2] net-sysfs: switch xps_queue_show() to sysfs_emit()
    https://git.kernel.org/netdev/net-next/c/de69301dc2f6

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

end of thread, other threads:[~2026-03-24 10:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-19 20:17 [PATCH v2 0/2] net: cleanup bitmaps printing Yury Norov
2026-03-19 20:17 ` [PATCH 1/2] octeontx2-af: simplify rvu_debugfs Yury Norov
2026-03-19 20:17 ` [PATCH 2/2] net-sysfs: switch xps_queue_show() to sysfs_emit() Yury Norov
2026-03-20 17:44 ` [PATCH v2 0/2] net: cleanup bitmaps printing Simon Horman
2026-03-24 10:20 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox