From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D167CF8852 for ; Sat, 5 Oct 2024 00:11:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC3D78D000B; Fri, 4 Oct 2024 20:11:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D735A8D0001; Fri, 4 Oct 2024 20:11:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BED088D000B; Fri, 4 Oct 2024 20:11:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8DAAF8D0001 for ; Fri, 4 Oct 2024 20:11:24 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B5FC68077C for ; Fri, 4 Oct 2024 23:54:10 +0000 (UTC) X-FDA: 82637575860.10.D9C2CE1 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by imf20.hostedemail.com (Postfix) with ESMTP id DD36A1C0005 for ; Fri, 4 Oct 2024 23:54:08 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NAoCtJcr; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728085952; a=rsa-sha256; cv=none; b=OfnEKdwH/otVMO5DRJnNzEmABKmVB3qhgnduMsAzWunZnLxCOiI6FAEvcU7ykCsw9wEzPr AudGS3phzuI6MeqYc7B38F2LYw8PIj24p1QH7KaiHbimH2DLhtYhcps2RTUwT0zAN4WQ/y JEzwTa+IvuUaHq3U7iTtnf1FtEHZsuw= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NAoCtJcr; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728085952; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Ey6Oq2lDKBRKaDTn8eG+GJF2iDyHBwlkWZp4+g4/Bto=; b=lU3V1p/rDdl+Tqc75mG44B3WjmAesQji9k6tXGDwMsQj1iYMgO0E2lA3coVdS7wHTr905z L5BGkl6wW3SYF6MQOyAjeROAlxOGKMszVjTmdy+fqGdPla+5bh0SE8N1wdpmWaNA+sneTk oIorqueC6mFUNT+1Kj6OfG2nOwYx3F0= Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-42cbc22e1c4so21027275e9.2 for ; Fri, 04 Oct 2024 16:54:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728086047; x=1728690847; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Ey6Oq2lDKBRKaDTn8eG+GJF2iDyHBwlkWZp4+g4/Bto=; b=NAoCtJcrxXVOUfscqKh0UVwZpAknCyAsyh4/uYK3G0B2mXmoqSwMFHIH00geNhWSQh giIcQs8Jlvkg7YToiGpV2bYifTK7ktLS5AsFdLudjXaFeSDV432G8aerLNsnK1vLUQNj U2uZam5yfZv07q4pc9V6/n+5rYSgQPlxqhhKP4SkNW+OvueNLlzgjH8OwkGcc2iQ3mLa Sp2ZJVT/5mxnMfpudIaGf0oPM63VVpHr46z2g8iAx0Qb/V9SFZZaH0vasqaEzxmU7fdD NqbWeQa6xgDO3eIjwUKDXL1K3XGXALWIRDvihk/EVonY6T845skbDFIfcELMf2m5rqMI pMRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728086047; x=1728690847; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ey6Oq2lDKBRKaDTn8eG+GJF2iDyHBwlkWZp4+g4/Bto=; b=gmiqnkk/uVjCt09uj4u5AtxN15DNQtNpILllR7/eSa1kDo1b325x5Ohzj+jxKQnPn5 3EBPto1JfTduPrgIPhBbGxs4xPysZupDquxDZjXftb6ZbPZmUFLliABfYFAS8bYKnhUb Yv4/wBJwmVQqmOP0FJg+2+DN/QPgNdkDOnmg6YkNl2zHFLDApnsgTFcLJdYjLovUXvdP 9/k6n6LrdZzJD516AycgWq3yI2gkaGRm5tkZWa941eoq3D4Va2sDmRJxCxEHnQT5HQEh VbfXj+TS5o/svuGWkUYGnbMinWPHctorMvYf/YtMrasAdDKklezQ8GVjrK12dxUoCpbe DROg== X-Forwarded-Encrypted: i=1; AJvYcCU8lhkB0B7FaZ88vAuCAExtXFEG/txwJ1MJAv5EWHND50SpSg8P9l239/JYp0fM2tgdZbiFiQi0nQ==@kvack.org X-Gm-Message-State: AOJu0Yz2bjJLlUp+ZQbjSQCmlepGimq9B4IHJ56keCfz3k5FR2HvQbe3 SBUUcalO20wVHBRjU/oruIQHN+2OTFoHZW7ogaqGZoaS6tlDGVRvge8p6Eq1K22vgAlSoqyYveC EdmquY4EykZkb7R/QwCBJc9eK3Ug= X-Google-Smtp-Source: AGHT+IFxohsGea7slx7Vahx8XGjG0DiWQjp0SC/7m33jdLrz+ta8T6ItKUN7x6l0F9O9fa+yoDaLRfLub8c8gZXkSQo= X-Received: by 2002:a05:600c:3c8c:b0:42d:a024:d6bb with SMTP id 5b1f17b1804b1-42f85abf4damr26751815e9.20.1728086047194; Fri, 04 Oct 2024 16:54:07 -0700 (PDT) MIME-Version: 1.0 References: <20241002065456.1580143-1-namhyung@kernel.org> <20241002065456.1580143-4-namhyung@kernel.org> In-Reply-To: <20241002065456.1580143-4-namhyung@kernel.org> From: Alexei Starovoitov Date: Fri, 4 Oct 2024 16:53:56 -0700 Message-ID: Subject: Re: [PATCH v3 bpf-next 3/3] selftests/bpf: Add a test for kmem_cache_iter To: Namhyung Kim Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , LKML , bpf , Andrew Morton , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm , Arnaldo Carvalho de Melo Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: DD36A1C0005 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 9e6o65d4o7i6zsidst3kcrxmcfcrcira X-HE-Tag: 1728086048-349093 X-HE-Meta: U2FsdGVkX1+FBtbICY6uDWHh1F4JLBbnxqygGDObXLZNijCuCeROqEFBJbXBKsRo4aNIDPrNbK5YT8A7mUIRH0i2It4xaISSkrHVCGy3HxQ1iM/RZfthfEcpoFKGOdK9B8I1HGosV78KzAci15Z7/cr9I+Z2GZzwjGTe45bm/xiGJgbmgaVvi48jMi3TFqsIkf8kVgxDIDejcD/ZCrWETU6G5kaWmUWzX58SUUyhEM0vcNFY7UJWP+kvRjGvILUdsauWM7TlWa8wsMtxmlT8QhAY1znVgZgovbZoPAyPtr4v196k2mQD0f3gM7eE6b3vehF88cXCOuHyONIakiS95pnGT+Ts/oIORkEkznFsUw9GGZIRdjSMj0M350qvthAt/TOIpeyGp60xiENzqk9EKSCgBWHXIygPLm8OaVX31WggVKRGa/wWPDLbsHEtbtIU/8A0uJ8Epw73BFr8VYX/pwVK2GZ0BqLuwk2pupKQ0R3dsxPjb5p6GOND3TPsAylJI8xcNOHOo/85YfsTR8x4l89x8qE+oE8So5z9LwYATRhXeZ1+Exsd1waUO+J3vEVkWul9/o0geY6FVQUAnZ2DEAo2p20mWoMgl29Wm+Ay/RySSK6tr4Ch4xtMTSBL9B2iZ06nUTcCQE6CB34idFfaaTvUIL3AmMh9Tx1KRZDMFz38WQtZ5DkUFga9sIOVwK8otmZXcFlV09PxuQMFhnYmdQbGldtUBcba8Hin8JuttpuLS60gcmI03+At8m9Fr3OqPITdKcXcHGov0mTVL8sBENgg8UOlv5yuOTPhX1ax2Pq3Hr8+oRCybJSmUSPGU7kX8rc+X7IptBsPtd/bvYkc5kFZr6VANcFnpMnJOEBkNfxgXcYV46SJVKeC0E0ab9YbyO8i/zU8cLJvnfbVDA1R/zqfV39NKdAIwR7TNtXGKv61nR/YPjExB1QZ3sdCPdHfETNTWChu9IiMr3ch5+f 3Y5RChau A0sGvg5pH4cihZoIkScmzWycUNrSG7adcfF/1dC4QgbWR62yTWLF6YVGDnhNHejBSIHpJGbgzVzSXc9us6JvSj9q2+H5lFcIpOlxYbZAFTSB1BxAJEXHJtOEakBKrfDZEWoinjfri83aMRr95xtEdsIH2q/ZSVyQFS7gOa4qlU0ROacnSdgGRLRuRSHhlVJFjuLEccAU1Vy//Jn9Pnehz7/ZY2GUKKaMoJMdZcGKdY8Pj0m4WltP5S86tCOgFbuo3PnL7kJxCsmofLw0Xl8QHPK/dbQzAEiRkRfQO4nyiHQbYUECqpRUMqVjucabspMDAAhIF73+qRg0BHUK0opj4s5rMhzEhlBycsEhguQaW6B/BTcg1ByN94cZDEdKJ0ZpvVhzalnBRXfE72yF6LVxTGcrVrN/wnsJ7SbL3N1NbNufDdOhf90qko7Zle6zypPJfYPlqPApLU2wbtrlBjTcb6g+ADq/ezdlCT/C/u/vH2Wmi1Gw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Oct 1, 2024 at 11:55=E2=80=AFPM Namhyung Kim = wrote: > > +++ b/tools/testing/selftests/bpf/progs/kmem_cache_iter.c > @@ -0,0 +1,66 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright (c) 2024 Google */ > + > +#include "bpf_iter.h" > +#include > +#include > + > +char _license[] SEC("license") =3D "GPL"; > + > +#define SLAB_NAME_MAX 256 > + > +struct { > + __uint(type, BPF_MAP_TYPE_HASH); > + __uint(key_size, sizeof(void *)); > + __uint(value_size, SLAB_NAME_MAX); > + __uint(max_entries, 1024); > +} slab_hash SEC(".maps"); > + > +extern struct kmem_cache *bpf_get_kmem_cache(__u64 addr) __ksym; > + > +/* result, will be checked by userspace */ > +int found; > + > +SEC("iter/kmem_cache") > +int slab_info_collector(struct bpf_iter__kmem_cache *ctx) > +{ > + struct seq_file *seq =3D ctx->meta->seq; > + struct kmem_cache *s =3D ctx->s; > + > + if (s) { > + char name[SLAB_NAME_MAX]; > + > + /* > + * To make sure if the slab_iter implements the seq inter= face > + * properly and it's also useful for debugging. > + */ > + BPF_SEQ_PRINTF(seq, "%s: %u\n", s->name, s->object_size); > + > + bpf_probe_read_kernel_str(name, sizeof(name), s->name); > + bpf_map_update_elem(&slab_hash, &s, name, BPF_NOEXIST); > + } > + > + return 0; > +} > + > +SEC("raw_tp/bpf_test_finish") > +int BPF_PROG(check_task_struct) > +{ > + __u64 curr =3D bpf_get_current_task(); > + struct kmem_cache *s; > + char *name; > + > + s =3D bpf_get_kmem_cache(curr); > + if (s =3D=3D NULL) { > + found =3D -1; > + return 0; > + } > + > + name =3D bpf_map_lookup_elem(&slab_hash, &s); > + if (name && !bpf_strncmp(name, 11, "task_struct")) > + found =3D 1; > + else > + found =3D -2; > + > + return 0; > +} The test is a bit too simple. Could you add a more comprehensive test that also demonstrates the power of such a slab iterator? Like progs/bpf_iter_task_vmas.c provides output equivalent to cat proc/pid/maps and progs/bpf_iter_tcp6.c dumps equivalent output to cat /proc/net/tcp6 Would be great to have a selftest that is equivalent to cat /proc/slabinfo (or at least close enough) That will give more confidence that the interface works as intended.