From patchwork Mon Feb 24 14:47:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan Jackman X-Patchwork-Id: 13988326 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 B7214C021BB for ; Mon, 24 Feb 2025 14:47:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DE4B6B009F; Mon, 24 Feb 2025 09:47:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48EE76B00A0; Mon, 24 Feb 2025 09:47:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 21F4D6B00A1; Mon, 24 Feb 2025 09:47:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 030606B009F for ; Mon, 24 Feb 2025 09:47:32 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id AC715B09D0 for ; Mon, 24 Feb 2025 14:47:32 +0000 (UTC) X-FDA: 83155116744.19.F09BA29 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) by imf16.hostedemail.com (Postfix) with ESMTP id BE70E180013 for ; Mon, 24 Feb 2025 14:47:30 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=tSSShfjW; spf=pass (imf16.hostedemail.com: domain of 3gYa8ZwgKCMQtkmuwkxlqyyqvo.mywvsx47-wwu5kmu.y1q@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3gYa8ZwgKCMQtkmuwkxlqyyqvo.mywvsx47-wwu5kmu.y1q@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740408450; 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=Cx79yAQvvtOreEIgXQgmWnaukRcNTY0vcbEckVNMqhA=; b=hudODtfZTx4gALNyHGIfD301d5fsj6Jox3WZUPklzTEVrpqLTNa8kiWYDKOhOL6VLnW33g Vx2mJdrUyBdchC98VkE9RQgKtDXvk7+f7B/S9wUn5NojyuGxyF7mr5UJWpUtcLZKqTnkc8 heiqQzTW4jZKhhARqxduR+/ds5/6qbs= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=tSSShfjW; spf=pass (imf16.hostedemail.com: domain of 3gYa8ZwgKCMQtkmuwkxlqyyqvo.mywvsx47-wwu5kmu.y1q@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3gYa8ZwgKCMQtkmuwkxlqyyqvo.mywvsx47-wwu5kmu.y1q@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740408450; a=rsa-sha256; cv=none; b=RkpfXrYvwfxsnAYYDq0KTrEdcxqMmSOIsqrJGUg9ez+YkaKSydu2i6s6m8t82iRWP3w64/ BLS/e1gSY5OluFB2hwwjmKC/qWFAsNmt3xMYngROtwdeiaX5JN9PxsBSMOD3cyZUdgxUTH Of2dYyNDdleHPEqwaYcluU34vZPOseY= Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-43aafafe6b7so2200815e9.1 for ; Mon, 24 Feb 2025 06:47:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740408449; x=1741013249; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Cx79yAQvvtOreEIgXQgmWnaukRcNTY0vcbEckVNMqhA=; b=tSSShfjWfHYMRW1xH6XpSxf5AAfni1JdTQaTlK3qVp92xurwjwUg05P8whH8s3TQOy wx06zdJEuBdD+lq7CJ37gdmSxNChqnpXe/J2kCfFSoqOybfeTsaVbq3UMoOjqfPeduNZ QJDC2z7+6ufM5tBupwdnRHsCj5FRojR2zCVOqe+raMeCFtXY79Pq67nxkCCXK4vYt59C tleZO8LcOZ5RGgdfrbkUnfDIwnBZuHp1NGQ/2CTweVWGHnH120wRFc5pgYYy82vunqtj 9we7fp5GBklwUJFasTFa5niyECtl24OkLXzcUedZuBmJ43hfYyq44CCM86HaKbfGv7El xy+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740408449; x=1741013249; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Cx79yAQvvtOreEIgXQgmWnaukRcNTY0vcbEckVNMqhA=; b=O1mGnIHZplRRuUJ0KBFM2xG5ggu8/e5NPezMclg++BI/uDz7U+TS22uitBT5vSxoD9 I/1U4GrfMl8jYPcWDByjRDBbpJwrT74DtvdG7GCauK1kNwVrmWv9MWwq3SmkSEeScRPH VJeuupWMQ4Zyvu+StVHCyQyHanrkgU4rKp+bQU4v3HWdvSJLOrdMmxQvnDTwjVO0gzgf joaFj0GOXABt2k30rSKWXffTHdKiHjPXehSK9fqakD6+Zy7ypUUC4s6MPMrbueAhuaad KIMhmleNmd10HAyarfbW1x36AOEZC8xIfmHkUxrjrzS42MXA6AGaXIq0SzaELFhybLRq qWiw== X-Forwarded-Encrypted: i=1; AJvYcCX5QqZznggirBxJwxkpaH1KtJX60dmno06zlDrGbHNkZLE9G1wcm+v1yNuzhYbcCn24g0QPvrtTHA==@kvack.org X-Gm-Message-State: AOJu0YyO6TcRRASIwihy+EHvdKHzV2Cw629RF/rCRu79m5QO0F+ZL/he mtM0sIb1/Y44U/PzQYoFnjI7p18q268WrCLT5IBTN9Q/wpUmbamvHIEuJnmoj6H3Yafj4eU62Sq LKY/j3ilqvg== X-Google-Smtp-Source: AGHT+IFgzCZS8e4eXhzZ0Xu7b9rwIWCAcRNX6T6m7WXpW/BUkn6CvzEZFi5nDx4xFkLSY1Sid/xnIUacfnELow== X-Received: from wmqd6.prod.google.com ([2002:a05:600c:34c6:b0:439:98eb:28cd]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:b9b:b0:439:8ef6:5782 with SMTP id 5b1f17b1804b1-439ae1e8be4mr121933775e9.10.1740408449496; Mon, 24 Feb 2025 06:47:29 -0800 (PST) Date: Mon, 24 Feb 2025 14:47:11 +0000 In-Reply-To: <20250224-page-alloc-kunit-v1-0-d337bb440889@google.com> Mime-Version: 1.0 References: <20250224-page-alloc-kunit-v1-0-d337bb440889@google.com> X-Mailer: b4 0.15-dev Message-ID: <20250224-page-alloc-kunit-v1-1-d337bb440889@google.com> Subject: [PATCH RFC 1/4] kunit: Allocate assertion data with GFP_ATOMIC From: Brendan Jackman To: Brendan Higgins , David Gow , Rae Moar , Andrew Morton , David Hildenbrand , Oscar Salvador Cc: Lorenzo Stoakes , Vlastimil Babka , Michal Hocko , linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Brendan Jackman , Yosry Ahmed X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: BE70E180013 X-Stat-Signature: uaf79wiyszfjwn5dr6jtsg35hn5i79tg X-Rspam-User: X-HE-Tag: 1740408450-34550 X-HE-Meta: U2FsdGVkX19IABe2/q88b64K8FtwyqOrnrdhzrmunmDoJjCh24NISg3Y/JEjTfXmVsTpu0cbnYcy6omTMpdkzW0/MLdB1TcEHiP7/KseDCK7S3cpnlNljA+tq4u1FxBXlC/Zs986ALE71NsXsLC2GESGv0+7V5q26Dhb03KaQrqfWrL6ZkORMW6p+5gDedCIRO47q49CPrSn0+wtB5TS2BmzNm+kY1fmK//xEPI7T6ZSx9SVOivQORcPxf9pM+mjY7/2Pq26SAuJQmellWCHGSJunQH50yOQrE7oVSTg9ib0wDdDWFogoNAy/8L2f+lSDIB0GifPzj92TOSOycuHjmszOdNio68uZwLazv6xcK4+6JUm2NsrRzGBHYj9hJCSWta8jlVDOWSqAnMD1ADnf/OEgCR3DvmxKCCrfXj5KvFLajYryKoIhPrcLfoCXsjW9XwS0V7yLtyJfdk9jwteuqolcXSZV6/WZqu+6e2SEfxKr1fQuLLi1cJp9XMXWgiBv00cxBFArNpfJ1Mt6DYdWRLkvPPhN1nnK2kTNfFxzjQUGN89u79FXkBXCfkdNWycQg4Rp+kp+wsyXEosAQS8pJlQRW6gU9V3gU8L9ZwAwveYWb5U3aGFk4QRmSLG9P+GU4BH58HSnpAL+Ms6PRB3td/ffYQbmM5+5m3II3gBF0pAaoR4j1uTjjsqKXGKN3VWXtr8KwC9IuoO9APsNYGuw6Wq5Y8Qc2CKnXDSVqNVx3wWBeXr17J5LA6e86WI7EMtOaN8SyyXQBxswEbXQCejHPzY3MkdYKTZuwIdDpbPibmwXoNUVYUt1PA4gBmNrg7jgcXJG4RootPe0hvOtisZkKAM5XwChUIlTGoi/FUy0njYujnrF6uu0tggOz8vMzM9YwtlfQmOqhDM5zyoRWUSXxT3oQ3kciH1T1EL0h7aMRR5TMBfGpjokGeOu7errIuZ8r4fDelg9lhIJecwiiz O6IEwx7l GN97dis+vYwp/My5f20UogL7LmTmIEZqMF0vjE0hxEXglYCAV2Rcljodj2xgycywtYK43d7IUTvzWXwSsdeaZTxDxP1b9emQKUepHEbBFSMnhxtL32Q4WgjP3GCDQwhhTOhrwZD8KmiPSFc0qln16yZX5VqOCavYwJUr0r3vSjlYhg0Q2P1xCIPXy2exXxqM5R5gxtGj2GgZWBt16RwYoxIIgkqIvNz4x1lH5Gz39T0HOP/OTycqFqs0tHmwA8lWlgavIcYwrRFNGB+mqwsPxDb1sLRrE23Lu6A8/G32C4z6/o0Nn1sHh6I9RfUxUTni+EiHYEAVOXSSt/yvow3Dy429l2pCgwzEZULNuD4D8hiQN5MecHIzF+GUUejPp4iEQjJrSOojiGgIqKKfmjcY6MEg0eCRKfob9gFNK2gx3OuQ0tfsocTzrPyy42dSqhgXscyDfPpdITQIAAo5U0UwpO6dd1+nXMgut/cJwlvLzRBE1WGwGPaUiCF7/TMtDAzC2XMFIMVriAM7/QKkxejM+Ztap8TkcsqlWUd6B/x6iiqNA/JOvkddn+jjGJMe/GfSiBqPh7A0IAy6RZJqNSwyDqw3bPLxzSYFDPUPVwyB1jbq0Sms= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000054, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: At present KUnit doesn't handle assertions happening in atomic contexts. A later commit will add tests that make assertions with spinlocks held. In preparation, switch to GFP_ATOMIC. "Just use GFP_ATOMIC" is not generally a solution to this kind of problem: since it uses up memory reserves, instead it should be only used when truly needed. However, for test code that should not be expected to run in production systems it seems tolerable, given that it avoids creating more complex APIs. Signed-off-by: Brendan Jackman --- lib/kunit/assert.c | 2 +- lib/kunit/resource.c | 2 +- lib/kunit/test.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c index 867aa5c4bccf764757e190948b8e3a2439116786..f08656c5fb247b510c4215445cc307ed1205a96c 100644 --- a/lib/kunit/assert.c +++ b/lib/kunit/assert.c @@ -101,7 +101,7 @@ VISIBLE_IF_KUNIT bool is_literal(const char *text, long long value) if (strlen(text) != len) return false; - buffer = kmalloc(len+1, GFP_KERNEL); + buffer = kmalloc(len+1, GFP_ATOMIC); if (!buffer) return false; diff --git a/lib/kunit/resource.c b/lib/kunit/resource.c index f0209252b179f8b48d47ecc244c468ed80e23bdc..eac511af4f8d7843d58c4e3976c77a9c4def86a7 100644 --- a/lib/kunit/resource.c +++ b/lib/kunit/resource.c @@ -98,7 +98,7 @@ int kunit_add_action(struct kunit *test, void (*action)(void *), void *ctx) KUNIT_ASSERT_NOT_NULL_MSG(test, action, "Tried to action a NULL function!"); - action_ctx = kzalloc(sizeof(*action_ctx), GFP_KERNEL); + action_ctx = kzalloc(sizeof(*action_ctx), GFP_ATOMIC); if (!action_ctx) return -ENOMEM; diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 146d1b48a0965e8aaddb6162928f408bbb542645..08d0ff51bd85845a08b40cd3933dd588bd10bddf 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -279,7 +279,7 @@ static void kunit_fail(struct kunit *test, const struct kunit_loc *loc, kunit_set_failure(test); - stream = kunit_alloc_string_stream(test, GFP_KERNEL); + stream = kunit_alloc_string_stream(test, GFP_ATOMIC); if (IS_ERR(stream)) { WARN(true, "Could not allocate stream to print failed assertion in %s:%d\n",