Re: next: WARNING: CPU: 0 PID: 1200 at mm/page_alloc.c:4744 __alloc_pages+0x2e8/0x3a0

From: Chuck Lever III
Date: Sun Jun 25 2023 - 11:18:27 EST




> On Jun 25, 2023, at 4:46 AM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> On Sat, May 13, 2023 at 10:54 AM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>> On Fri, May 12, 2023 at 01:56:30PM +0000, Chuck Lever III wrote:
>>>> On May 12, 2023, at 6:32 AM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>>>> I'm pretty sure Chuck Lever did this intentionally, but he's not on the
>>>> CC list. Let's add him.
>>>>
>>>> regards,
>>>> dan carpenter
>>>>
>>>> On Fri, May 12, 2023 at 06:15:04PM +0530, Naresh Kamboju wrote:
>>>>> Following kernel warning has been noticed on qemu-arm64 while running kunit
>>>>> tests while booting Linux 6.4.0-rc1-next-20230512 and It was started from
>>>>> 6.3.0-rc7-next-20230420.
>>>>>
>>>>> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
>>>>>
>>>>> This is always reproducible on qemu-arm64, qemu-arm, qemu-x86 and qemu-i386.
>>>>> Is this expected warning as a part of kunit tests ?
>>>
>>> Dan's correct, this Kunit test is supposed to check the
>>> behavior of the API when a too-large privsize is specified.
>>>
>>> I'm not sure how to make this work without the superfluous
>>> warning. Would adding GFP_NOWARN to the allocation help?
>>
>> That would silence the splat, yes.
>
> But introduce a build failure, as GFP_NOWARN does not exist.

This is the fix that went in:

commit b21c7ba6d9a5532add3827a3b49f49cbc0cb9779
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
AuthorDate: Fri May 19 13:12:50 2023 -0400
Commit: Jakub Kicinski <kuba@xxxxxxxxxx>
CommitDate: Mon May 22 19:24:52 2023 -0700

net/handshake: Squelch allocation warning during Kunit test

The "handshake_req_alloc excessive privsize" kunit test is intended
to check what happens when the maximum privsize is exceeded. The
WARN_ON_ONCE_GFP at mm/page_alloc.c:4744 can be disabled safely for
this test.

Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
Fixes: 88232ec1ec5e ("net/handshake: Add Kunit tests for the handshake consumer API")
Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Link: https://lore.kernel.org/r/168451636052.47152.9600443326570457947.stgit@xxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>

diff --git a/net/handshake/handshake-test.c b/net/handshake/handshake-test.c
index e6adc5dec11a..6193e46ee6d9 100644
--- a/net/handshake/handshake-test.c
+++ b/net/handshake/handshake-test.c
@@ -102,7 +102,7 @@ struct handshake_req_alloc_test_param handshake_req_alloc_params[] = {
{
.desc = "handshake_req_alloc excessive privsize",
.proto = &handshake_req_alloc_proto_6,
- .gfp = GFP_KERNEL,
+ .gfp = GFP_KERNEL | __GFP_NOWARN,
.expect_success = false,
},
{

Is there a platform where __GPF_NOWARN is not defined?


--
Chuck Lever