netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Fix xdp_adjust_frags_tail_grow selftest on powerpc
@ 2025-03-05 17:13 Saket Kumar Bhaskar
  2025-03-05 17:13 ` [PATCH v2 1/2] bpf, test_run: Replace hardcoded page size with dynamic PAGE_SIZE in test_run Saket Kumar Bhaskar
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Saket Kumar Bhaskar @ 2025-03-05 17:13 UTC (permalink / raw)
  To: bpf, netdev, linux-kselftest, linux-kernel
  Cc: ast, hbathini, andrii, aleksander.lobakin, daniel, davem, kuba,
	hawk, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
	kpsingh

For platforms on powerpc architecture with a default page size greater
than 4096, there was an inconsistency in fragment size calculation.
This caused the BPF selftest xdp_adjust_tail/xdp_adjust_frags_tail_grow
to fail on powerpc.

The issue occurred because the fragment buffer size in
bpf_prog_test_run_xdp() was set to 4096, while the actual data size in
the fragment within the shared skb was checked against PAGE_SIZE
(65536 on powerpc) in min_t, causing it to exceed 4096 and be set
accordingly. This discrepancy led to an overflow when
bpf_xdp_frags_increase_tail() checked for tailroom, as skb_frag_size(frag)
could be greater than rxq->frag_size (when PAGE_SIZE > 4096).

This change fixes:

1. test_run by getting the correct arch dependent PAGE_SIZE.
2. selftest by caculating tailroom and getting correct PAGE_SIZE.

Changes:
v1 -> v2:
   * Address comments from Alexander
      * Use dynamic page size, cacheline size and size of
        struct skb_shared_info to calculate parameters.
      * Fixed both test_run and selftest.

v1: https://lore.kernel.org/all/20250122183720.1411176-1-skb99@linux.ibm.com/

Saket Kumar Bhaskar (2):
  bpf, test_run: Replace hardcoded page size with dynamic PAGE_SIZE in
    test_run
  selftests/bpf: Refactor xdp_adjust_tail selftest with dynamic sizing

 .../bpf/prog_tests/xdp_adjust_tail.c          | 160 +++++++++++++-----
 .../bpf/progs/test_xdp_adjust_tail_grow.c     |  41 +++--
 2 files changed, 149 insertions(+), 52 deletions(-)

-- 
2.43.5


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

end of thread, other threads:[~2025-03-20  8:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-05 17:13 [PATCH v2 0/2] Fix xdp_adjust_frags_tail_grow selftest on powerpc Saket Kumar Bhaskar
2025-03-05 17:13 ` [PATCH v2 1/2] bpf, test_run: Replace hardcoded page size with dynamic PAGE_SIZE in test_run Saket Kumar Bhaskar
2025-03-05 17:13 ` [PATCH v2 2/2] selftests/bpf: Refactor xdp_adjust_tail selftest with dynamic sizing Saket Kumar Bhaskar
2025-03-07 15:24 ` [PATCH v2 0/2] Fix xdp_adjust_frags_tail_grow selftest on powerpc Venkat Rao Bagalkote
2025-03-11  4:32   ` Saket Kumar Bhaskar
2025-03-20  8:20   ` Saket Kumar Bhaskar

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).