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 E541ECEACEE for ; Tue, 1 Oct 2024 18:24:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D2C82800CF; Tue, 1 Oct 2024 14:24:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 25B7C280068; Tue, 1 Oct 2024 14:24:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D4F72800CF; Tue, 1 Oct 2024 14:24:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id DF225280068 for ; Tue, 1 Oct 2024 14:24:01 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 716AB40179 for ; Tue, 1 Oct 2024 18:24:01 +0000 (UTC) X-FDA: 82625857482.09.7AFBEA8 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by imf12.hostedemail.com (Postfix) with ESMTP id 7193F4000A for ; Tue, 1 Oct 2024 18:23:59 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KGELYeHc; spf=pass (imf12.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727806913; 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=YTJsC/jjbWXRTy4pFRi9rzEWRfHyfbOwWhON0f8hVj0=; b=T4jon8Y8r25jyPG9BwedOcOi64Ylm/ZGrWYqvFw5atdUHcMvsYAfomvI5Pxm/lpphgFUfQ Xz0GO74bF/1qp1q7458vs5ZRcuIYqrXyR0WgSjQhwQ4ieMluZng/Brywt4SDM6uR0VRcBr bqDpLAji7Qy4+6AvSiiGRstwiARuyYw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727806913; a=rsa-sha256; cv=none; b=tEMuY2OLrPV1ft+ZYO+6DhR2ipwGgsKZRrYs37SaFQsRmFgRMdWCjCdgm5tIQFkJIrp2Gf vBO2gdOvataE8WMtmbE51tKxzbczBx8/J7rqgIRnpk4q6te6U+xDgnTLueJoqb55xip64m N8uoUtC7pnVB5+/lVTQfARA/CEAwSWk= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KGELYeHc; spf=pass (imf12.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-42cacabd2e0so45814435e9.3 for ; Tue, 01 Oct 2024 11:23:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727807038; x=1728411838; 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=YTJsC/jjbWXRTy4pFRi9rzEWRfHyfbOwWhON0f8hVj0=; b=KGELYeHc9aX/T/uC/qBnrFeNhbyxsz0yC/vlE7iLZ0O9NfpUiY4/fzzzIHQRtPWPK+ msBsKXjqasWuycy87VKd57uaCk4AAvRmQZnA9IkoyDxD7+aqBwpQkS75opMTOJQyg5ZH 50CXt6FUZFr/kw/wbmd2wTXrNz1PLRPvUonQuZns2nJa9XYp9qb3TaK/lSOPW/q8amQy aG23Gtdy9vVOBCw6TgDj+l8ryfiD9RBMHzMQELrWlpVKpUQwPaMp2p4rAzkcahwDFUxi HjOwiIXkRooBVMpZNpQv6ydl0AvR4faSbjEu1C6HRGjm1J0LHN1mM2mcJmKZ0GoKfOcv 43kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727807038; x=1728411838; 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=YTJsC/jjbWXRTy4pFRi9rzEWRfHyfbOwWhON0f8hVj0=; b=UwzhRzSPvImbViVu48jSCaLUwNmeETkToBIGuKpWvi0SJW+VKzhXOx6QL2RIIYInkm azLJhIAxbOABQXv0Li7HpmmlYdSEMquNIMz3aVgqOc6uTO32QTcCxa7mx1cvf8Rw3si3 pTmJJrnVf8iI8Wj6i3R2jH1P3oOSycFxaXBj5kkFQ/piBUxSskU5YnUjkpYPzEI5H76T 68aJH7rKnOj3DTdoHGB6tpmTTC9Y9BpDjbthaXQIcOX+wpCDppcL2Uu2BitrGSZnCjrV qNj4k8Tx/KbYEeueisMMrVbYqNlGsJVhtOH92dfeFcugeSIRdH+1LyBXfs0jCAvO+LuN VEGg== X-Forwarded-Encrypted: i=1; AJvYcCVm2F3mjmyCZD6WiVphYPBhz2L7U9D2Vlfbi2/mJpjuK+lvyEbNtSRMU5fJNAYXPt81tR5mRBdEHQ==@kvack.org X-Gm-Message-State: AOJu0YxJaG7tHGFEbw2TOpMWsgjQB8rvQos7/uTL7urPSd4QM4f3VhyL oNkakMnSJlf/j0hHaQML3cKdp2/cANdhXkwlzST7A09PjycNEB8lFn/6ANNuwC3IsTul6gjUi/9 d+Nd82UU38wrQXdjQfZBYspfQNHQ= X-Google-Smtp-Source: AGHT+IES6bl8TMEHdHakiAr1aiBS/Qo6yFrZL6Y/S7x1GcCWBFK4WcFj4ZIEdTixP1udWTCGLDhFDmuqnbfmXhu5TIA= X-Received: by 2002:adf:e450:0:b0:371:8ca4:1b76 with SMTP id ffacd0b85a97d-37cfb8c84d1mr266108f8f.32.1727807037618; Tue, 01 Oct 2024 11:23:57 -0700 (PDT) MIME-Version: 1.0 References: <20240927184133.968283-1-namhyung@kernel.org> <20240927184133.968283-2-namhyung@kernel.org> In-Reply-To: From: Alexei Starovoitov Date: Tue, 1 Oct 2024 11:23:46 -0700 Message-ID: Subject: Re: [RFC/PATCH bpf-next 1/3] bpf: Add kmem_cache iterator 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: 7193F4000A X-Stat-Signature: ups88q93a189yomx3qfskznt3gm3j4e1 X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1727807039-277678 X-HE-Meta: U2FsdGVkX1/0oZA+35ckxY+FcX48T2wOCON84Aiai/7z6DqgYvAPPsrzlu/tJPsf9BJn7Nl5+vI9Qh9zZRL9YAMvseGSNNPayEU1OmEly5+cV/d/ZzfDchBBO8Lbj2wT7z5NebEX0h6SzkHNoyXLO+fdFCQJ8uv34ILm5idzhkkZ5ImUHQBMKiIuwkHsidBBb+hOt1BIo7yQsgJxn85DNltlsluUhYxp+RKW848aze6DybLIIaDT9UYvS4OkWRNxSyMO8HnKang5DYIxGWrAQgLKWZ3NTvj6JP6o1F7orUx5yJi0+cpZC6nrLiX4pTxOpMAeUVbSQ6phbjsxjftHm4Rj548XJi9jOiky3V21+D1SvF1PWvA67CAhVwP952r79rVZu0P8S6u7VpX4ILvD7J9LXnAAjiaCzTy4Ij3nN8noBD6nb661DbWWK7/feBOHaLgFb/CYPKD/rqYpu1sz5tiCaMofpCSFpeviJ27XWE5nuWQu/snjFD9+iHOt1vTZz8/mczrJQpP1CDiuey/nYx9FW0FmTWeVFZ+Vk87a0yWVTFav5Y0RYQ6b5mB59c4oMvp0i/WO1z/gHdSVxjhKuk5naijB67yJSYWrwqaU/oY2L6VRscER1fA+uZxPvdWljAvRxt6eyBBF9rj0KS7W8H0Q/SmWTCjzt8y3X9U0kg90JQY+pTOpYKoAh8IFaZQ9uRi1zSn25/02tQiQKTjByP4QYLWwDqUefrsm2hBby162WjFi00bSpdDyTejnk4P7+zGrDeNLji9Y1KR/j0768nhMoN/eCf0fS08xlWFj1yhI/5Ap7bEOuDPRGysLAs4mO+Squ9pPF4bdvvnF5zcGU9jl7jkztGXCLJDMigyhRIIrzn+hj0zAQK6jUgAT1+Ch8EB5JBjq/CTId19RmdARbtZLS87rIOETyqMvXzrVd3yIrH9w452KdoQuUcCesWiLSRLYS5xepuFp/XLBwub gk3nAiWQ KLgvV8sB0uzm3zTy3zA7hiwXXSSnIPfArGuksR+XB72VbUilYqyNQaU2nJJzkYdBDeMmzIXjAnfWHvqlkz9XgC1WEPzlR9NOZztXcbfrWQ4AZMz2tbl1hnZFz/yc43fGQrafHPqMVB8cIvTHj5czVNCzHhvBrYmrms3zaVXHXOEXFgrdzTsuEyzFsSukJNSjda8cMHhzRNtB7GB5X5NDaKsRFWseMEKYbvUK0ks5WRPMMQI21HYda+4MUnNN/XY4jApTzGrEfLVAjrpdh+sTcpc6WrQus7NUGu816Qu2LKI6eLjhqMgAKMPf8Cb4KRr7XztgYJir6BKNCCv27GYu24VAoYoUwLuj4qDL5zw8ACaW36pOboMFm5z1cKRuMpVrjtrrEiVbkklFNHyfYwOJp+E/2UUC7VVnQJTKAnsRR0qB01GwPdWUalbI38M6mw5zDWrG9cKsXtlYwkvDM4o6smudlnVcEZrKFgH/QTa29f9iSAUA= 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 Sun, Sep 29, 2024 at 7:08=E2=80=AFPM Namhyung Kim = wrote: > > On Sun, Sep 29, 2024 at 10:04:00AM -0700, Alexei Starovoitov wrote: > > On Fri, Sep 27, 2024 at 11:41=E2=80=AFAM Namhyung Kim wrote: > > > +static void *kmem_cache_iter_seq_start(struct seq_file *seq, loff_t = *pos) > > > +{ > > > + loff_t cnt =3D 0; > > > + struct kmem_cache *s =3D NULL; > > > + > > > + mutex_lock(&slab_mutex); > > > > It would be better to find a way to iterate slabs without holding > > the mutex for the duration of the loop. > > Maybe use refcnt to hold the kmem_cache while bpf prog is looking at it= ? > > Do you mean that you want to not hold slab_mutex while BPF program is > running? yes. > Maybe we can allocates an arary of pointers to the slab cahe > (with refcounts) at the beginning and iterate them instead. And call > kmem_cache_destroy() for each entry at the end. Is it ok to you? That doesn't sound efficient. Just grab a refcnt on kmem_cache before running the prog ? Drop refcnt, and grab a mutex again to do a next step. kmem_cache_iter_seq_next() will be running with mutex held, of course.