[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <96a959ec-c6a6-4740-a560-34134b2af7f7@linux.ibm.com>
Date: Fri, 7 Mar 2025 20:54:00 +0530
From: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>
To: Saket Kumar Bhaskar <skb99@...ux.ibm.com>, bpf@...r.kernel.org,
netdev@...r.kernel.org, linux-kselftest@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: ast@...nel.org, hbathini@...ux.ibm.com, andrii@...nel.org,
aleksander.lobakin@...el.com, daniel@...earbox.net,
davem@...emloft.net, kuba@...nel.org, hawk@...nel.org,
martin.lau@...ux.dev, eddyz87@...il.com, song@...nel.org,
yonghong.song@...ux.dev, john.fastabend@...il.com, kpsingh@...nel.org
Subject: Re: [PATCH v2 0/2] Fix xdp_adjust_frags_tail_grow selftest on powerpc
On 05/03/25 10:43 pm, Saket Kumar Bhaskar wrote:
> 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(-)
>
Applied the patch series on the bpf-next and patch works as expected.
With Out the Patch:
test_xdp_adjust_frags_tail_grow:PASS:9Kb+10b 0 nsec
test_xdp_adjust_frags_tail_grow:FAIL:9Kb+10b retval unexpected 9Kb+10b
retval: actual 3 != expected 1
test_xdp_adjust_frags_tail_grow:FAIL:9Kb+10b size unexpected 9Kb+10b
size: actual 13097 != expected 9001
#583/5 xdp_adjust_tail/xdp_adjust_frags_tail_grow:FAIL
#583 xdp_adjust_tail:FAIL
Summary: 0/4 PASSED, 0 SKIPPED, 1 FAILED
With Patch:
# ./test_progs -t xdp_adjust_tail
#583/1 xdp_adjust_tail/xdp_adjust_tail_shrink:OK
#583/2 xdp_adjust_tail/xdp_adjust_tail_grow:OK
#583/3 xdp_adjust_tail/xdp_adjust_tail_grow2:OK
#583/4 xdp_adjust_tail/xdp_adjust_frags_tail_shrink:OK
#583/5 xdp_adjust_tail/xdp_adjust_frags_tail_grow:OK
#583 xdp_adjust_tail:OK
Summary: 1/5 PASSED, 0 SKIPPED, 0 FAILED
Please add below tag to all the patches in series.
Tested-by: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>
Regards,
Venkat.
Powered by blists - more mailing lists