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 AC08CC3ABC9 for ; Thu, 15 May 2025 15:56:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B76E86B009B; Thu, 15 May 2025 11:56:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B237E6B00A6; Thu, 15 May 2025 11:56:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C5A26B00A7; Thu, 15 May 2025 11:56:00 -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 793B06B009B for ; Thu, 15 May 2025 11:56:00 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 998D3140308 for ; Thu, 15 May 2025 15:56:02 +0000 (UTC) X-FDA: 83445593364.13.1600B28 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by imf04.hostedemail.com (Postfix) with ESMTP id B234640006 for ; Thu, 15 May 2025 15:56:00 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=foKDmT7f; spf=pass (imf04.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.210.170 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=1747324560; 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=vwSFGwblpcsKCcrB2EaJfjOE897XBCx90z+dK4NApfc=; b=h6txdZ8HUJH2mQFbe16OYbaRS0L4gPieUlvP6ylgVYya0ZIY19iPO6wigNSkqDsU4c/KCD mCCpv9M0YbKvBEug20EZ3N4/OFnuN20dZeAV2k8V3XSCyuFFscqXXO7np5UZTXDgYP3ZZh Dgb8qDZQCTAsluR26j1CEWRBlqnZOLs= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=foKDmT7f; spf=pass (imf04.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747324560; a=rsa-sha256; cv=none; b=VNfmeShhY52un2+d8ROcsKuOAsWVeIGrng7Qa60OWoP8GPmEWDAWQsta4qM2HvXwss5kKY qcfAY1H84t9l0bCGCLckBlUiJPI7SqGv/dzR+mGm+IPo5qO8/PI8D/74wvXswI84FMhT9S Bn+r3q8e3f/RpvOJdlzxd7QFuP8KPS4= Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-74264d1832eso1533009b3a.0 for ; Thu, 15 May 2025 08:56:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747324559; x=1747929359; 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=vwSFGwblpcsKCcrB2EaJfjOE897XBCx90z+dK4NApfc=; b=foKDmT7f+F1oALl1sjKg1539YS54FESVSBMoDL2ji8Z+FmlGBF7XiUhatKDBvyqm8Y pgpXo2DimTRRyDOFxt5QctLdt4Ei2DnUOkVNvXcdkyLsOR7vGgma/W2JVs4Sp3PKDOkT hZcJURZEL6oz/S/Z/9Tubndgocw9O2d4AoSCuL5UFQiZBTuhRiV68yJJGxlj7i0yJ0J1 Ntomko2OxSMBKiP4U7KSObXte3wdPNf3ZL1/Pzi4BAuWnzpKepuSnv+/jrrD6oiZwdC5 FcE2lP03bQj26n9AFZVyf4FLKA78XVTIRlXp0bcQTjt4ag3EAi8ugbHkLSB+cjHaoW0b 5yJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747324559; x=1747929359; 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=vwSFGwblpcsKCcrB2EaJfjOE897XBCx90z+dK4NApfc=; b=E8XglCarHfBm6X0Oida6TUqyDhjLevw7F/8Tx//OUL6aPF4BLYsdWZd/V1nMGQcVlf kBYJznbYxTx/7pAkWkXPbh7wtx0QvbFIaJNzRm3UreAlpCXnMP2zFQKlrUitxrPfuHZG we3C4HuvUh8rEeNd3TB1+DFZ7SFydcuk67xXtW0/rzd585KEQR1SpeHSxwQs8ggZNR3v 5V8y0Yyp5g/WHYgsGdy/erEKnQIK3PDrJ3f2QC2XFZ5XfIFRcu/uiqlM6UfkRkEJWRMn FS5vIPv0IuP/YshO4hKIIGuxtx+JFgWHnW1PDRIo4+MpiA6DJvD7ZQFOO/fz9iKpDHLm JW7Q== X-Forwarded-Encrypted: i=1; AJvYcCXuhku695NbwuY8HfRmGabZh/GZh6uTRjRtYpbRGfw5siIlD1n59aNFB505p1hKFQwd8UdgEcRvXA==@kvack.org X-Gm-Message-State: AOJu0YxP7JrMizcprCSJ3abZQxgRZVyVgWcd8/gIJpz3LOzo36Vomi4T YlOXaCNexR321f96kD630OCticaQJVHajbIw/z/dm6GcYb8FR78cHey4JWGOqp1IVBUfYw+DePz u0sz95SSx3djKsvAxV5BYpPON1aI= X-Gm-Gg: ASbGncuFcygoMm0LkNUGyycM1CM8elzx2fN5kDj8MApypMpnj8T5mSIF3OS/ZsDr5+R 0tbsL+bNXgmPKYilOfIORZkSrWQs0kxvxxDEYE8gEYdZS4hM2hqOp7jfrq5Ls3uuxw2Qdh6Y3qL L5UOYIJ3Xa/LFF9b43qtS3f4okpPqCYx+/GyUxC/1tevlOs1ik X-Google-Smtp-Source: AGHT+IGPRrFhMchsBX4IRYFKA90fZIR29juTVsQz3ECzVcxmLv3gFJTu0IYlEsPOUVwab+bsFo7Aben+HpCoDAX2kxE= X-Received: by 2002:a05:6a00:98b:b0:73e:23bd:fb9c with SMTP id d2e1a72fcca58-742893623a3mr11801798b3a.23.1747324559490; Thu, 15 May 2025 08:55:59 -0700 (PDT) MIME-Version: 1.0 References: <20250515-bpf-verifier-slowdown-vwo2meju4cgp2su5ckj@6gi6ssxbnfqg> <202505150845.0F9E154@keescook> <202505150850.6F3E261D67@keescook> In-Reply-To: <202505150850.6F3E261D67@keescook> From: Andrii Nakryiko Date: Thu, 15 May 2025 08:55:47 -0700 X-Gm-Features: AX0GCFvq9CisTH8nZcYpH-mCimU9toiO7n-whCQ1cjhCwfk1tPJQRG6tXDh3K98 Message-ID: Subject: Re: [REGRESSION] bpf verifier slowdown due to vrealloc() change since 6.15-rc6 To: Kees Cook Cc: Shung-Hsi Yu , bpf@vger.kernel.org, linux-mm@kvack.org, Andrii Nakryiko , Ihor Solodrai , Andrew Morton , Michal Hocko , Vlastimil Babka , Uladzislau Rezki , linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, regressions@lists.linux.dev, Greg Kroah-Hartman , Alexei Starovoitov , Daniel Borkmann , Pawan Gupta , Eduard Zingerman Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: B234640006 X-Rspamd-Server: rspam09 X-Stat-Signature: kk3g8xr8bmub1ymtgbj38gtm7jtsje3j X-HE-Tag: 1747324560-579093 X-HE-Meta: U2FsdGVkX18ATajbDsGvoL5PfsUPHWX7e9NjEz3QsIYJfXERZwQxl/TpV1yhf2GVWwP+McR6+ENjGi5RITl4ZkwUpHbS+JECNfbzeXxdPZZ+wOZc2+FkNX8WKnyg3E+3D2mWyxNrYQEML743gLYfgSZ0TmsAOFG50Fu4F1drZtPB3FeYSu4CQW/NPqBQEVbKx3ivtqOYLO7mt9pWe0ViLmFu9EHDFD0YTgAQAFOZW9NfYTXyGXNiA3XRIdyTzI/RYqNmwLKuAkXSRPdxFwuND3y/znoL1p5kemOxnUgzrSPBdxYICKez5JY5gZMB83F30YDLsubq+HUKMg9Q7WKoZDbxiIbLccGQSH3jsgOUhtMCyIvbVJes+d2wCzDYWtS412dvRDlQkKYE8sG/Jbg18Fuc7ZL7+w020G6ja6o2cNeq1AHz5AHaZ+WVTWoT0Uc4mTH0rEuwBfVtPFJfe/cMxSq1v5ePWsmHdH7oEVzpL29V0sJ/KY+anh2gubo6iRYlRxY7PYtsMyN9DKeHf6PteRoBjoxzTgQDNlgEr49uHAisDTBJtn42NhWb2jQnPiRHS3aRSsBXI4vz2pIjTms4sv8gGbgC5y/TK9giy78Zk0sURk5YY7Th/zP+lYRWCiTxBO0CW/UK7yzuoixs09bbvtJ3kTH/xZbxz1GyPFWpVBk9HNAhMimpGvfCNrcOyHo7mR18Hmj7gCPe4nk2SnUlOtCEKw3aLpMMzffarPurZ2+cNrQ7fucYaEOoIN/zVVoYMABRJlU3mrl2FO/HcQAPkuMV+H6rhNof9eKqvm8qVQ0LkSmB9xYibHo/2UHlVF6+yFI0LHdcb3DoKZLXorP8l9zFxcK5nx97UecoZRKB6Kj8jFxk0ZIKzeJaEMOI2NqAIQSC+WgQFHI/kQjbYRkTvGPcTpN2QAsV+MYOtL2jY4w2OP5yHbDRe04m2kYkoVFpPUbOF4+NvaND47b91N3 19b4Pg6f mwhAh6YPWri+zLZ8+gGb9tbPi7Sj9h4aYxnrGpS+lMw2P4k9u0zhqVZKs4gMrd+hhbkeJXN0CVvnzZaur0n19CrVwo3wYh2C+iRMEZ3gKRcCtRc8uup/yp0EUhSNKjiq4VC1Hbwk8DLXPQTTgJuwk0/FVU04lSj1glCCKZqIulpWNOB5T0RuJDuHBul+UCEjY96DrAyUELCKvwtg3GnH153Vk7zc5Him8k+gII4Rq0AU0hQZYbAaknCnB3YppgNTSMA0upa2+ANDLlvvF66To8r6XjV7TkBqeDxehVe4AGpsZskuIVj16ZhWwkkgZlukN2SzbCDzkXYOqPJYSWRE+mG3rIOPLb4fZEhM6TfPG5O4xhhEYPWK8kwans5uuzbMNA6g6ryX6bguURwU4kvRsEK8DHIum5GjoIxKmojaX/ss07nDSsjZMuVANSa7JMu6oCaXZ2sPTLowI6JPLqRXaWoYtYLfVncnAQmjGXwx1XxDm3axqCe7FTFdEMVBQEbddso369RHYiliWWyvC6DhhUMnCx5n8zHuJdB9n 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, May 15, 2025 at 8:53=E2=80=AFAM Kees Cook wrote: > > On Thu, May 15, 2025 at 08:47:47AM -0700, Kees Cook wrote: > > On Thu, May 15, 2025 at 09:12:25PM +0800, Shung-Hsi Yu wrote: > > > Bisect was done by Pawan and got to commit a0309faf1cb0 "mm: vmalloc: > > > support more granular vrealloc() sizing"[2]. To further zoom in the > > > > Can you try this patch? It's a clear bug fix, but if it doesn't improve > > things, I have another idea to rearrange the memset. > > Here's the patch (on top of the prior one) that relocates the memset: > > > From 0bc71b78603500705aca77f82de8ed1fc595c4c3 Mon Sep 17 00:00:00 2001 > From: Kees Cook > Date: Thu, 15 May 2025 08:48:24 -0700 > Subject: [PATCH] mm: vmalloc: Only zero-init on vrealloc shrink > > The common case is to grow reallocations, and since init_on_alloc will > have already zeroed the whole allocation, we only need to zero when > shrinking the allocation. > > Fixes: a0309faf1cb0 ("mm: vmalloc: support more granular vrealloc() sizin= g") > Signed-off-by: Kees Cook > --- > Cc: Andrew Morton > Cc: Uladzislau Rezki > Cc: > --- > mm/vmalloc.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 74bd00fd734d..83bedb1559ac 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -4093,8 +4093,8 @@ void *vrealloc_noprof(const void *p, size_t size, g= fp_t flags) > * would be a good heuristic for when to shrink the vm_area? > */ > if (size <=3D old_size) { > - /* Zero out "freed" memory. */ > - if (want_init_on_free()) > + /* Zero out "freed" memory, potentially for future reallo= c. */ > + if (want_init_on_free() || want_init_on_alloc(flags)) > memset((void *)p + size, 0, old_size - size); > vm->requested_size =3D size; > kasan_poison_vmalloc(p + size, old_size - size); > @@ -4107,9 +4107,11 @@ void *vrealloc_noprof(const void *p, size_t size, = gfp_t flags) > if (size <=3D alloced_size) { > kasan_unpoison_vmalloc(p + old_size, size - old_size, > KASAN_VMALLOC_PROT_NORMAL); > - /* Zero out "alloced" memory. */ > - if (want_init_on_alloc(flags)) > - memset((void *)p + old_size, 0, size - old_size); > + /* > + * No need to zero memory here, as unused memory will hav= e > + * already been zeroed at initial allocation time or duri= ng > + * realloc shrink time. > + */ > vm->requested_size =3D size; This vm->requested_size change you are adding should also fix the kasan issue reported by syzbot ([0]). [0] https://lore.kernel.org/bpf/68213ddf.050a0220.f2294.0045.GAE@google.c= om/ > return (void *)p; > } > -- > 2.34.1 > > > > -- > Kees Cook