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 3F00FC021A0 for ; Thu, 13 Feb 2025 22:20:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AA183280006; Thu, 13 Feb 2025 17:20:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A2A63280001; Thu, 13 Feb 2025 17:20:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A2CD280006; Thu, 13 Feb 2025 17:20:16 -0500 (EST) 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 64090280001 for ; Thu, 13 Feb 2025 17:20:16 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 01A18C16E0 for ; Thu, 13 Feb 2025 22:20:15 +0000 (UTC) X-FDA: 83116340832.15.7E1268E Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by imf07.hostedemail.com (Postfix) with ESMTP id F053D40006 for ; Thu, 13 Feb 2025 22:20:13 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=EM94EqPQ; spf=pass (imf07.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.167.170 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739485214; 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=QRaz9OxCEX01QL7HD6xXPMgP9kkUY8bY3eYmomXDOGg=; b=w/YMuGmR1cssTdH5S7Hgl7ANBsNAMsMlYuaG/sSINQ+nIeuvfPKa06GlLr2/nIEqakPN4h tNfy7mEtLDl4smFW8/DiV354h9WPQ+HHiFSLjNdUIUzG27h7RmrBgFyFFQIS6c4SCvk4f8 tUQ1HC7BL2wg2DupipqgjEN+0MGyB/M= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=EM94EqPQ; spf=pass (imf07.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.167.170 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739485214; a=rsa-sha256; cv=none; b=1XUPQC7Pq3kLbQmX1fECb5JkpHtOjstPXNciuSgIZHwdThyIWZvKJM7MR0es/FiR1+wllc g8k3IdilBA1MkDC7PM42DHt3DjNQ1F1mZgEtti+mhZR9LgKKo4Q+1+YY5bVDJtb0sdlRz3 7YwCunqCIkZLN5MrVKC30QpJJdYvt88= Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3f3c9c1edbbso59628b6e.2 for ; Thu, 13 Feb 2025 14:20:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1739485213; x=1740090013; 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=QRaz9OxCEX01QL7HD6xXPMgP9kkUY8bY3eYmomXDOGg=; b=EM94EqPQEAusD2xyOeZWRMh1ISBoQXPhegJo9Au0d66VFr2BNLFrhx1kjXCQSBJD2/ t/CULtIBC6hEsA3x34heSlU4POgV6mldq9Pm3EARnujZouoYzTV9I3OV/WWZk4f9xUac KOwTSDZObsAl3gc2TduCxRqxkv5xsHskxuCvs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739485213; x=1740090013; 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=QRaz9OxCEX01QL7HD6xXPMgP9kkUY8bY3eYmomXDOGg=; b=JZ4ns8BloL4iNfber/YpUbUaEFlhcA/ixh7wthY4gXA86hMl/Eec7I0TcKQi7/NblK hB7NrBYGiVmEtX4fLsYd30x2rlEcd9xRd5bJK96NWUEVDhiXDG47kjr+Nv/4u8VrJehs huhbZXJRvtF2KyLAtWGTLREH//s3KWX1a6S2atpGwtwp7Al0IW+tayK71L3MQ7Zgb500 SAsdXahqIIFY1A5uPQkm6J8xg2hcaGNKaa+Sm5/PoziGt06CE0YcBFbCjZ8FgykAi9oF mfZJWrOXbhGvRuacxYE472ePBy8xJ7OWPkkXaBgNWQ2wPrTq/SbP3XXIvUqzN6KV82bs z7iw== X-Forwarded-Encrypted: i=1; AJvYcCUplwmcgKciF0d63v1PZb9grKKfouRyqgfoW84QvdyF8qkznR+zfMFN7B5VsDP7bVNd4W8ETM8tdw==@kvack.org X-Gm-Message-State: AOJu0Yy9cH1bmdgmSHtYJXzcpPdSoxskDReneSzldvOCnp2x0BQe5sdz ZD8Ag45Sya2TVl85hSUNueEHopQ184vc0mKgvTG3HBdEHBMRumU3d9B5GuxpG/DmNOLtm4JuyW6 1bzb4ZBcUqrVlLJ/3CKZPfRP9SkqP39FzQjCX X-Gm-Gg: ASbGncuILtZS/nr32CFFkNZQzjG0IKtdNIPJ0kGjB2MUlWC/hP9Uazk8dj4+DM/yiZ4 MIi1rBmERHr/EYVPp5BQevYHe2nutyOf7T6ulikJ1caeF6DKXQ2/HZIHbhptJvC536fkWOEj9RY 1Vb3RZsbbWQ0mTmOvBx9ZphXlBeH2NEA== X-Google-Smtp-Source: AGHT+IGEgr/tnpmZ7iFKLQkIbh+ChcL78omaiRk8B15Pn3sTe3eFnZc5dLwS9oc27svBh749EcdLfS07kL59waveuvE= X-Received: by 2002:a05:6808:13c3:b0:3eb:45de:8ab5 with SMTP id 5614622812f47-3f3e1a32cc6mr168816b6e.4.1739485212888; Thu, 13 Feb 2025 14:20:12 -0800 (PST) MIME-Version: 1.0 References: <20250212032155.1276806-1-jeffxu@google.com> <20250212032155.1276806-3-jeffxu@google.com> <20250212135000-861e6353-6e0a-43c3-9b28-649ae4dfc607@linutronix.de> <35C0FD0B-0483-4663-AD60-701AB8D9247A@kernel.org> In-Reply-To: <35C0FD0B-0483-4663-AD60-701AB8D9247A@kernel.org> From: Jeff Xu Date: Thu, 13 Feb 2025 14:20:01 -0800 X-Gm-Features: AWEUYZli_FRMoDmTOv0oE_wQIaDl_68u_YOG1Uo7f717uYIA8g5CWTTkKASWsyQ Message-ID: Subject: Re: [RFC PATCH v5 2/7] selftests: x86: test_mremap_vdso: skip if vdso is msealed To: Kees Cook Cc: =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , akpm@linux-foundation.org, keescook@chromium.org, jannh@google.com, torvalds@linux-foundation.org, vbabka@suse.cz, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, adhemerval.zanella@linaro.org, oleg@redhat.com, avagin@gmail.com, benjamin@sipsolutions.net, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, linux-mm@kvack.org, jorgelo@chromium.org, sroettger@google.com, hch@lst.de, ojeda@kernel.org, adobriyan@gmail.com, johannes@sipsolutions.net, pedro.falcato@gmail.com, hca@linux.ibm.com, willy@infradead.org, anna-maria@linutronix.de, mark.rutland@arm.com, linus.walleij@linaro.org, Jason@zx2c4.com, deller@gmx.de, rdunlap@infradead.org, davem@davemloft.net, peterx@redhat.com, f.fainelli@gmail.com, gerg@kernel.org, dave.hansen@linux.intel.com, mingo@kernel.org, ardb@kernel.org, mhocko@suse.com, 42.hyeyoo@gmail.com, peterz@infradead.org, ardb@google.com, enh@google.com, rientjes@google.com, groeck@chromium.org, mpe@ellerman.id.au, aleksandr.mikhalitsyn@canonical.com, mike.rapoport@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 44wwamanfaksn5686zrgt9qipufcq9yj X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: F053D40006 X-HE-Tag: 1739485213-426366 X-HE-Meta: U2FsdGVkX1/+8aZTizAWlA/haOJegYYbSTWlZpRdu1KJfQGbBo0SkeTv8ZfXY0Grvd4wN7leaG9ngVKHdUGhMECian6hEDwkbUNfCb0K0IcvF0t4X8GqXif8bZeQzalh7Vn338o4NBi7ZNadeInfTNScIwiTdRpKGUJzsgF+NkrRFi7HiFeYitqBmcdu7NY13z+yIDY3s77UTmZ146ZArSVhZyFJXxm7D4DW+sGCmiduGeRllUxiwGhgWZXM947QfrFYPb64sWDSgMBbGQtBbz4GzFFFgS+PeM6Hk/QMoJcBbmHJKjgg0bWKtjn/VBYkKdNTm5xaKu1iU9wFw1/OWoLxKtS5dt2PD1SN/bSQ+zK6QxQ07cMynXRcpMAromDJ9Kp89aiJc66DlZVE7pgiBqUwYzO3xnefxoiP0SXDsYJqB/4d2Rgvhcv0a/e8N69mYT/ERiP09p2puhl0g6tHre1Kln3Ph/Ee7bFEnbSmxmo4TCoRr9bTlSW9wf8ReVV5lsrSzLea130SFC80Io6MitIigt2wmMVt/zpX/SrE1S4BvtBDZOtsMJnnxfC1/PO1DuMtDw6YYfBN4pKiVWOHgINxL2LZUwcdJEmbWtwh05MCYwfJElKWOMSsRhKAfJQoyMVVFwP5NNiA53PstAUKGHTcOqkVvEBYx9xmqZ4vWmlpzWLxiEKUb5nHtmwwaM+9NUTwWb8iRv2t/MkMTHQEJud90eT4cTnMn1+Sgtc8sGKPOuvFSfR6E6BekiVRFDGirR5Q2ufuiQPOTgT9c2lAIoQlC8BLaejPrvjUPvwg4UMw9JBpNOmuaVTE0ejL0+RheiHl7L6FlzcMuYHL517etNsxSAnkoh2Bz2rwSIwOp+KcteNinNucI+Ir23wREIY5UjC0oh6koOuZKai2Bb1u9e2VfUcpxcwkKJB5B09zGbmJhc8RG+sTuVnMRKredbhQZiKqWxm8pueD94AR4C1 YXQEfpSq bTDfEqXEpzMyAP9XrBthGhbFlNd+Ub9F16Moqpa+FVSP8/ra2tBEy1in7sKcE6OFPP4QtLD67DyGdQSsl0J4m4g2kYcptm5QirQ85186gc00auP1rGuGFqzehWHIkkG5jA2KD0OjlrglMJTCKNTTiqYkEI6Fk6ZjM/gkHlr5Pqb4N+jwW5Lw2kUq+kDyV3JqKb9+7pX/XmVZTdtHlW3IupuaoTYqubXTAOnHktnT3rf58WxUgY4Z3Q6kEeZ4QwVsg3jyA37W+0OakKjC86vB21oaRvAmKyVRAfEKaMxovWvW7xSVECdN76Icfe5zUDZmnLzkZ4MbAI3z4qbIIRINmjeZZLpgLxuGV7Hi/55xiuCZG5O8= 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 Thu, Feb 13, 2025 at 11:28=E2=80=AFAM Kees Cook wrote: > > > > On February 13, 2025 6:14:00 AM PST, Jeff Xu wrote: > >On Wed, Feb 12, 2025 at 5:04=E2=80=AFAM Thomas Wei=C3=9Fschuh > > wrote: > >> > >> On Wed, Feb 12, 2025 at 03:21:50AM +0000, jeffxu@chromium.org wrote: > >> > From: Jeff Xu > >> > > >> > Add code to detect if the vdso is memory sealed, skip the test > >> > if it is. > >> > > >> > Signed-off-by: Jeff Xu > >> > --- > >> > .../testing/selftests/x86/test_mremap_vdso.c | 38 ++++++++++++++++= +++ > >> > 1 file changed, 38 insertions(+) > >> > > >> > diff --git a/tools/testing/selftests/x86/test_mremap_vdso.c b/tools/= testing/selftests/x86/test_mremap_vdso.c > >> > index d53959e03593..c68077c56b22 100644 > >> > --- a/tools/testing/selftests/x86/test_mremap_vdso.c > >> > +++ b/tools/testing/selftests/x86/test_mremap_vdso.c > >> > @@ -14,6 +14,7 @@ > >> > #include > >> > #include > >> > #include > >> > +#include > >> > > >> > #include > >> > #include > >> > @@ -55,13 +56,50 @@ static int try_to_remap(void *vdso_addr, unsigne= d long size) > >> > > >> > } > >> > > >> > +#define VDSO_NAME "[vdso]" > >> > +#define VMFLAGS "VmFlags:" > >> > +#define MSEAL_FLAGS "sl" > >> > +#define MAX_LINE_LEN 512 > >> > + > >> > +bool vdso_sealed(FILE *maps) > >> > +{ > >> > + char line[MAX_LINE_LEN]; > >> > + bool has_vdso =3D false; > >> > + > >> > + while (fgets(line, sizeof(line), maps)) { > >> > + if (strstr(line, VDSO_NAME)) > >> > + has_vdso =3D true; > >> > + > >> > + if (has_vdso && !strncmp(line, VMFLAGS, strlen(VMFLAGS= ))) { > >> > + if (strstr(line, MSEAL_FLAGS)) > >> > + return true; > >> > + > >> > + return false; > >> > >> This only tests that any mapping after the vdso is sealed. > > > >The code above begins by searching for the "[vdso]" string, then looks > >for the first line that starts with "VmFlags:", and looks for the "sl" > >substring within that line. We're assuming the format of smaps won't > >change from release to release. > > Oh, I missed this in my reviews: nothing _resets_ has_vdso to false, so i= f any other mapping follows vdso that happens to be sealed, this will retur= n true... > It won't return the next mapping's sealing flag. After finding the "[vdso]", if the next line that contains VMFLAGS doesn't have the "sl" flag, the function returns false immediately. > > > >> There is a real parser for /proc/self/smaps in > >> tools/testing/selftests/mm/vm_util.[ch], see check_vmflag_io(). > >> > >This test is in selftest/x86, which makes it hard to include the > >vm_util from selftest/mm, if that's what you're asking. > > Hm, we have done these kinds of inter-tests dependencies before. (E.g. se= ccomp includes stuff from the clone tests.) I think it should be possible i= f it can just be a header include. Linking across tests would be more frust= rating. > I can switch to vm_util, I will need to add a new parsing function in vm_util, the existing __get_smap_entry() only searches for vm's starting address, not name. Thanks -Jeff > -Kees > > -- > Kees Cook