From nobody Wed Dec 17 19:00:29 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98361C61D99 for ; Wed, 22 Nov 2023 23:33:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344475AbjKVXdZ (ORCPT ); Wed, 22 Nov 2023 18:33:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44420 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232195AbjKVXc7 (ORCPT ); Wed, 22 Nov 2023 18:32:59 -0500 Received: from out-189.mta0.migadu.com (out-189.mta0.migadu.com [IPv6:2001:41d0:1004:224b::bd]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26B5E1B9 for ; Wed, 22 Nov 2023 15:32:33 -0800 (PST) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1700695952; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=qgv33Ovxam0+KiksvHm1DaTN1DFcMIwCLo7TltDYJWk=; b=BsDuU21WrjJl0BjQ0mHT2oy9QZIswuRNbpcZm/xDU+FSGPNd3DFXdPAZKbnv8QQ032ltZx ud0N+bpOfodRztqH1p47dyIB0WVCl9V/YnCOPKBmx2/jU7LgZogfC7Zkf4YWIWQTJP+KoY n5zGcjDgVDOUHd7nA1dgzCHC4nXQIyY= From: Kent Overstreet To: linux-kernel@vger.kernel.org Cc: Kent Overstreet , Thomas Graf , Herbert Xu Subject: [PATCH] rhashtable: Better error message on allocation failure Date: Wed, 22 Nov 2023 18:32:16 -0500 Message-ID: <20231122233225.178910-1-kent.overstreet@linux.dev> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Memory allocation failures print backtraces by default, but when we're running out of a rhashtable worker the backtrace is useless - it doesn't tell us which hashtable the allocation failure was for. This adds a dedicated warning that prints out functions from the rhashtable params, which will be a bit more useful. Signed-off-by: Kent Overstreet Cc: Thomas Graf Cc: Herbert Xu Acked-by: Herbert Xu --- lib/rhashtable.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/rhashtable.c b/lib/rhashtable.c index 6ae2ba8e06a2..d3fce9c8989a 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -360,9 +360,14 @@ static int rhashtable_rehash_alloc(struct rhashtable *= ht, =20 ASSERT_RHT_MUTEX(ht); =20 - new_tbl =3D bucket_table_alloc(ht, size, GFP_KERNEL); - if (new_tbl =3D=3D NULL) + new_tbl =3D bucket_table_alloc(ht, size, GFP_KERNEL|__GFP_NOWARN); + if (new_tbl =3D=3D NULL) { + WARN("rhashtable bucket table allocation failure for %ps", + (void *) ht->p.hashfn ?: + (void *) ht->p.obj_hashfn ?: + (void *) ht->p.obj_cmpfn); return -ENOMEM; + } =20 err =3D rhashtable_rehash_attach(ht, old_tbl, new_tbl); if (err) --=20 2.42.0