From nobody Fri Apr 3 22:21:17 2026 Received: from mail-pj1-f65.google.com (mail-pj1-f65.google.com [209.85.216.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C07FE73463 for ; Mon, 23 Mar 2026 02:18:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774232338; cv=none; b=VVHZeF7ubsf2xlAF701ecez7w/49Ly4GdA0mysEvTP33E2hIXpph/+4SqYxpASugMljXuEtTX98tGbBBFhJ5pE7rDnC9jSJPYT+6R3quyFALkROKgrWNZMJ9rtAZg5ghik6tE1kUAiSlWNDiAYunrMJt4Cj5CPLwYd0ncCPCdFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774232338; c=relaxed/simple; bh=3F2YTwMiInpUo7vYiWA4QSWv+6x2KTNxHJOzazBbxiE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=SZISBMsNNJ460d55QNTWliY7EzT4LHohfG3K9y3DCH5RLheyrrMH05bs2M8OU9eXB6JL3DrSpg8eFO/ZgnYDr1ttkW+y1RfhHKXxD+AfP826A0WIJ0ggPPvmw8EFppnNvNxYcZXGQSkR4WamvLuyamkmQNg5p58aPsPmVR1Qvv4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=W/xBYe0K; arc=none smtp.client-ip=209.85.216.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W/xBYe0K" Received: by mail-pj1-f65.google.com with SMTP id 98e67ed59e1d1-35b90d6fe14so2531874a91.2 for ; Sun, 22 Mar 2026 19:18:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774232336; x=1774837136; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7Ooe4HdAHw7dJGZq1UaghqqlXPLswv0YlfyU3aXugIk=; b=W/xBYe0KUceib4qjxEmSwQXKXJuAnWk+8WQZZR6ddsR+i0dcAX659+hJKoYV6a2Ltz DOGd2T+2L5udFqGL2Gd6UP1XPfHuBxMPfEpXWrPhpuzThP4wzpj4+W8URPGLWlotx+Qr YfKAfB+Q54Admiaqne4FibIj2+OHZ4HcyUUfNmzlnfDUt+tcJUXY3qMtlJLkiOR6UAZg scuhRjTKkFIZA+QGjfLOI7HbDEI4I0+YBf5Ia+CCQlYV+zqY/dq21lGe5rLyfIkwIcTV +G+1xUGjsYPKFpgKQnvjqVMTMM6rBW2Hlo4jJNl+bgfwwnl17R+ojz8b8t8XNT8tASFz Vr9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774232336; x=1774837136; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7Ooe4HdAHw7dJGZq1UaghqqlXPLswv0YlfyU3aXugIk=; b=cfQ+aEqg6PdRLsR7cDXvJwD5UQtGnlrZpTUTaTIpQpBklSKGAf1JX9U85vLiqj9Jt1 0+XGope4UfnthQx0U9G3/QaUFDONrEvpiIw8c1Nc2tcAhZN81SyAt59/4saHkau0XRre Mo7ki9ca4nFjYPzMfDqitN34QJA+wtthHR0xB1z800UvfehTqyDPYUM/Lh4EDf6HS09f uydeLQDY1d2whELo57uOgy/Myslblo2+kaMmF8a5XONS2VqNPicjNnlYQmdDnr4LXoIU 3hQaWBoiEy3div6pSvbN4/fqT4BYefdWrhakApb8tXM7/ZS/myazC4gEMP6EYQSFxeC6 A+Nw== X-Forwarded-Encrypted: i=1; AJvYcCV6EjSZjqpE8+GYoo3xLKaCkZ9OZAEIeCrWVsA57ozaZf9HpWnz47MWzFCrqM5Yr6FC9G7O7i5AJMi3pjQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyHIavxB33H+HG9ut/Y3VDrxlyPDOSPFIWQkgWv1m8nKem9xaW2 OXermy/ModJ/YymkoALP+f8A0auM5XNkKkS7pcF7KwScdcO4drjmGRUc X-Gm-Gg: ATEYQzwOQObHEdW+lOSq1ktT12Nd7ahTV60RldGoo5wwfMcF0oo3V2aVt2mDiTyoBVB jY9Jq7Uz9d5BoAMnY2PQ3zPmIki2oKLR9Ik0upsxXMHhsReXZeKpUSptTlx1CkBVDsqPcoLQxrW rU4wl2bhQqXOKqeEABKQLTPB4PeRHGtEULeTmp/s/8OKmmUO2wqXjS8WOStOnqhATc1Hn8C4Y3j Mip0n/dr+lj3qYSKL3B0GrFNzPzDAi1dKSPvEejfyeCj57wNagJ+vE0Mj0z3NLMh6YB6IdnWt+W ZQEdWJ7P2kcrbGQhpjvBY213mOM3wJJtvPFO0lyjLGdk4ih3p07avCnEdPVY52T4lIpZNx84Rir nB6nv5jugreifTPMhwkhhHCUo9FUVelGXx5HRdx+PuUBLqjylDJJKUd8ZrRmLdh7F5YPssMPm9G AaCCoJf6JOI3dYifvB4lxz X-Received: by 2002:a17:90b:5111:b0:359:ff8a:ee3f with SMTP id 98e67ed59e1d1-35bd2d3b921mr8332433a91.30.1774232336155; Sun, 22 Mar 2026 19:18:56 -0700 (PDT) Received: from 7940hx ([103.173.155.241]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bd24b541csm3766621a91.0.2026.03.22.19.18.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2026 19:18:55 -0700 (PDT) From: Menglong Dong X-Google-Original-From: Menglong Dong To: ast@kernel.org, olsajiri@gmail.com Cc: daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org, yonghong.song@linux.dev, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com, jolsa@kernel.org, shuah@kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf-next v2] selftests/bpf: test access to ringbuf position with map pointer Date: Mon, 23 Mar 2026 10:18:39 +0800 Message-ID: <20260323021839.101316-1-dongml2@chinatelecom.cn> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add the testing to access the bpf_ringbuf with the map pointer. "consumer_pos" and "producer_pos" is accessed in this testing. We reserve 128 bytes in the ringbuf to test the producer_pos, which should be "128 + 8", and the "8" is BPF_RINGBUF_HDR_SZ. It will be helpful if we want to evaluate the usage of the ringbuf in bpf prog with the consumer and producer position. Signed-off-by: Menglong Dong Reviewed-by: Emil Tsalapatis Acked-by: Jiri Olsa Acked-by: Leon Hwang --- v2: - don't set the max_entries for the ringbuf map - add comment for the producer_pos --- .../testing/selftests/bpf/progs/map_ptr_kern.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/testing/selftests/bpf/progs/map_ptr_kern.c b/tools/testi= ng/selftests/bpf/progs/map_ptr_kern.c index efaf622c28dd..d7611e7018ca 100644 --- a/tools/testing/selftests/bpf/progs/map_ptr_kern.c +++ b/tools/testing/selftests/bpf/progs/map_ptr_kern.c @@ -647,8 +647,14 @@ static inline int check_devmap_hash(void) return 1; } =20 +struct bpf_ringbuf { + unsigned long consumer_pos; + unsigned long producer_pos; +} __attribute__((preserve_access_index)); + struct bpf_ringbuf_map { struct bpf_map map; + struct bpf_ringbuf *rb; } __attribute__((preserve_access_index)); =20 struct { @@ -659,9 +665,21 @@ static inline int check_ringbuf(void) { struct bpf_ringbuf_map *ringbuf =3D (struct bpf_ringbuf_map *)&m_ringbuf; struct bpf_map *map =3D (struct bpf_map *)&m_ringbuf; + struct bpf_ringbuf *rb; + void *ptr; =20 VERIFY(check(&ringbuf->map, map, 0, 0, page_size)); =20 + ptr =3D bpf_ringbuf_reserve(&m_ringbuf, 128, 0); + VERIFY(ptr); + + bpf_ringbuf_discard(ptr, 0); + rb =3D ringbuf->rb; + VERIFY(rb); + VERIFY(rb->consumer_pos =3D=3D 0); + /* The "8" here is BPF_RINGBUF_HDR_SZ */ + VERIFY(rb->producer_pos =3D=3D 128 + 8); + return 1; } =20 --=20 2.53.0