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 67DA4D637AE for ; Wed, 13 Nov 2024 20:40:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D1F7B6B0096; Wed, 13 Nov 2024 15:40:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CCEDE6B0098; Wed, 13 Nov 2024 15:40:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B969B6B0099; Wed, 13 Nov 2024 15:40:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 9B0DB6B0096 for ; Wed, 13 Nov 2024 15:40:19 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4BD981A0D6A for ; Wed, 13 Nov 2024 20:40:19 +0000 (UTC) X-FDA: 82782238098.22.A32A233 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by imf05.hostedemail.com (Postfix) with ESMTP id 9F818100003 for ; Wed, 13 Nov 2024 20:38:55 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=j+TRb1jc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731530240; 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=4Obijmw8/sQW0F0LwFn0X5RCh3HGTWixqBW+9CSoAPQ=; b=YydnPCG7AaiC/o+reBRyt75aZ6ghKohPYtuPMEfuHif2ykBE3Lm9CQbl42iWV1s/u1l87w 5rjDu8ePnT6aSiL7aLZayYA+hSMIJnjeC8Ss3kdStK4Xs9zvQ5v1i0Dkfoh7P2kD5+Rv1m Awv/8SjqAlEvSmHbk+1XGkDS6OY57eY= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=j+TRb1jc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731530240; a=rsa-sha256; cv=none; b=VADHREqvDydl447OoO+8TRAF4cx7DHaQiwLfpK6LFEJ0aUWjzZgnVgCAaS7aDAMl7FcJMZ 3Z2ICudW/zKudFC2awbReuzSUYI11KayG2qwfvGtBl44N4oDcpabt/DUo4czCQWqA3JpIC eXALSgBtGTI+/flcblWBuTmUu4IIwXM= Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-2e9ff76facaso61241a91.0 for ; Wed, 13 Nov 2024 12:40:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731530416; x=1732135216; 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=4Obijmw8/sQW0F0LwFn0X5RCh3HGTWixqBW+9CSoAPQ=; b=j+TRb1jcMMdkqnQNfZOHAJ+Z3N7qW5mwLnKcfAH6K0JVhYhx9L3kEGHx40LSRWmV6R kpXZoUlfLu+yny0G4/amBFM9fn0WUTrZXoUTnasb4li3vI5GFLf4KpiaxuniK0qX99L4 8KTYfTR1D4Q48aEENCsA7CuitrvwN1WjAsB5kkWbSiyUirZ7uMaLc7hE5+ohnUdc8Ap7 MkPUUzQZfPZ8gnfYLtR0Tbc8AqX88SBNaSBgFb0FZYZAM5pEvRHwC8QcguDAUyRwd5n4 Qf7P9NqRqBv2hTCKup+jaRu1MhdHM5F+YMAzBy6G05J1yLtp2Jtr9qlRUAwv0xPjyX1h V06g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731530416; x=1732135216; 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=4Obijmw8/sQW0F0LwFn0X5RCh3HGTWixqBW+9CSoAPQ=; b=tjITioms2xAx8cbhkH6sbGL9D2ox0CsAYeElhUVekTYUZT2FUu8TdZVNxpbOtq5yFB ZlZU8BbkNmylnnXG3oWrV9BFR1xL9LrNaoTYylK9UDcRwaoR4Z6hcTG1w6cEIHy5k+rc Eenm71tCNs1GY0co4T69W3SuflwQkswWwxB2c6WURDqll9FSSVCbGiHYn0mq2TXqTcuZ xWFhc20eJ1My0hmlxB5SH6wip9j0uYlNEADmLgzzso4l28EI0BKCdnYOm0Bwj+kLTZ/h rFrRzF46ugbZbeHjixWWRPozygc/GprSpPDfIs8iHSjIIiDk2hhPC5YYl7AlKoZjYTMH FXFg== X-Forwarded-Encrypted: i=1; AJvYcCULhPMNbz8ww5ccxIpArzC38gHSZVkOVeTBFMsY2LTqIjeA1gdbnwVksMstGKTNxOX4zfifFHKe3A==@kvack.org X-Gm-Message-State: AOJu0YyXGJfiCJQclJVGsTCpOZafMYdZOuQ3tNt41LKUtRb3cZvKOK8v kGkKBNFskOwg+jIEXYo0UWFwnyBiKv0smggXKhlaAQbIMCFgOVUxTupSn0W5J8pC48JNzxGZmVw MTzOWRb3CpiQNepeuizhtco9OwUY= X-Google-Smtp-Source: AGHT+IHrMSAIkTQCww/TnHPam5K1n+l8xp8FTp7wCo7N3VUnZCda4EiJw8m1pHQSBXMEed01p7ZCqNpVJ8Dmb1Vluos= X-Received: by 2002:a17:90b:1a8c:b0:2d8:85fc:464c with SMTP id 98e67ed59e1d1-2e9fe6a2c12mr1143573a91.11.1731530415982; Wed, 13 Nov 2024 12:40:15 -0800 (PST) MIME-Version: 1.0 References: <20240829174232.3133883-1-andrii@kernel.org> <20240829174232.3133883-10-andrii@kernel.org> <20241111055146.GA1458936@google.com> <20241112012941.GC1458936@google.com> In-Reply-To: <20241112012941.GC1458936@google.com> From: Andrii Nakryiko Date: Wed, 13 Nov 2024 12:40:03 -0800 Message-ID: Subject: Re: [PATCH v7 bpf-next 09/10] bpf: wire up sleepable bpf_get_stack() and bpf_get_task_stack() helpers To: Sergey Senozhatsky 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, jannh@google.com, linux-fsdevel@vger.kernel.org, willy@infradead.org, Eduard Zingerman Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9F818100003 X-Stat-Signature: x73rrk1sy3mj8o87tzgj3u5ckqn6e9y9 X-Rspam-User: X-HE-Tag: 1731530335-594806 X-HE-Meta: U2FsdGVkX1/pztZLAMAU1AbCM0iu8uwxrgrINo+5ti3x560A8N1Sy2YA800UnL4vhVTCk8QWaONHh5kYX/e4C6NPTGUT49Ft9lKP7OtVICP0m7r53GcwoPcTDsDxlOngfFvaTFA03aqLHDDXhUMtgxbu56UfSYgtkHIkQhVHSy87tUXjDb5I2pQu7fwfvcW6MFIec0EPiS8593diQKqNWhWvIdDIf2RA1c6dmVSIMVRjWyshUT9MH5nqP6Fjma5SFSMAtTXF2hq7qF8+sP5zZdY2vzjAxaxp7h61GoPNSV3mGGRKwTJ0at71e37VqKKcxRCsNkBcQ2c8ssTZqye1Lg7yK3g9tqDQJXKj7ynZgEAJaNsNDpShiK06kR1M4bi5iTjeQrtq39Q7A/PzeWKqsnwE9Z4hcNMrDPrBJLnyRIUOj1huhvu3+C+U+ctvNVSQCzO1ThBYu1fYj8PJfSmw8iGdrQgABj6aT4ArjDWjYadHCtYd42srJ9vcM2iD9pYKtEcBj+fCaIjHSuUNa7JTxbVN6fMVZ0UvbUvhq/8ZoUlZAcIazr23TbA3E3uJI5nLp9vnFfHXfWBbq9g8LbahkkKUgZZzAJYU/S6MmyAAXxVOmazbXa7LrVfbINAQ+6j6aWsY4DAJcTkW6VxbLZSW/tEfpIkLe7f/lX4A2DKTB/tYpXyTMtSFhDHgqDhaU4XbGH1WFRBYxSOftjH2V2AF0dXw3wYp30mEZrLFm14fEUM7EM0WfZZF/8IU63O84djmbmqUwdwXeR1jGTJW4hZax4v9NPsp3KufGENOuiyusCtER16yMMcCTBwWRKFrJ9+NBGzthLz5o7zBo825+XNt+rJuulz1qmK7BlphRTDCyRFWA5vysZthmPF3IGAaOJ2FGkYCXVVWslmne3D81GxN8kBLkhT+rG2X/R7LcxNWQZ7g1I42m1M7wQwmkshP9if3H1vQ/21kfQ3Fu9vjkRe poOStY0L 6eHFbQELKdZl178GIZwaKruV2hI6M4Em985TqKx2qI4Mg0q0ROvQ6FJghNIcbXfYFkFA0G3UbxgnRAAtvyV/l419rZK4WHdEnqQISZq91t0Mr4UfiAfsbLjIfx5SF7/JuSLHuJYZc3oUW6oC5RvMfU7brw/xewQeMNgn8YTYkaej3SgX5dr7eFGZrLOlmQurvP3bee9U9JA5dCa03WvVIMFlOq3m4+nyCaGW/kT4Vj3yL5ZGXKRQ94aPt+j2SMhdoZM5EYUSX6dWkL1Bl2w7Q/80EyqMypKWbc9MxGm756kH8lXGZWTKwmwWF1NdsPkdQErfZ4yDtCEB6x7NkheGq0die0LImW35gOcus8axY0+g5U3D3FF+53ka5Lo30c+MHM5cgLX6NxdzxdeoM2aNYcvkGN7hi+05VvcfcPTjverIpNGc= 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 Mon, Nov 11, 2024 at 5:29=E2=80=AFPM Sergey Senozhatsky wrote: > > On (24/11/11 09:49), Andrii Nakryiko wrote: > > > On (24/08/29 10:42), Andrii Nakryiko wrote: > > > > Now that build ID related internals in kernel/bpf/stackmap.c can be= used > > > > both in sleepable and non-sleepable contexts, we need to add additi= onal > > > > rcu_read_lock()/rcu_read_unlock() protection around fetching > > > > perf_callchain_entry, but with the refactoring in previous commit i= t's > > > > now pretty straightforward. We make sure to do rcu_read_unlock (in > > > > sleepable mode only) right before stack_map_get_build_id_offset() c= all > > > > which can sleep. By that time we don't have any more use of > > > > perf_callchain_entry. > > > > > > Shouldn't this be backported to stable kernels? It seems that those = still > > > do suspicious-RCU deference: > > > > > > __bpf_get_stack() > > > get_perf_callchain() > > > perf_callchain_user() > > > perf_get_guest_cbs() > > > > Do you see this issue in practice or have some repro? > > __bpf_get_stack() shouldn't be callable from sleepable BPF programs > > until my patch set, so I don't think there is anything to be > > backported. But maybe I'm missing something, which is why I'm asking > > whether this is a conclusion drawn from source code analysis, or there > > was actually a report somewhere. > > I see a syzkaller report (internal) which triggers this call chain > and RCU-usage error. Not sure how practical that is, but syzkaller > was able to hit it (the report I'm looking at is against 5.15, but > __bpf_get_stack()-wise I don't see any differences between 5.15, > 6.1 and 6.6) Hmm.. thinking about this some more, I suspect we do allow bpf_get_stack() and bpf_get_stackid() from sleepable uprobes, so yeah, it's possible to run into this. But for backporting this into older kernels, we'd need to prepare a separate patch that would fix the RCU issue, but wouldn't add sleepable build ID parts.