From nobody Sun Feb 8 10:19:33 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AC9E175558; Sun, 24 Mar 2024 23:36:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; cv=none; b=QOILzMI8mW/m2aP2svkkChgYLNhpSsKUNDUe/on7llGbb8SGnmWUhpLALw5DlEEIXC3mRgdovOVtm5tdCjkvXp3xWF8W2D1Ns5+T3JgvIKMu0w7C3iTJ3J1XEv57jC88UhR/rd2ql1gmvyXKCgglQuEdsEpL1HVm4JVbEKoWPVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; c=relaxed/simple; bh=PyzAdGm1hzptCH7EM8IRzrHYBDnoj+9zKSyU1/zY8GE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pdWnfY/RKoMzKkkuY4raakRivw3q4S2pq+6ljozhj5KjmqTw6W5MBAFFEB1kXU4L47UmnhYbLcDlxgPDWboPNrFRLtqZ8vSAry5H1NN+tVZALUinoauqkYi8p3XkRWs9lV0UO4IWDT+gzTJ9No36OMnNxgXSkmD+GGvXheWfq3o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fiq+nQpI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fiq+nQpI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B256C433A6; Sun, 24 Mar 2024 23:36:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323369; bh=PyzAdGm1hzptCH7EM8IRzrHYBDnoj+9zKSyU1/zY8GE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fiq+nQpI84FafKxd73o+e8DQ7QHF1W4y0FPGhnaq+FBGYAC3i4fpSxdW0HR6R37iC xNeXP70atnOyLiRQscn6+LRGwdm7R5IJzAfkeOS0pduDoc1WI1+oaLDFD2DpC/xjrv xg0s5oTLi9ZTAlfSP0xqUaAkFkVj07As42R0FirgtvI2gY+iawo9hirFLaauObkaAj q4BbSSaRyiuE2GFYVzwRUstb8Xb+9p/hvK7RQroGAB3Dqphb2wpalM4ULotYnaK28v hzyewbpKsHB5ghkppC+txkeTOoZTyQQg8+FIT3Y9K8pB6MFjOC2WNGfwiReSJJYfZK t9A3tom55H7Zw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrey Grafin , Andrii Nakryiko , Yonghong Song , Hou Tao , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 068/317] selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values Date: Sun, 24 Mar 2024 19:30:48 -0400 Message-ID: <20240324233458.1352854-69-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrey Grafin [ Upstream commit 40628f9fff73adecac77a9aa390f8016724cad99 ] Check that bpf_object__load() successfully creates map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values. These changes cover fix in the previous patch "libbpf: Apply map_set_def_max_entries() for inner_maps on creation". A command line output is: - w/o fix $ sudo ./test_maps libbpf: map 'mim_array_pe': failed to create inner map: -22 libbpf: map 'mim_array_pe': failed to create: Invalid argument(-22) libbpf: failed to load object './test_map_in_map.bpf.o' Failed to load test prog - with fix $ sudo ./test_maps ... test_maps: OK, 0 SKIPPED Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support") Signed-off-by: Andrey Grafin Signed-off-by: Andrii Nakryiko Acked-by: Yonghong Song Acked-by: Hou Tao Link: https://lore.kernel.org/bpf/20240117130619.9403-2-conquistador@yandex= -team.ru Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin --- .../selftests/bpf/progs/test_map_in_map.c | 26 +++++++++++++++++++ tools/testing/selftests/bpf/test_maps.c | 6 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/progs/test_map_in_map.c b/tools/te= sting/selftests/bpf/progs/test_map_in_map.c index 5f0e0bfc151e5..8a52bc56568d6 100644 --- a/tools/testing/selftests/bpf/progs/test_map_in_map.c +++ b/tools/testing/selftests/bpf/progs/test_map_in_map.c @@ -23,6 +23,32 @@ struct { __uint(value_size, sizeof(__u32)); } mim_hash SEC(".maps"); =20 +/* The following three maps are used to test + * perf_event_array map can be an inner + * map of hash/array_of_maps. + */ +struct perf_event_array { + __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); + __type(key, __u32); + __type(value, __u32); +} inner_map0 SEC(".maps"); + +struct { + __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS); + __uint(max_entries, 1); + __type(key, __u32); + __array(values, struct perf_event_array); +} mim_array_pe SEC(".maps") =3D { + .values =3D {&inner_map0}}; + +struct { + __uint(type, BPF_MAP_TYPE_HASH_OF_MAPS); + __uint(max_entries, 1); + __type(key, __u32); + __array(values, struct perf_event_array); +} mim_hash_pe SEC(".maps") =3D { + .values =3D {&inner_map0}}; + SEC("xdp") int xdp_mimtest0(struct xdp_md *ctx) { diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selfte= sts/bpf/test_maps.c index c7a36a9378f8c..a72cc78706eaf 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c @@ -1196,7 +1196,11 @@ static void test_map_in_map(void) goto out_map_in_map; } =20 - bpf_object__load(obj); + err =3D bpf_object__load(obj); + if (err) { + printf("Failed to load test prog\n"); + goto out_map_in_map; + } =20 map =3D bpf_object__find_map_by_name(obj, "mim_array"); if (!map) { --=20 2.43.0