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 1D9BAC5320E for ; Thu, 22 Aug 2024 22:30:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 961798006B; Thu, 22 Aug 2024 18:30:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 911288005A; Thu, 22 Aug 2024 18:30:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D94E8006B; Thu, 22 Aug 2024 18:30:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5D75A8005A for ; Thu, 22 Aug 2024 18:30:44 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0C9E71206D0 for ; Thu, 22 Aug 2024 22:30:44 +0000 (UTC) X-FDA: 82481327208.18.2DFB5F5 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf22.hostedemail.com (Postfix) with ESMTP id 296E3C0016 for ; Thu, 22 Aug 2024 22:30:40 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Eh299tjI; spf=pass (imf22.hostedemail.com: domain of eddyz87@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=eddyz87@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724365800; a=rsa-sha256; cv=none; b=xW6MdXGgogxxlZyDsFWn1MeKo1YZKVm0Zf4nmxVGCCvDjviognLfHUoXHUwvR+y+VVN7dn N69cxCDnDvGjRGZncUU3p5PBl9UTn+qtOEJybs4COdSOjs7if1iNf1+nKES4xLQOeX2HN4 fcBwCJtmnaSIqcYHd6Y+te+HBb5yknc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Eh299tjI; spf=pass (imf22.hostedemail.com: domain of eddyz87@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=eddyz87@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=1724365800; 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=sW/t0sobKJ6gt+Jt+LqL+vSC0cTiKO3beFAue2WjAE8=; b=PHX5KCDY5g+r4kMAxAFabRLgEofLEmE92yEpEmzH1pxSlv/+3soJux7//fR33E2jSYGscH 3rEdGhNdAw9MJMC1cLE+TfAQh2umJ3zX1FqnMG1ock8Hl/zhHKc6gCkV7b96PdKUG+XtmQ /Xt1qCEZ0NAV8XDT9SA35hsufzq+3mA= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1fc611a0f8cso11734895ad.2 for ; Thu, 22 Aug 2024 15:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724365840; x=1724970640; darn=kvack.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=sW/t0sobKJ6gt+Jt+LqL+vSC0cTiKO3beFAue2WjAE8=; b=Eh299tjIt/11HLKlaElty3CmeNJ73TW1sbU4ROIthCTu2LoS1r0TyEKufvV1vYLcBR 6P2WgeEXUOWD8IVPljs2SeSBE8EF+UTiDp7g1/NdkVo4qY3dTpgyFxxn4GB98s15bHMi Rr2ww0XKZ33Bp7YdL8Bk8TCXXiclAknCxrEduvjdCmOvVsb1IQ/vqLPooLH8JZJqDmkZ f6ClwmOFr3Pgp6whnSuRC7nZRo9/OlVJ16Dk1wyP+FeT+W63b7fxHS3LnulKu801ga5J JdJJElXF1s23OPxa+3zdhtIVQyMHil9A1lUCu8wsqwEpynxzux3x5ooB9gul217+Iegi rVLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724365840; x=1724970640; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sW/t0sobKJ6gt+Jt+LqL+vSC0cTiKO3beFAue2WjAE8=; b=DYRQXWPhoGYcf8dsyHmT+3Pig4yrH2tMQ3MsAY0gUXSRSsUns4kndxhrlBL2E6O5CB Apai6VikNtRaT7EruacN0vT9XO1Dwv4lLqw871g8b49jFqg7js3VKyNihe9MJqcsC2g7 uBFt0ktL8qDYhTV/x1H64nUXklFBTYzsH5/b3J6TIjuuOf1d5UXH3cioxlI+HTsI/Q+t EqfoaeEkNJIq8yCuLW0XgZ3nad6SkujO1eJkUxfy3GT4MsX70tGrJ54y9PCipVO6F13F iO5wTkSQZkxz2V0+Yb8l9y85TZJNq87aBLJvcNj/08sSHuZ18Qi+5IV9iwPfmbbmg44U Qn2w== X-Gm-Message-State: AOJu0Ywlr+kKsWcoVtuim2VfKtAJIKx1uIF2FgIFMN3hyl4HjI80/pwd yiCdIP90FyleE60r29Bry5uvOkEUrXDeOQjyPzqHColGZMd+IOPe X-Google-Smtp-Source: AGHT+IE9KnJ32ikDQZSBjuoml9SWjYbQjceBHdqibR5PrCqPiZtwxBCF0B6ev+f9bqHmk6Ze9wfuuQ== X-Received: by 2002:a17:90a:3484:b0:2d3:cd5c:15bb with SMTP id 98e67ed59e1d1-2d646c04128mr166380a91.25.1724365839691; Thu, 22 Aug 2024 15:30:39 -0700 (PDT) Received: from [192.168.0.235] ([38.34.87.7]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2d5ebbb17d9sm4735863a91.43.2024.08.22.15.30.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Aug 2024 15:30:39 -0700 (PDT) Message-ID: Subject: Re: [PATCH v6 bpf-next 10/10] selftests/bpf: add build ID tests From: Eduard Zingerman To: Andrii Nakryiko , bpf@vger.kernel.org Cc: 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, jannh@google.com, linux-fsdevel@vger.kernel.org, willy@infradead.org Date: Thu, 22 Aug 2024 15:30:34 -0700 In-Reply-To: <20240814185417.1171430-11-andrii@kernel.org> References: <20240814185417.1171430-1-andrii@kernel.org> <20240814185417.1171430-11-andrii@kernel.org> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) MIME-Version: 1.0 X-Stat-Signature: 8aupn1f4o5r53bppnrf1putnjszdqmr6 X-Rspamd-Queue-Id: 296E3C0016 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1724365840-368905 X-HE-Meta: U2FsdGVkX1+G1FZkAN+bhkP3NaUgfj1450v2d1IwqfiVyLljl4Pjzx0BF0ApbGnzK+1K+IW5who5YuWqnMyP6jRyKvb8gOysbIVCHbLeAoG1matYre2dH8XhIjH8IyM9cdoKStk9UgT3Fi81itgv1hJwso52oMCDUQUUwEgC0HM1UkZChy/ALs2m8RAGmv2EoSQn8AsYMTcGkKM098wHTdYcbgtMpcqtZTdjsiCenssCrBivtRtf4yJ3gJKW+Hl63x1aibs0kkt/mvAmmZjA2PBFpEf5gUHG8oF/9RQcnCmUuhrhXsmP8Cv550lzl3pxfPuKXIBVj8sWo64oO8VmYDN2X+OWZosrI+zDBxCnbCJrzLjIRJtbuiuKE5Xpmg5ZFeLFIKkmb+KFDI1IRa7gENMJAfsC9vNiovQGpfoh1bLSday1wM+814BKMyAn8YiUcN4RCtPxItnfnNxNkeVLX+3Mf7WoxK0u7X7wXYpBqdZpdcAp0E0yK9tonLRzvEqmpNjRBbYZfUiSG1d34jCB3u1Iea9qOlJIEGf96Z7dsrF2mSmcRQqcG6LPXLhSg8bg6rUW3wR5pQz0GYaDnT7+Y5EVQmgq+Sa+BG1iXTgFtNN4X8cJPQmJU0couifiUdt74f6R0l73YDWP+c4FeOZQkADraPfb/SPMdBXTCckCtOfBLirmhEAPeCIFXvKAR2PC5+hdyMCG4rJ6ljQ+EF8uEN5FkelvJA3VgVy0qggd02oxvZQHaMasqfXLTOqdsb6Ef/sAOj7DhZAHXPSIjG4kgiydl5i19ljCmvB2KBhQNZ2Ug6ekAYKkF9rzDTCJYtGw1cxuuWIm/heLxlcXG+In4Z4JJv30UTDYyu0dTBk5IDU6/BwfCjm9EU9n2qSXf6GX2CEmQqhonOXev9JBJoVxop5iDQTQwu6sEf/bU7Cq8bFr6uUhhYq7WawL4ZJZhaFJ3MVCwgbNP639kuPzA71 5GbxxAV8 0t3eT2uIpI4M3UkTRw1DfZ4FdjRb8aR4a3ssJhCGhnKWXplscHoJ7tp/9dMvJ0kq4O2xDZACABt2xlKIT1dWW9OpxFgmM7gbvZ4swH9n+CH5jAfrXuGKgy9uSeFVLaegllY+Edt869iGxy/esT4gk+OK1VHPBmFxpW98WnFMvYwE3RRRvP4tA5ptZTPZRmgF1gg8r6Cgo9pGiOEEfQIVEG4i8m0WX9A4rFu5oIVBUr/UPY8jlLNkeXRVjwcnu1AhtNuu4ibt655wK6YgC11bVotgLCCbHqcSbVCVlcZj6ASIyK5CrUANTDmyvjEokIkz79UJsNTzhBedR0S8ZulyCWX80j8N6ef3cEtp4WTsQ0Ctaw43U4HK93gDQO+nlUgMeO/YvqUku7XwSf9Ysmgte9X6OXBMH/q7dWn+RmAQShqWS/xE= 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 Wed, 2024-08-14 at 11:54 -0700, Andrii Nakryiko wrote: > Add a new set of tests validating behavior of capturing stack traces > with build ID. We extend uprobe_multi target binary with ability to > trigger uprobe (so that we can capture stack traces from it), but also > we allow to force build ID data to be either resident or non-resident in > memory (see also a comment about quirks of MADV_PAGEOUT). >=20 > That way we can validate that in non-sleepable context we won't get > build ID (as expected), but with sleepable uprobes we will get that > build ID regardless of it being physically present in memory. >=20 > Also, we add a small add-on linker script which reorders > .note.gnu.build-id section and puts it after (big) .text section, > putting build ID data outside of the very first page of ELF file. This > will test all the relaxations we did in build ID parsing logic in kernel > thanks to freader abstraction. >=20 > Signed-off-by: Andrii Nakryiko > --- Acked-by: Eduard Zingerman [...] > diff --git a/tools/testing/selftests/bpf/uprobe_multi.c b/tools/testing/s= elftests/bpf/uprobe_multi.c > index 7ffa563ffeba..c7828b13e5ff 100644 > --- a/tools/testing/selftests/bpf/uprobe_multi.c > +++ b/tools/testing/selftests/bpf/uprobe_multi.c [...] > +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 that > + * memory range is mapped into current process, so we unconditionally > + * do MADV_POPULATE_READ, and then MADV_PAGEOUT, if necessary > + */ > + madvise(addr, page_sz, MADV_POPULATE_READ); Nit: check error code? > + if (!build_id_resident) > + madvise(addr, page_sz, MADV_PAGEOUT); > + > + (void)uprobe(); > + > + return 0; > +} > + [...] Silly question, unrelated to the patch-set itself. When I do ./test_progs -vvv -t build_id/sleepable five stack frames are printed: FRAME #00: BUILD ID =3D 46d2568fe293274105f9dad0cc73de54a176f368 OFFSET =3D= 2c4156 FRAME #01: BUILD ID =3D 46d2568fe293274105f9dad0cc73de54a176f368 OFFSET =3D= 393aef FRAME #02: BUILD ID =3D 8f53abaad945a669f2bdcd25f471d80e077568ef OFFSET =3D= 2a088 FRAME #03: BUILD ID =3D 8f53abaad945a669f2bdcd25f471d80e077568ef OFFSET =3D= 2a14b FRAME #04: BUILD ID =3D 46d2568fe293274105f9dad0cc73de54a176f368 OFFSET =3D= 2c4095 The ...6f368 is build-id of the uprobe_multi. How do I check where ...568ef comes from? Also, why are there 5 frames when nesting level for uprobe() is 3?