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 E6DADC27C53 for ; Wed, 19 Jun 2024 12:49:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76C406B0408; Wed, 19 Jun 2024 08:49:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F5E76B0409; Wed, 19 Jun 2024 08:49:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 595D06B040A; Wed, 19 Jun 2024 08:49:38 -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 3B8DE6B0408 for ; Wed, 19 Jun 2024 08:49:38 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id CE365A17B6 for ; Wed, 19 Jun 2024 12:49:37 +0000 (UTC) X-FDA: 82247619594.10.BBA3C72 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) by imf06.hostedemail.com (Postfix) with ESMTP id EB3D418000E for ; Wed, 19 Jun 2024 12:49:35 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jKErwygR; spf=pass (imf06.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718801371; a=rsa-sha256; cv=none; b=VlJ1oGEsYCv3Wo57YiRLebrORbj5p3RAPr63IH8L3WUyrsKq6JxfAUT5maO4R5LNdJpc+L TRXvzOf7R3iumB3KCLHgv3DN0C1XLv5ey+WXg0yNyidlpGX9lht43mRo7RJFQhLNjWDMb7 1tXe69cz/Zs1LSaj70bwgBx+JK5wq5E= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jKErwygR; spf=pass (imf06.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=mjguzik@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=1718801371; 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=Bpjz0lX4gdiG8izGnJSD4JNeNkRMIt8R1nn+zHTjtn8=; b=kC5wxKmIlR1qYwqESJ894VqTrMviq6R04zJIfqL3TKm3hkXpXEnay21ECeSXvcColaPgPI PX9cyxYXfQET3CocJBxaN7C3UU/NQdLF4c9M7LpaG9iQgMySfIwbhcLhzYjGq7ijT3Y5mY hGIX1oz0hqDLlXZNDWlTbXMgezTQ9Is= Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-a6ef8bf500dso745050866b.0 for ; Wed, 19 Jun 2024 05:49:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718801374; x=1719406174; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Bpjz0lX4gdiG8izGnJSD4JNeNkRMIt8R1nn+zHTjtn8=; b=jKErwygR6AqUZFfND9swByRqdJ/WYRb8r9eonRxEU2G7+DBcWhJAYy1+DeHSK9Xfow n3DJ27U3zCOXyFQVhX78NJT1vlBishI6mrS1CVCaLgHRVFkSArSY9kyx+rTebuj9S3mu iBy6bENqVbhW5zY9ZprVhRoZYC+0HSWYCSfBwzNSC4wQUp3csvpgahjgA9MT3oMoMEGr Zi8E/unIpnvGHmfBvRZHHpVHCVvMPVRo1LnhSN1uO936DStEQLgb0/wYpmUBX7ZzVg7N WBQHj4AZTonLduPlGfcxPGsmXhWInNwGQxf+6fTf9PpQt1IRPtt/ZJSeVd6eOZtkS5yn QTuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718801374; x=1719406174; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Bpjz0lX4gdiG8izGnJSD4JNeNkRMIt8R1nn+zHTjtn8=; b=TVWIhCCL+JIjneSViAug+FXhLENxNCNqgPnEgenjBRolyrf9C7cEKafUn7m5tJIRtn htQ60SQ0xO0spAGq0qvzf6/pza5YzU+NMKqqjbDaMEr8ZXKMdMuFr1EvezAsCBX4fg+a mLrD1dWKj24MmsKSULc7RL/AcsNA4DVHQyiDFPWPgzRZAQHBycO13HhaoNirq/fPtNJ+ Df2UBhuNxLWeuQhv3Czq5oAh9d0cQLZStKd6cmOBeRLxe0ptr/riUmEHo6UGITvNt+I7 CdqMsPgAbNH0mcLCKZpLVd+OpymUaYSiiBvlOB8zcjz8R18MJzRu9W4cKakEWsbKtGdX jdKQ== X-Forwarded-Encrypted: i=1; AJvYcCXKfSdU9m3srZIevkb0uNZSwOtaT7T1VTMUYBJZI/JKyznjKednIKm9tlQeaG+rgSR8ZgK0UZ6scJ0iBrMTkOBZiLg= X-Gm-Message-State: AOJu0YxAWJInycCZ1Mh4AgTvlGtcwBD0ODAPMVuTAbHQAwI7rYdpyS9q 2FQAlVXHFjlYlU8NEZlleFvSTeA2wead82QK3giHWm67+jf2pwj7 X-Google-Smtp-Source: AGHT+IGOq/zNWszfyhqzTg/FGYYZ1XNMIHD0Ip9bIXCTfv9EGQolffnOerLXpNb3aysPvYg8WIqARw== X-Received: by 2002:a17:907:cc06:b0:a68:bae4:d66f with SMTP id a640c23a62f3a-a6fab615d55mr128333766b.30.1718801373990; Wed, 19 Jun 2024 05:49:33 -0700 (PDT) Received: from f (cst-prg-30-39.cust.vodafone.cz. [46.135.30.39]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6759sm660799666b.63.2024.06.19.05.49.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jun 2024 05:49:33 -0700 (PDT) Date: Wed, 19 Jun 2024 14:49:21 +0200 From: Mateusz Guzik To: Shakeel Butt Cc: Andrew Morton , Michal Hocko , 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=utf-8 Content-Disposition: inline In-Reply-To: <20240618213421.282381-1-shakeel.butt@linux.dev> X-Stat-Signature: i938be481mdejgc6oqndo1i97y7rmbxk X-Rspamd-Queue-Id: EB3D418000E X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1718801375-816924 X-HE-Meta: U2FsdGVkX19jRhVU2LvYYUegyn+7YRO3fYWJqHVbuDNyj7xKDsNHqMNC2hd5ciua8Tfdxu7Oc1xY82+pT0Un7wd42x17ZOUi/7IypJvEy4iTsZNxzTpiIl7rDV6UC9msevwPgeJ0it0lZuMQEsDPKCyoitr14f+SJHoG4wpaMh0jZJabPjJJTZPk8+kR/3kO5VFiQS+tTgZV4LEsGWdmsVMc382DyLX/SUZ8mTGsg59q81eHn6ikBIeLQ2sriwqqBvJ6u+BvakHP4M91dozPp+IsaFGdopAq6J5B2Iw1V/cMSjzuU/V5o9ZCnGF0EHZvVrXo/M7UKcoUEyZXGN7sFPzzAmrjXEefFhKuH0b+W1U1Yx/3WWlC1Ii3pA9YA3lcaHxFZkxui6mZQ9+s/ojP9xJD8GWTMsdxZTQ2U7UoHmeie4ahvZp26kWj37cp0nvMgthPzqOsTT8MIdnRnM+lxr5UZKD7ovhywAcwoU759ReFpmfdmcwqmP0mXEWKDAEK4YMuzv0MEOxd+VO82nyDG5PE9LTv3C+5DV6EpW+cuuLb2obzOHJ0KvdjrjOO+eSPP6a/aS9oeRhjmUR5LwFetvK6wMAcR3imMtXERGIjxJdMbG3GLzPesxWu0uOUafdwxdTG7E0VegKuF2jwceTXG/J28NtmvEiZ2YTIKqlPVKUTzsWvG7ZF4zFPLec6qUya+hOOZxNfyJoEfssyYWSBao3By4SLbFhYgVSI1mXrr4HEeihMUdhtmYYEoOfAkY1ufZtbfY73kPsQI1Z6LVORvwXh4fKFiRd2xIGMkNg9LT/Lwn+ebFR9y/fprsPF1/ZT1lFRN6lDjchSvVyoEuzEBVlFRPcmJSUPL0YMvG93weA0+ECWnlg7t2+9iX0znWm6oICliSp2l6rFynWOg3i3sdeih4ZiRzNUR/aXYYYhTdMwDlX7YnaPafxiLmAw4j4rJM9ZLyjkQoZTX1kmsZQ rH9jCy8f dQ7xUqZvJzTcNeEf7nIWF9RWOjQfb6/joGzzxAB1cFWdKqmqF5sYoWRo/rSy/4I5BSbR3vSx3nQjP/9CoUnxxZAQn2mtVzEfmTpuhO+xyj2aei527SuToQvxTNeDuGSzhaFgiXBsqVJarnO6dEwUIbiR52U1f0Gwayni6jXN9qZz3r3z1zd09Z36UziY3heABDEOYjKnibJ467Q63Dm68FCllqkPEgrejMUjRBggLiQLcwWSdAXoAv9eEaUBSOnTwqreckFlGbaOmObFNnYraXJavSV4VLVDyUXv6QzuTvrtw+bQuQK2Ot1OU+N7ElF+oxbOlKGjux68SszeEh3HB4qgQa+GT5BCCk2Sb8Rg/JnvYDBcu0gDa1iNeADI9cvU3nJ+yVDyEBv6E3Jdqn0ZKSkgNo3wNgbeHybu+/vV4a72iZun28HtL34wVBmvvsyOJjshb6MY+/IzESzJcyLJXCZ3b1m7o+T+/KjV+ 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, Jun 18, 2024 at 02:34:21PM -0700, 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. > > 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; > } > I don't think this is necessary. From the description I think interested parties can get away with bpftrace. Suppose you have an abuser of the sort and you are worried there is more than one. Then this one-liner will catch *all* of them, not just the ones which were "lucky" to get logged with ratelimit: bpftrace -e 'kprobe:kvmalloc_node_noprof /arg0 > 2147483647/ { @[kstack()] = count(); }' Of course adding a probe is not free, but then again kvmalloc should not be used often to begin with so I doubt it is going to have material impact in terms of performance. While I concede it takes more effort to get this running on all affected machines, the result is much better than mere ratelimit. Also there is no need to patch the kernel. btw, I found drm keeps spamming kvmalloc, someone(tm) should look into it: @[ kvmalloc_node_noprof+5 drm_property_create_blob+76 drm_atomic_helper_dirtyfb+234 drm_fbdev_generic_helper_fb_dirty+509 drm_fb_helper_damage_work+139 process_one_work+376 worker_thread+753 kthread+207 ret_from_fork+49 ret_from_fork_asm+26 , 104]: 12