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 8862CC3DA49 for ; Thu, 25 Jul 2024 12:04:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 18A3A6B008C; Thu, 25 Jul 2024 08:04:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 13A306B0092; Thu, 25 Jul 2024 08:04:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F1C926B0093; Thu, 25 Jul 2024 08:04:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D15D46B008C for ; Thu, 25 Jul 2024 08:04:08 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 524D8161083 for ; Thu, 25 Jul 2024 12:04:08 +0000 (UTC) X-FDA: 82378141776.06.FB990D7 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf05.hostedemail.com (Postfix) with ESMTP id 5F82310002F for ; Thu, 25 Jul 2024 12:04:06 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TRpFAj2j; spf=pass (imf05.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=olsajiri@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=1721909022; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4ItT9vvz1AiBsJ5TlkftiW0p8e5pTQ5kho3YRaHTmhk=; b=Vr4VjPG+XQNfUgcwc0Ra2x65hjDJ401xGM/xLe2CHjNb6PZhNW7iXtZGc7mB464Jmk+spz JRpWlakd5g68kEA8fuFel65gO3jRh2dOGBnvCZ6BmpcmdkfR2/QYkJovCdbvLhNmjPLiL2 1Agrb1MgdVpKOgKrBqWHh0R8oGzTnyo= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TRpFAj2j; spf=pass (imf05.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721909022; a=rsa-sha256; cv=none; b=KD5il9r0LDW5FPmgSsU1vghBytqEIJYIOXlmgGVq/IJxrRXOoKrI5tJOCQaBi9PRua3j3h TtEbzNvsrq+I2DViJ6qQ8pzZby8eP9dcxaXQMQ4jU7SxqTNzFeWvr9elPGKccwB4rexsiD QpK4GL+mxJ2/c01onPdza2Pmr4lsR8Y= Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-427d2cc1c4eso6037395e9.1 for ; Thu, 25 Jul 2024 05:04:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721909045; x=1722513845; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=4ItT9vvz1AiBsJ5TlkftiW0p8e5pTQ5kho3YRaHTmhk=; b=TRpFAj2j7Bq9eZhSQ1PzJZaFrLdgO2x+0CN8xGljZn+09jPZ8+3joQj7IKBlcjjW21 7gg+sXwFNZJFd64i0L4uz5wkDUz1OSz2Xc9JbLfebjCVeRsAkpXoXapIUtoMGqm+015G +4uUDwMI1maE4TD1uoa+rJRfn3zs5+U7TGmQV60oqqfvRFcWFgY+azcxzU53zlY2N8eP G+cVz0PAPshApEfXCDEnN2HSx1+kH5SIPueqSMdr3tcYv8cZFLFN+5AMFaA87VVd6orm +LBCf4qBYogtWKKP9FrOuR7vvFC+JJ1B5cGPFvpmw1wkB2tspgAXHXu9zo0UM4d8fZE6 SjWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721909045; x=1722513845; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4ItT9vvz1AiBsJ5TlkftiW0p8e5pTQ5kho3YRaHTmhk=; b=EzFNamtj7hyWrq/A2JuZek0o8F6/M1CHwvCtPF0HBjNHefiMeOHLPwMgR1dudA1Twd bSvySunJLAHvDZ7oD9YPkhy9RZBrKn+wzHOjgEiFQTEUDcgdi7Rgc3uPFaK0T+h2ezZM nmdR2gU+pUEXnt2Aoiw5FULgaKN4YZtrVrl8qysW3agGiqVUn3zn/u3F6lWtKAxShLoK qLT5Fvy3nSZT658D6nrn491e7smKR6I/KRXloYMYd3xaMhYjd3NysCPNpmLpvDjOzeE/ yiAPBy1ZiMC0ZcV7FyqZyoccPxcgRyzTt6cQNf9Ifucx6UY17t/O0Xfrud3wpWQedjc8 HahA== X-Forwarded-Encrypted: i=1; AJvYcCXo+dc9QBX9MdjT3KMJwI0pr9eX8Yp+FEyERc5NWLjNwN5llYf3DIZVbhA8/UhGkxraII7tG6S+e1+4ifUHvQc6l3c= X-Gm-Message-State: AOJu0YxcpD2YXKhK8Cko4U30I6V8yNKmq5w8K/eIHtV831flkNxhu7T3 vTaEQOcY/nLpLx9S8AwwLWpz9P8KsVwyiPtp2w3My/Kdeq08kdI5 X-Google-Smtp-Source: AGHT+IFcOQCMEQUr6tdOgh0fd5ufuTc5zBVwwbA4ajz51pyLNix1qjPvZoh/3yTEZ1i30+cxt4eksA== X-Received: by 2002:a05:600c:154f:b0:426:8ee5:5d24 with SMTP id 5b1f17b1804b1-42805711f73mr15861685e9.20.1721909044846; Thu, 25 Jul 2024 05:04:04 -0700 (PDT) Received: from krava (2001-1ae9-1c2-4c00-726e-c10f-8833-ff22.ip6.tmcz.cz. [2001:1ae9:1c2:4c00:726e:c10f:8833:ff22]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42805730e52sm31290565e9.4.2024.07.25.05.04.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jul 2024 05:04:04 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 25 Jul 2024 14:04:02 +0200 To: Andrii Nakryiko Cc: 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 Subject: Re: [PATCH v2 bpf-next 10/10] selftests/bpf: add build ID tests Message-ID: References: <20240724225210.545423-1-andrii@kernel.org> <20240724225210.545423-11-andrii@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724225210.545423-11-andrii@kernel.org> X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 5F82310002F X-Stat-Signature: 1kgz4xhacst1g1bsrco8qppbh45b33co X-HE-Tag: 1721909046-882232 X-HE-Meta: U2FsdGVkX1/N4u1dLhMtpfqVmnVEJXUOOm1eijr4QtngCWkrnuQPRt+mOEMQfVnUVxt+IsH/gCMeaya9cOLiFPPMVZffLMJebD1iQDln2UsPC+xvr4dmo6sgIKLRJ5Gy+Bs78GwaNx3xYuMpW9+vodxw4yUNoo2GC/OLV3DD6mKS2VzVgZ/3baei9vBohJKLNh4C9SyRRQ1wPcFBmOHCs0PDy5K1VsBuBGhq3B/JMozU3vkG/c2Be/7gCVa6b/r5EqYZCrWhVQIdyk/Su0LrFXJKBWSISh20HGiDKSQ3cr3Cp6dtH/Okh0bzX50/FHCUxFW2C/PMDkoJC3hQ+xSCin1rwoSSJjnoVFA/gGlnp8ncfUUCo7o06TcNcsMy/N8H1oNJ0a6aHzSSzFay1RIMocGG10YMmj2bLOBJJ7v+AI1cjLCiVLM4RLItp6GO/ctPrUGf7ysa2rkwk78VyA7sDWgynT/8NPnN8IYgSmp+1CC+LSUILGQvkcSDYbZPkYffOvCkmZKTQNtm1xceFCZ9RN/zfgkfR/wH3gZA7KKVWd8hAYExRPWqeqr20z9W26OUQpnH8Vg46IxjZNimg5vx/TioVSmKrCH1ReCSpZkgBTza87nikGx/Ze1Cu0WcjQxEKAtg8P6fKMdd0VM3gzNhKqGipmYbB0JowzYY42gd5hrpjelfLI8n2rpFDc5L5bVFgDo6Ca8VJ4gDqU2ltxlJW8u4a6Zn9dIJUru7b1YmrcySSewe6/gboEBglpQxGl0VFf7JBW3NxGGVbjJNjqcbHk/6kyxTzUfXVbyBWpPJUm3FdHpRe1D2GUk1LdL33rmtMudBXTvdyM7AwxfCcUy1NiGo5p00TH5foN6Drc2xzl67hHSsDE+wkr7iyIHmu3jWzD4TxuCO0Y1t5SViymaHkvp4DotVLuwfk73ELaW6zK87Vs1l11B4/ByPe89o5wix7UGqlQhQreW4fecknil aOEU58XO aXV0Ykmm6AjQxkA+E26f7/Xd3yO4uK1ESfISWZ7gARTr3HneBbhMwP+bapgDURK2VvLlJFxUX96iGhLUvg+xVDsK9LRf4U3Rs9q5L/i209NSMtOnGtG3nUdHs1eiPZwUUSNUAGg/v0RX8/CIxqSQL2RtgFV9m+bYT3P5xSXgCdOgB37TBfy+NA+CANHymeTMgas77f/ot41hTgZ6s6td7ac+2SsuEZwQGjkSo8/POv9zCSc22uO+vo2PfOEUvAr1ktxkuCr49Ndc354GhL3lipxKdwBNlDuXtqZSjyeghEEAEKsFky9+vZHHDzElpFTEO/SR1Eh5pDC/B5jHzU0WKSVCeezDoLAIl53pv 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, 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 = sysconf(_SC_PAGESIZE); > + void *addr; > + > + /* page-align build ID start */ > + addr = (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); > + 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() ? jirka > + > + (void)uprobe(); > + > + return 0; > +} > + > int main(int argc, char **argv) > { > if (argc != 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/testing/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 > +{ > + . = ALIGN(4096); > + .note.gnu.build-id : { *(.note.gnu.build-id) } > + . = ALIGN(4096); > +} > +INSERT AFTER .text; > + > +build_id_start = ADDR(.note.gnu.build-id); > +build_id_end = ADDR(.note.gnu.build-id) + SIZEOF(.note.gnu.build-id); > + > -- > 2.43.0 > >