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 304C1C83F2D for ; Thu, 29 Aug 2024 15:39:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B9BBF6B007B; Thu, 29 Aug 2024 11:39:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B49476B0085; Thu, 29 Aug 2024 11:39:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A108D6B0089; Thu, 29 Aug 2024 11:39:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 805066B007B for ; Thu, 29 Aug 2024 11:39:46 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 03EA11A064B for ; Thu, 29 Aug 2024 15:39:45 +0000 (UTC) X-FDA: 82505693172.25.F6A5A03 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by imf09.hostedemail.com (Postfix) with ESMTP id 1FA33140002 for ; Thu, 29 Aug 2024 15:39:42 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hJ5R7qVf; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of surenb@google.com designates 209.85.160.175 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724945917; a=rsa-sha256; cv=none; b=EjCYGjs8Vi1BuSNRmJ6NWKDLEQssOJbIoMP0SSWN7sw2SpRmx3824SpPXNEgQI4D6pp+A0 69G743purzqtH0qmNXUPDU0jZIjTKLKsBhfr01I1ApmKqWNepjDUMqwMdMNt1BlWpPv7TM AW8YMcddFELzHc3yMGPLlnIChlkKTJc= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hJ5R7qVf; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of surenb@google.com designates 209.85.160.175 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724945917; 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=8D74+30M1YnAgX4+r14pJtBtSFBM+4hW1bBlbUxfhno=; b=O6nMVRgtziSXUJ3XwBp9Nm0ZW3UgZYK4YKbNdkhTAdKkoj824wZrnOhVy6zkXJVsKaxkj+ izMYLyVYu90/+Y+c0nZSC0C74a1+GU4gJ3EfPrxw4Sc6P9zGTfmEpLjh9I+UXpg5WwUj/6 DrBJTvlCMkUXPdOHSkeSBYE0YUt9Ofc= Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-456871a4d8fso122101cf.0 for ; Thu, 29 Aug 2024 08:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1724945982; x=1725550782; 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=8D74+30M1YnAgX4+r14pJtBtSFBM+4hW1bBlbUxfhno=; b=hJ5R7qVfit/MVbpHEbrsTeVwNizIIwMNxIWzLGVik1AuYX5cUnqsHmDZ09vBzy7jBt 4Ui4MSZaBB/pzuGAN7XX6gJGXuMurWNWcWGnKp/yt0v3bEMT0NR0QkQR7t7bvmfx2FvK o38zRfL6cc42MXY/STnhbx35Fx8UtBoV861+9pll2CG8qNgR3U0PMpy4RN5nHGRD4949 MlaWnpM3N/c0wv5VnFyeKS+/oN5tmSuIOVwF0wDO4yUCkMd91S0ZRoyc+2Lc1/wjZK6H tMJ4+WlUKSU3hrw7YKy4qwhli0+T6laVcamYcmRrKhWjlZxpkDCDra2SkOzxAiIpVLM/ FqVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724945982; x=1725550782; 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=8D74+30M1YnAgX4+r14pJtBtSFBM+4hW1bBlbUxfhno=; b=oq1DoTS3E/HYEQmeUbj14DPHwnfy4SbFQnMqqMfDBqnKCJ83P0FahHJcQBEAqDcGDS RdsZFEzwxzDjEvRfWUi7yra5Z/9ykrwZU4TLKR2eh8QCNao7IVbFLEBLQO/0JciDvlKe wk6q/cwwxsv7nWjJAoyfj1Jf5PhQnLNvl8ozVyljt5PYLxFi64kLZDmlZeIL4PAKRamP HImCa9y28kyQiAmi3FmKoOgJn2YdtiN1caTVobsZaUchbuWhZtikLaqQKAZK3zCwNiBu DWdA0rHEncNRe76SlU+yNvsAmtQOjFdQbQcegH6Sfku4TZ/QzvOUvxgnuXUtcFDZLVEh pVsg== X-Forwarded-Encrypted: i=1; AJvYcCUTrEnGtpW0IlyLgM1WYC2ZUEw8GJPXU5Tj6rFFTbZ0e//UKmQsadhZTIYjMxxIeuOFR8F94ij88g==@kvack.org X-Gm-Message-State: AOJu0YwvQorUsbsgTeh/+eFpPvGvzIK3fCIsRkaXy6k0UXIx9MNdnLLi Yaas+g3p3tU80hZWl3u/ezNaQXGZQqXCXVGtsRDpv6FwlUXeWBJTvs00iIPE4F6PQBtm84vzd0j ocL/lgraESVPtjPVW1ChaKU15ILCxB1g1cjQg X-Google-Smtp-Source: AGHT+IHUDTzW+IIm6ItotC2tMRbqdsyv1SRDW9WKLnf6aOtEqex4+UOqP5ebw6vSHRryEwjlG6iOoV85JmC6QmNZCt8= X-Received: by 2002:ac8:5e4c:0:b0:456:7f71:ca78 with SMTP id d75a77b69052e-4567fbb875cmr4356491cf.4.1724945981739; Thu, 29 Aug 2024 08:39:41 -0700 (PDT) MIME-Version: 1.0 References: <20240809072532.work.266-kees@kernel.org> <20240809073309.2134488-3-kees@kernel.org> In-Reply-To: <20240809073309.2134488-3-kees@kernel.org> From: Suren Baghdasaryan Date: Thu, 29 Aug 2024 08:39:29 -0700 Message-ID: Subject: Re: [PATCH 3/5] codetag: Introduce codetag_early_walk() To: Kees Cook Cc: Vlastimil Babka , Kent Overstreet , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, "GONG, Ruiqi" , Jann Horn , Matteo Rizzo , jvoisin , Xiu Jianfeng , linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 1FA33140002 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 9jhsmex3egg7dqf141n4kc6gsjgqnzup X-HE-Tag: 1724945982-708489 X-HE-Meta: U2FsdGVkX1+FWGm1RGBM2lxtfYIE/01pmSwDyQdLdvOmvBtvBNq+WQLo32xeZ7wqsWSBNFPQlfnvDz34L28aadvfRXbbEP5bPH1labrX/m7Qz/0kLAYp+//g1Z+UrmZXzKgsLrRPFHz5jciuoR25a4h3OW11Pr5sI7BiHsCdJ3iB3DUjAiE3JVL0WR0+QxI2bZL69rLa/wwExwWtzCvR2eUfaT5J+JbtyHHCs/yVl1spkwMiG/lP+SaDKxFCGXSqFVgZWmaifKYEOBavZIJUhPeqFSZPByKsbPrbtQXCuEoxFBHHfcUmbZTuk5ilQGTGX0YFDvq2mTO8ZQ2N4Cd51GLNF9Scc/U0QRwKBjpTKUvRfEt7/9DZWMkomTSThQLhMFTkWJ8X6G72FAPe4qY4ENhbO9nf2pmCc5OyC0gC+rdjNACASOInUrdCeCKnwO5Wg+/9YDBpbpKL6v7UxCa3s3oGWnhsYSAhxMRsBK6p5NMLrKa8hP9pNCqel87lRjeJMh4ShWmGrgfTyDASa3fOn63ACtnBwOCHK1C8oYQP+AluWEMPkBTE2zgUTfdGWqMV2xHkmaP3wi9Yl+ATEszSIJGbaSzxEKmB5WeylvgUG5ojvPHIljPqE8GK/vD/yyHbF1lmzAIvt4jngi/64KSzYpJWsDmOfz4f7SNI9jvQcfSM9n+RMnVtJuSPbM6M3INZ6PxD/NT1n+cngLL++0Tn+/cJAcKaxQ/vNmlSdF2khX/YJbcz2yhSWilVSnFDYkY2K3xGo+NcpGBQ4PaMA+pMGiiotw6wVNU5MeI41FLSfb1jMrJfOXaZNuQ17Nqe1kH1eu9lITAtuVqbUY5reQLgDbb08GyRPOxoe7vrsvPt/A7NDj3yL4LjaQ3BUtiTPQqUyVzaE72pas/Q5LGMDHbLhllYphC5N6s0YM1fPK44oq7dK2T5Er/Yllplm9OSQMD7cCj4KAFRP+6ULYUUQSM SncYSu5F upnWOlaTirCcb8oLslPGUQO1AAPAMn43U+oxlaO5sj+BFriEJuLe+sNKA3OVY5lf19BqbkUALbefoeHRQNNfPePZN2FTeuSX3X6Mgo8Osgkp3qCngrwx+Qz4Q87FtqnX0qygZrWR/zB7683mLhC/2BHakuNZ2lOMtNyQ1G06OKCGm4GBzhdtu9Xq1tp+eng0qACZm3WhnWA4R5kYlBJeCQ2ChWSG76ANKTDd/6kklQA8q2rjeGCQVDpaU2gsPV6/w5MbmOGNk2ZbgIbD6jE9y1I1dUDA0qpXPDwM5jhyrDvh1X6TAcxnTkLUZf05D03tME4a0OQ6RaHYnTixy3tTJEsD/kEZdkNCanxfwHAe212KureY8OFDMIMakaL8KKkAv9PJvlTV38brGhMRagTPegE7Zg2ziz6fRiQ8ILsvApmUdLe9hEGfNNMDj+2/MGeodvyv8Wg6U/mssFVBeCf+oQPuWWc6IrhPcYCooQ+xiG8rEwM04+lqt1vBHIAk5ivvixxxQHmgTbPLj9t6ucdkFCDL2orS0DE3hdn6R7DsoaKeOHv/lIuB9I3CRWtGaAu6JQbl6OwHvTaWfHbgtnVfskgy2tWUuPaRD1TlYnzDyfBG2wKyH821rzIV3F9SCVMDhjMQQ9y42jsak46DH2A9e4iMvQA== 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 Fri, Aug 9, 2024 at 12:33=E2=80=AFAM Kees Cook wrote: > > In order to process builtin alloc_tags much earlier during boot (before > register_codetag() is processed), provide codetag_early_walk() that > perform a lockless walk with a specified callback function. This will be > used to allocate required caches that cannot be allocated on demand. > > Signed-off-by: Kees Cook > --- > Cc: Suren Baghdasaryan > Cc: Kent Overstreet > Cc: Vlastimil Babka > Cc: Christoph Lameter > Cc: Pekka Enberg > Cc: David Rientjes > Cc: Joonsoo Kim > Cc: Andrew Morton > Cc: Roman Gushchin > Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> > Cc: linux-mm@kvack.org > --- > include/linux/codetag.h | 2 ++ > lib/codetag.c | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/include/linux/codetag.h b/include/linux/codetag.h > index c2a579ccd455..9eb1fcd90570 100644 > --- a/include/linux/codetag.h > +++ b/include/linux/codetag.h > @@ -64,6 +64,8 @@ void codetag_lock_module_list(struct codetag_type *ctty= pe, bool lock); > bool codetag_trylock_module_list(struct codetag_type *cttype); > struct codetag_iterator codetag_get_ct_iter(struct codetag_type *cttype)= ; > struct codetag *codetag_next_ct(struct codetag_iterator *iter); > +void codetag_early_walk(const struct codetag_type_desc *desc, > + void (*callback)(struct codetag *ct)); > > void codetag_to_text(struct seq_buf *out, struct codetag *ct); > > diff --git a/lib/codetag.c b/lib/codetag.c > index ef7634c7ee18..9d563c8c088a 100644 > --- a/lib/codetag.c > +++ b/lib/codetag.c > @@ -154,6 +154,22 @@ static struct codetag_range get_section_range(struct= module *mod, > }; > } > > +void codetag_early_walk(const struct codetag_type_desc *desc, > + void (*callback)(struct codetag *ct)) > +{ > + struct codetag_range range; > + struct codetag *ct; > + > + range =3D get_section_range(NULL, desc->section); > + if (!range.start || !range.stop || > + range.start =3D=3D range.stop || > + range.start > range.stop) > + return; I think this check can be simplified to: if (!range.start || range.start >=3D range.stop) return; nit: Technically (!range.start) should also never trigger. In a valid image these symbols are either missing (range.start =3D=3D range.stop =3D= =3D NULL) or both are defined and (range.start < range.stop). > + > + for (ct =3D range.start; ct < range.stop; ct =3D ((void *)ct + de= sc->tag_size)) > + callback(ct); > +} > + > static int codetag_module_init(struct codetag_type *cttype, struct modul= e *mod) > { > struct codetag_range range; > -- > 2.34.1 >