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 0DBD8C27C79 for ; Wed, 19 Jun 2024 07:19:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4EC416B009B; Wed, 19 Jun 2024 03:19:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3B0916B00BF; Wed, 19 Jun 2024 03:19:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 19A726B00C0; Wed, 19 Jun 2024 03:19:52 -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 CE7586B009B for ; Wed, 19 Jun 2024 03:19:51 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 80DBAC0E46 for ; Wed, 19 Jun 2024 07:19:51 +0000 (UTC) X-FDA: 82246788582.10.1901DD4 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf28.hostedemail.com (Postfix) with ESMTP id 642A4C0013 for ; Wed, 19 Jun 2024 07:19:48 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=t8WY50uk; dkim=pass header.d=suse.com header.s=susede1 header.b=t8WY50uk; spf=pass (imf28.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.130 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718781585; 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=dyUwDpNg9ilLIjNA73Mb7FzUGR35jHF2ijEAvN3j7xI=; b=Q5kkUO74rbsusv6DTRfwZTpaX+ghCazUXVa7hR/XmE7rfWl/LKN0RvBYUJHGzdRloWQqNM TrDRuRJ5ni6WNX9wQ+mMMUvI4I7T8q8E3xsYc9wwCvyC6ykT0bT2gRI08jKlGFmJSUtzQw xTR7D5wNeRW3uUlZSlLu+H5Ppkip7KQ= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=t8WY50uk; dkim=pass header.d=suse.com header.s=susede1 header.b=t8WY50uk; spf=pass (imf28.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.130 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718781585; a=rsa-sha256; cv=none; b=jZ0s/CpgJnrx+4X634z4S57quMxIJsQ0Qhd01WiXzF4YMZjzk5qFoMXqKzX8zigScV3soG rDo/zDKKdj3krSZnFwhr8XVrDmhIxK9VpHicy0EYVTQyNpQ/BE66pnOuoTl2UyrI5Dvxkv ZmdkRw4hV+NJSmBjEH3Y2HFNg9GvKxg= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A79E421A42; Wed, 19 Jun 2024 07:19:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1718781586; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dyUwDpNg9ilLIjNA73Mb7FzUGR35jHF2ijEAvN3j7xI=; b=t8WY50ukZ29L9JpdEATNsF5bCgIBct2S+fVjDXiVF9trMtBfnD88gqy/4C7/xZQYtgZLvl 98hACeQFefZ0OLGJF+NgFCz/sg6wPwi8V09IbJ2G2JxyGDdQvxtl5MTaLgjFU0qh+zlz6T reSgxh1l8IsBOSgz44mIThv1FRO+/Dc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1718781586; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dyUwDpNg9ilLIjNA73Mb7FzUGR35jHF2ijEAvN3j7xI=; b=t8WY50ukZ29L9JpdEATNsF5bCgIBct2S+fVjDXiVF9trMtBfnD88gqy/4C7/xZQYtgZLvl 98hACeQFefZ0OLGJF+NgFCz/sg6wPwi8V09IbJ2G2JxyGDdQvxtl5MTaLgjFU0qh+zlz6T reSgxh1l8IsBOSgz44mIThv1FRO+/Dc= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8E16213AAA; Wed, 19 Jun 2024 07:19:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id VJLqIJKGcmYJBwAAD6G6ig (envelope-from ); Wed, 19 Jun 2024 07:19:46 +0000 Date: Wed, 19 Jun 2024 09:19:41 +0200 From: Michal Hocko To: Shakeel Butt Cc: Andrew Morton , Linus Torvalds , kernel-team@meta.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Kyle McMartin Subject: Re: [PATCH] mm: ratelimit oversized kvmalloc warnings instead of once Message-ID: References: <20240618213421.282381-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240618213421.282381-1-shakeel.butt@linux.dev> X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 642A4C0013 X-Stat-Signature: rje1uhbmq3cz7n95juj9dejj9zuigyun X-HE-Tag: 1718781588-461843 X-HE-Meta: U2FsdGVkX19ZDUrHI59GEKe8z3FO1Tmr6jt/tlGpDsPw0RCCjGoVDm71TjNCFBA3eT3KVPUDJgroDdWG0cUyD3toUuzp4JkhvQt1m3a6+Z53jZjPZFtwHvK1tru9JUtZN0aw5NS+eU5BLRCyjeBolcd2UCJYCR0olVpJdS6AekILQTzP9MSs+xyHC6ewKp8/WVAoVpiI9LN2VVtbtcYki5Ih3YlTEnrJXAZPO5X6gL+oae0JsWT7l5mcrDT3WjdCGEIOI8UWC5OiRqoOArsHShO6uUMzY3ZAT+SDY2gvSiwolACmuP+jJWDh7oiNkseSuzAaqTwO48jVrBIniDgcRkfQV0pNADz1ZA84auXS7WZFC5OKWNhOrFpTAFV/RaqBLQZDLxa9nkeWgNupu7BPS6SmXPtNzEClfb9QdKeJcY1MnQOf+BaS+Rk57md+q8qkWRl8Nz/f+aNi6boa1rweCsSM/EiAAmpn0cGEPmFljaJ3CFt5WZlkpwv+8B7g+ak+vTTC3uhduQTDbfp23m+lwb7On4d1ERPgSDBPipZYKmxWq2nrBUE8Y93ZrA5KWTgEzY3ClvFixWZ15bPNNWbxmY93s8UFfoLnSSiRPHS5XL1hQaqgAOrz3+iNTl2GEaP3/VbLlYLkrs6Ig1upnj+uRFulJIiJ7o57BSb8AvNhMUXicUllAjTzHYU8VcqSM7T3e2rFV9vl579caqlHEF+mk5uskXg9rGvjN+a6Tb+89IpLmFxbgBcdIA/DhTsrEhahk+S5Yg/9sEVOvuMEB3uCmu/qk2ut9G3V9oqiXaJS/oIIguuFe1GDl/TB5hxtjHoxt6apR6sRi6pVxfgRB4rrLvZgwXSv4qQeJN9SAvRiGDs2RlK0g6Dg9kYn+tTAVy1dQWhq+8+ZGNj64lqbk4l56FN1cBrI5TxNNDC9CgbfGLGrFzvRdjjyHR1PCdAYRx1nO+kPGVQ6OlN748lKnTK ygZvwjf4 kcsM6nSKbefIamfRGcbJfCgPiPc6iwKaREJ+BKO/wo4Bo4cacmIhriCLK7JVHJCRxY8ziVYfQFZYt1IgsEp3y2KsrWGOtrpzyx+t7SHzq93FWSLsiiyN6Lhh0KZBXcqShuso1eR4z1YEGYhAV1ZM41isFoS6sIx9EGAsugnCpraV2zTa9b3vjCxOWSvpoMVRH8JLveZ5IN6/tZAsiOG0/h5n/EM1eeTcaMVtiuob8Ip4ztGepYPceCtH35ORQb38kSZ7YkZL33g0leOxf1WgftJERDfcC4x2ZXdz7rAyVXV+vR2/C6m3b4YI+8Q== 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 Tue 18-06-24 14:34:21, Shakeel Butt wrote: > At the moment oversize kvmalloc warnings are triggered once using > WARN_ON_ONCE() macro. One issue with this approach is that it only > detects the first abuser and then ignores the remaining abusers which > complicates detecting all such abusers in a timely manner. The situation > becomes worse when the repro has low probability and requires production > traffic and thus require large set of machines to find such abusers. In > Mera production, this warn once is slowing down the detection of these > abusers. Simply replace WARN_ON_ONCE with WARN_RATELIMIT. Long time ago, I've had a patch to do the once_per_callsite WARN. I cannot find reference at the moment but it used stack depot to note stacks that have already triggered. Back then there was no reponse on the ML. Should I try to dig deep and recover it from my archives? I think this is exactly kind of usecase where it would fit. > Reported-by: Kyle McMartin > Signed-off-by: Shakeel Butt > --- > mm/util.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/util.c b/mm/util.c > index 10f215985fe5..de36344e8d53 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -649,7 +649,8 @@ void *kvmalloc_node_noprof(size_t size, gfp_t flags, int node) > > /* Don't even allow crazy sizes */ > if (unlikely(size > INT_MAX)) { > - WARN_ON_ONCE(!(flags & __GFP_NOWARN)); > + WARN_RATELIMIT(!(flags & __GFP_NOWARN), "size = %zu > INT_MAX", > + size); > return NULL; > } > > -- > 2.43.0 -- Michal Hocko SUSE Labs