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 9AF79C3064D for ; Tue, 25 Jun 2024 17:13:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 326906B0082; Tue, 25 Jun 2024 13:13:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D7106B0092; Tue, 25 Jun 2024 13:13:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 177C76B0096; Tue, 25 Jun 2024 13:13:02 -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 EA4346B0082 for ; Tue, 25 Jun 2024 13:13:01 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 97C421C04D9 for ; Tue, 25 Jun 2024 17:13:01 +0000 (UTC) X-FDA: 82270056162.27.12753BC Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by imf08.hostedemail.com (Postfix) with ESMTP id B8F31160015 for ; Tue, 25 Jun 2024 17:12:59 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D022eMzl; spf=pass (imf08.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=alexei.starovoitov@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=1719335564; 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=BI5OFEaVYhrUkuh/u4LxK0p6IDDHPXl4NuFtwgsoCq4=; b=ycmvkKaK1ltYptgiQkwo4Gz6Gu1vKxTwKQ3LZkag/NC84cx8CnvPqG2DnRuGyMDEltZdT3 Rtez0AtAZQxYBvIf02V6kSd5Yo3m2bvnPRn/ksZzziEhbzAOJTbOMm3Pc0Q68B5HKmYKV6 U8TU82lGXfDzq9A7Yt6LV7ez0FO/6+s= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719335564; a=rsa-sha256; cv=none; b=yooDpCsAP26n7U1DqhdrprfCho2GTIRz4/SC29uIEN5q5HmNwJh9EZeZrQwrFZzDpitFIy GHwUmKftykY1BWQxKCBDSi8ZcXBInQQnkore1RTgWx4DeHowcnVwCmfEOnv1StTJw5qMFJ ryDUC5lRELZpWXU4LKZu5Qrr0unuhvM= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D022eMzl; spf=pass (imf08.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-36703b0f914so575246f8f.0 for ; Tue, 25 Jun 2024 10:12:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719335578; x=1719940378; 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=BI5OFEaVYhrUkuh/u4LxK0p6IDDHPXl4NuFtwgsoCq4=; b=D022eMzlvUpc/ys5p878et/7+cC3FIE0kpqOMVimnQW2YxdNjO80yIE7kuZUXw6YkF qA69zcqKfu1ghUxGmtLUsK6A6V5/hm3QNAcIXBdHYalFf0//hrMqbRQn5r2d343Ii4UE jZJTaK5w2waD9K94ISZ5lsx6E8z9vQWhNw4XUYvW5ttut5fnJ6h2CgMti6qgQ0kn1hx+ zYohFZZXxWl7Jr8Cjk/viE1enmD0prGojh5JPQ00WR2fSAcBBAWHeNVW7IXTxS2pnpOj b5aAdhitNZlyi0hArTij0Hrjqi8j1Cy00Xz6PD8Qr7K0WI8z49XItSlbTzH/m/H8GSBj rdwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719335578; x=1719940378; 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=BI5OFEaVYhrUkuh/u4LxK0p6IDDHPXl4NuFtwgsoCq4=; b=KbeSIJdcyzpW/rf9djURWm02En/05xbOCZZ22bfcIQF5WtC7XKODsdR9dWcGgwQQQR ncZimESnmYO4eNIQ8g14bg80w5oOQSv+lUOgqiGwzTCMpK/29c2FRtQrZWEC6k/KOqhi y7hj5z2HLyPpM+8AP+C6xJBMnMSUEPHYsi92xixxMHWp2BMLefMv7Y1XmdufXtHQWzLf x6PSKVZXuCoCpwNLYz2W+5UsTE/CuQI+8QKWNc2TD4NCVqtSYeoOUghDfCzqd1V9l/eK rPQ4FKSNbPUcj7tOewjsijbglWq5ODvC+RXg4oEwLGPUtcE/fMEOMoqGBeGQzb2MPKNF Qa6Q== X-Forwarded-Encrypted: i=1; AJvYcCUHxSXDQWlaPgLSBtSw3ribASahSeO95rBSvBbJZtvU8TB/VDEoJ6/uUXQDMN+Rs9oXgjcZSDQ5MXhFbcAKJTrTpck= X-Gm-Message-State: AOJu0Yxz91ptk0iAyOm1sL2L1x7vNfZZ96uvN3VKYixRZxE3556wENCc 1LLdfNUOBpqj6vs+qMv9VTWNYQz73iEp1T3V6gHmRXOVTwBSCDG8odqf7P0GOJh85UqBBqF3xBF cXSqDSl/xB7X23P6hzKiz23xjWZU= X-Google-Smtp-Source: AGHT+IE06FOCAbgOD9xJVbw3JngT0HOsO4esODsbSBdUue19gmiKBnUmKzc7qwytynqNUagCApCOkM09kU86aKoNtak= X-Received: by 2002:a05:6000:1a8c:b0:360:728d:8439 with SMTP id ffacd0b85a97d-366e36491b7mr11108459f8f.2.1719335577845; Tue, 25 Jun 2024 10:12:57 -0700 (PDT) MIME-Version: 1.0 References: <20240620-fault-injection-statickeys-v2-0-e23947d3d84b@suse.cz> <20240620-fault-injection-statickeys-v2-6-e23947d3d84b@suse.cz> <78177ff2-e140-4e81-9b2a-be5bece34cfc@suse.cz> In-Reply-To: <78177ff2-e140-4e81-9b2a-be5bece34cfc@suse.cz> From: Alexei Starovoitov Date: Tue, 25 Jun 2024 10:12:46 -0700 Message-ID: Subject: Re: [PATCH v2 6/7] mm, slab: add static key for should_failslab() To: Vlastimil Babka Cc: Akinobu Mita , Christoph Lameter , David Rientjes , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , "Naveen N. Rao" , Anil S Keshavamurthy , "David S. Miller" , Masami Hiramatsu , Steven Rostedt , Mark Rutland , Jiri Olsa , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, LKML , linux-mm , bpf , linux-trace-kernel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: kwn5177y5qfy76xq9jxegtijkyuy6ioz X-Rspamd-Queue-Id: B8F31160015 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1719335579-859130 X-HE-Meta: U2FsdGVkX1/2tK9CRjIv0mOxW7D1Rf/Ur0yt6PC7VrsYbuDxEHiE1+BL77fD+brq00TnwIC5YEloEQMEvERvK4NuW7bsrtip/RuvHTZ/PAplOSdSONHEc/0sxH/Xk/wpTf/nAKqHtPoGWSSwAA5aqHrTU2BjTfOFESZXoJ9lUhNGhvwDRff5GmnW/gdFwBO61H7jy3IlJBjLmGgedTii526vT/K2CIGEfE5sjxGrO1Hlgdpr1UGvTNMwE0MugfnwAfqp02GOZnDmPdz1dFtKPK6V/Ys7GqnA64CP4HoDmb0Qn01Wp3dqrFb+lPQ8p+6McG9LGSh9KD8jrVMYw5TGaE61TStFsdqONTqVF/VAPjwpiofSVcIK4uilNUW+14BDKveDRluHQRJ/UR1BVwt58Aio4Zb2+odRB+kxA4SYaKS5RAbxpReq0AwkvR6m1pjFidT0qGTT+TAEEkHlObBwGVhNdOzhAltMKxI7/4LWBztuZYW9ktTKquFr3dl/U5b6DjWu6FE4QRq1+z00MuDnJlpk0+f2jjm6TPr5vwVByRLjg7tPLuk+E6Wxyr6WaQEfWxLyzea/tG+4BPgHMyOThPbxNWl84jTiR2jaqofpV3P21LZa5qR0TjALUHCm8sG0p0AEosqV5gQ8+p3tSVCban9s3ggksnJK/8SI+PIMmzDKo2e/Xe1vEw1zNjBq/iFOgA9dcamtrvLvgmnMOaPEFOlcgd8caZhdJDmB/FfryP9VnGoTaGtLEeejR0fgJ+UDo4GKEVzHd8mNbnHnZ3y+OBLkSJVvyoUh7XIejuBlzybMua6ywyqOwk9YA7jHQKwvIyvCby0+24UA9ZJ2umLQ7MK1QNDXBGvdjKKYeCzyyVn8L7isCshzeoJGuHcW88V24GRZefAMv2I36osxBEKmsLhH7zE2b+hT2hjckKoNSuMNHixz1Z6ZbKViGtbbKOnFk1Guh4V5BL7QmQUoKjV VrbDrbzS 2vQ/rcoWYGpFHQRYosUgzrgfNKGcCetRuAZ9swOD2gIaXNv2BgBmn+hvS/jGcqrd7HkSyFrhn4CarGMoKvvs51/nuBhexiku9Kr2MOiQJmfYNpbziaXcQviJ/BN88edKmu7E1iPwyGRuF1KJl+o6T6xRgCLz5uETXwtFuFq+ofukTmrRXYMNq6g3hFM17reOGHmp5AKS7b0vqnDhDfQlV+rULTL8FJJoQXJgDqGbYYDV4pzq6FmiFF4TAx+7cRrl4d/EsXHp8OKRu8l9mJyd8bMcTqyUe8u1weDK5qtWuMlnBm42cjCgDR9kNqQzZC5kLUFbcveCFZIEFVqSS6jvvKiQEKdpj/hPNTW/NfFH5SrR2MjUjvqRJSN5tSRCPr5r84eW15+LR5DPCzXFbi78rB8bexmshRN7aXKPBuFycVhqMCjGz7jKo5AkEL0m3wtluWzxqLwTdWbXBvu1CK56McsiWfA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, 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 Tue, Jun 25, 2024 at 7:24=E2=80=AFAM Vlastimil Babka wr= ote: > > On 6/20/24 12:49 AM, Vlastimil Babka wrote: > > --- a/mm/slub.c > > +++ b/mm/slub.c > > @@ -3874,13 +3874,37 @@ static __always_inline void maybe_wipe_obj_free= ptr(struct kmem_cache *s, > > 0, sizeof(void *)); > > } > > > > -noinline int should_failslab(struct kmem_cache *s, gfp_t gfpflags) > > +#if defined(CONFIG_FUNCTION_ERROR_INJECTION) || defined(CONFIG_FAILSLA= B) > > +DEFINE_STATIC_KEY_FALSE(should_failslab_active); > > + > > +#ifdef CONFIG_FUNCTION_ERROR_INJECTION > > +noinline > > +#else > > +static inline > > +#endif > > +int should_failslab(struct kmem_cache *s, gfp_t gfpflags) > > Note that it has been found that (regardless of this series) gcc may clon= e > this to a should_failslab.constprop.0 in case the function is empty becau= se > __should_failslab is compiled out (CONFIG_FAILSLAB=3Dn). The "noinline" > doesn't help - the original function stays but only the clone is actually > being called, thus overriding the original function achieves nothing, see= : > https://github.com/bpftrace/bpftrace/issues/3258 > > So we could use __noclone to prevent that, and I was thinking by adding > something this to error-injection.h: > > #ifdef CONFIG_FUNCTION_ERROR_INJECTION > #define __error_injectable(alternative) noinline __noclone To prevent such compiler transformations we typically use __used noinline We didn't have a need for __noclone yet. If __used is enough I'd stick to t= hat.