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 1C148C3DA49 for ; Thu, 25 Jul 2024 20:01:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75F566B0088; Thu, 25 Jul 2024 16:01:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E8B76B0089; Thu, 25 Jul 2024 16:01:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AFD66B008C; Thu, 25 Jul 2024 16:01:32 -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 3B23D6B0088 for ; Thu, 25 Jul 2024 16:01:32 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id AFCE41A1372 for ; Thu, 25 Jul 2024 20:01:31 +0000 (UTC) X-FDA: 82379344782.11.57753F3 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by imf30.hostedemail.com (Postfix) with ESMTP id D301C80005 for ; Thu, 25 Jul 2024 20:01:29 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TTm2jLOW; spf=pass (imf30.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=andrii.nakryiko@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=1721937641; 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=6spBI2YWO7TqbtcRd25fAc7U2Mta+DWgPwHb5l+trCo=; b=7blEZJnmVP6uwHO2DoDYT2fdtSVkiw3Cc0ii6QB1xEpF+ElPqBncVCU4oDwgkj5P8rXzwi tbzlMRACnXXj87p6Xi5MhPWAqjF876FkwITl+Z1sGxMKttevGqFrgpRXjm1pXsDdpYoNuk jEn8L3bajHuX3vHp1Bo45OVYXTVJQG8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721937641; a=rsa-sha256; cv=none; b=jywwXPbJC4wtrMh2VkGB7c1pySJfWbq4F9F+teDiVerLZGKCEKMGFLbW/5gf+2c74iPTid kH/sKr+nu/wq2WCd4jyD7wJiOIxlMOF6XJGwI4DhrERQCkbgiZ8Owwf7mPYjxIIcG06i3F 4HFcX16pfHOGrCcinHzsdgxX4/xWnr4= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TTm2jLOW; spf=pass (imf30.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-2cb64529a36so194252a91.0 for ; Thu, 25 Jul 2024 13:01:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721937688; x=1722542488; 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=6spBI2YWO7TqbtcRd25fAc7U2Mta+DWgPwHb5l+trCo=; b=TTm2jLOWtWFG1AkFyyvH4xrCCJX4XXAVCbGzZZldBfGwDOrRF08QnfT4AuCq0YXVUi raKxTiKBIJARWvllv7BL/VWrbXiBgzKu+9h1kRlh36NoC9S6nqeoBKn5rkXmdIiEEW3H Vhi7AcapZanPaOxSoTjuo7YURMoId6nC1iAx4F3rk1dgPGFlJY88TUT9vZKfey42b1Fs IGBhmh3FVL6V1IDlDicPIbfvTp1QiALyauRlOMX/NIVz0EEzvDe1p9zo8JPKOJdOqaJs u1VLVZLarEKMU19XkHeKX2n00yqfNONG6qIbNlKRMyv04nSBV0/SHh+2rjeOhNYEEqjI dYWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721937688; x=1722542488; 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=6spBI2YWO7TqbtcRd25fAc7U2Mta+DWgPwHb5l+trCo=; b=OM7inr9PRTyxKc7P7X/byKPjBRBb3JMj9xUs4mzjQHL4ECELZqQ1dZUaLAXijWUcvg uHUKU1eGApxFDGRc1deav1zejh4COjc9r3Fu1rv9Q0IVKjhkZFd+pyFavIzEuEgQEHvB 3xCvZPuGobUGOt8xn1agG5tlLXy3I58Ejn5KxO0eYXj/u1kOn0+ddpMtyJwHhCMOCe4C KdgZ1xzIh/LIPHHurLL+TxhtW7EItPtd0qCgP2Yzss84oNAeJZVv3TYPhwkJBaOexnfC g4SznafJEGVKVqJs70aL/OUEoY+rX0Zg/ZiCj77uiKnQWlI2fGiJhAZmkb623aQ9vKY4 XsVA== X-Forwarded-Encrypted: i=1; AJvYcCXj3EEzypGAVPa8HfgLkYMisHEwO+L1/lUr4vc+q8X+VV4supMV0ZzU/xlzhmUqUCu5JMlKlnT5+dYssULfqNm9A1s= X-Gm-Message-State: AOJu0Yxt6XlX6cY7/nD9pCX12Tp/kv1EF57gitdUuFRhLNeaz0ksUWkQ 1Sd8axdItOg1Yoe2NuXE8gjK1HjFUooxQKJ4sUFdRLGKtjvNN7UbP+XV7xr9/ekbe6wfSICaWZM ACHsTbm6ap+RvrSW686D19O+CujZ/x7q6 X-Google-Smtp-Source: AGHT+IFpYyTovuLxZV3rzwtXRgatwEk/smG9TLgtC67jebQTe2Ufi1GfpS0PbM3u4zPyiRdn2Dvz5SDA8CZ2Jw38WwY= X-Received: by 2002:a17:90b:1c07:b0:2c9:7a8d:43f7 with SMTP id 98e67ed59e1d1-2cf2380a7abmr4578376a91.23.1721937688387; Thu, 25 Jul 2024 13:01:28 -0700 (PDT) MIME-Version: 1.0 References: <20240724225210.545423-1-andrii@kernel.org> <20240724225210.545423-11-andrii@kernel.org> In-Reply-To: From: Andrii Nakryiko Date: Thu, 25 Jul 2024 13:01:16 -0700 Message-ID: Subject: Re: [PATCH v2 bpf-next 10/10] selftests/bpf: add build ID tests To: Jiri Olsa Cc: Andrii Nakryiko , bpf@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, adobriyan@gmail.com, shakeel.butt@linux.dev, hannes@cmpxchg.org, ak@linux.intel.com, osandov@osandov.com, song@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: D301C80005 X-Stat-Signature: jcdyf6esfjbmaqtq3zmeax89hnskubof X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1721937689-39583 X-HE-Meta: U2FsdGVkX19h6WK8FI7+yxbVXltcuwXiA1PN1fSV65jo7L0ovN+zs64mnB0YMnBHBVScgCX6H0wdwfjzeJsbM2Odq09+uNNOSmHzV2yK+co0zEjDN85rziOZqOiKuQ5zBChh3s4FM5rVt9KcaDMdv0xlXzRCIjBZHghKufd7FMFiF05qsh6d8wq7rY9wBTnpu8MrPyG61+Y3SkKXziv1FKPXsY/cIH6taAhw9RHGZcC2bBTcOOWG/beg+OTDjIdFFNbvq9aW/0XWqgbIgf6tXhQ55u8n6auFjqVWvC01QDN8RTZUb42Q5OOGv/EUomCL3U/Wobj+yctC5wPU3oEs5HFuoXlBYf3eZtZw3tA35dv7nKJFVitMcOA2sTsVPu+HKa8IZ2VRL9Z7nfOfDKzw1rhV49ePulhJ5UbeRLdlxJ/b0XpPfIE6PmRj3QVHBqoIMjZ1mwjqZVqB5q1st9YtO0pQzV006lBieLBmuBvuST5XAeMHSKSnmCv2uYkZ5kQ86ZkrPU0pjxow0uPzA3DSf/oxOtVWyBUmMcsztlKj/I6C4QqqQPTxh02QVcja2FuWB4ihTNg34qIDH9JDsHkT3mLWqWELPw+TpwdVIo6xrXc6I/OEZeizXml+yf3okVB4LHjwDcuDB0ETCrq94nECeeQ2JdFcw+eF3Cb5NoW9CBS8oerT0zrR+dKSGiZVCsmbRvAZGIvY7KQMICIf+RIgutq/0WTG1W6CwL/G5KRj6cDm9BJX/wGdlWsMbwBob+N0isWHsancvdmp+0LpKCxHsu23XqKq6mx2PguhQH/00Xwaa9MdKBvgOwy4LjR2X1d13lK+SLXvBju5Iz/ukiT2gRvZJ/sQSC6f+NhT2hnjvZ6z9eb07x4jdfdfG5pv8QDRT9LPVJnacMeMkOeGoJcevZeiAxKxlwCTk4zZxIRI0ffTvb4p3YTNpPpqWoPQ3uqinJWq6JCWlNH7LwEFvfg dAAX+ZnD hvLflRc3APIpLzelGcNloxOrO/rcJ2aCNSLUoPlSHKQGtp1LQWWMqnwFysOAlN8T9XphA6IoX2GzrlFUgevuj1UP2XbkJePq8ibE8gYB0RMNllN6z6yl18kPRrwm4R7eTweYbSP8TaIL9jiFkj0bbouVFgd3W5Gj6NnJe1hRzXxNXcPEBJ43hjVMHPjLx4BFKDm1JW5pvWhtYtVq40KAIn3SfIWoflxmvo+ymLws9sMyzWM+exzZv2/m9XwV6PVNMh7OneIGoEq0DnTZGIR/mGno3I9oMfDGAdQo+bmpjO4TiSMITSmKxllgRRBTwS5CYRg3AQtbRjki6MNJLytUBbVHaolPy4et5CwHQ 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, Jul 25, 2024 at 5:04=E2=80=AFAM Jiri Olsa wrot= e: > > On Wed, Jul 24, 2024 at 03:52:10PM -0700, Andrii Nakryiko wrote: > > SNIP > > > +extern char build_id_start[]; > > +extern char build_id_end[]; > > + > > +int __attribute__((weak)) trigger_uprobe(bool build_id_resident) > > +{ > > + int page_sz =3D sysconf(_SC_PAGESIZE); > > + void *addr; > > + > > + /* page-align build ID start */ > > + addr =3D (void *)((uintptr_t)&build_id_start & ~(page_sz - 1)); > > + > > + /* to guarantee MADV_PAGEOUT work reliably, we need to ensure tha= t > > + * memory range is mapped into current process, so we uncondition= ally > > + * do MADV_POPULATE_READ, and then MADV_PAGEOUT, if necessary > > + */ > > + madvise(addr, page_sz, MADV_POPULATE_READ); > > + if (!build_id_resident) > > + madvise(addr, page_sz, MADV_PAGEOUT); > > could this fail? should we at least print the error, > might be tricky to display that becase it's called through system() ? I don't think it should, given the correct addr and page_sz. If it fails, then some selftest that relies on it will fail. I can add printf(), though, and it will be printed in logs, I think. > > jirka > > > + > > + (void)uprobe(); > > + > > + return 0; > > +} > > + > > int main(int argc, char **argv) > > { > > if (argc !=3D 2) > > @@ -84,6 +121,10 @@ int main(int argc, char **argv) > > return bench(); > > if (!strcmp("usdt", argv[1])) > > return usdt(); > > + if (!strcmp("uprobe-paged-out", argv[1])) > > + return trigger_uprobe(false /* page-out build ID */); > > + if (!strcmp("uprobe-paged-in", argv[1])) > > + return trigger_uprobe(true /* page-in build ID */); > > > > error: > > fprintf(stderr, "usage: %s \n", argv[0]); > > diff --git a/tools/testing/selftests/bpf/uprobe_multi.ld b/tools/testin= g/selftests/bpf/uprobe_multi.ld > > new file mode 100644 > > index 000000000000..a2e94828bc8c > > --- /dev/null > > +++ b/tools/testing/selftests/bpf/uprobe_multi.ld > > @@ -0,0 +1,11 @@ > > +SECTIONS > > +{ > > + . =3D ALIGN(4096); > > + .note.gnu.build-id : { *(.note.gnu.build-id) } > > + . =3D ALIGN(4096); > > +} > > +INSERT AFTER .text; > > + > > +build_id_start =3D ADDR(.note.gnu.build-id); > > +build_id_end =3D ADDR(.note.gnu.build-id) + SIZEOF(.note.gnu.build-id)= ; > > + > > -- > > 2.43.0 > > > >