[Devel] [PATCH RH9 16/30] ipv6: silence high-order allocation warinig in rawv6_sendmsg()
Andrey Zhadchenko
andrey.zhadchenko at virtuozzo.com
Tue Sep 28 21:49:07 MSK 2021
From: Vasily Averin <vvs at virtuozzo.com>
neoLTP sctp_big_chunk testcase triggers high-order-allocation warning
WARNING: CPU: 2 PID: 913629 at mm/page_alloc.c:3533 __alloc_pages_nodemask+0x1b1/0x600
order 5 >= 3, gfp 0x2044d0
Kernel panic - not syncing: panic_on_warn set ...
CPU: 2 PID: 913629 Comm: sctp_big_chunk ve: 0 Kdump: loaded Tainted: G OE ------------ 3.10.0-1127.18.2.vz7.163.39 #1 163.39
Hardware name: Virtuozzo OpenStack Compute, BIOS 1.11.0-2.vz7.1 04/01/2014
Call Trace:
[<ffffffffabbb8a47>] dump_stack+0x19/0x1b
[<ffffffffabbb1a1a>] panic+0xe8/0x21f
[<ffffffffab49d1ba>] __warn+0xfa/0x100
[<ffffffffab49d21f>] warn_slowpath_fmt+0x5f/0x80
[<ffffffffab5dfaa1>] __alloc_pages_nodemask+0x1b1/0x600
[<ffffffffabbb4e19>] kmalloc_large_node+0x5f/0x80
[<ffffffffab647f12>] __kmalloc_node_track_caller+0x292/0x300
[<ffffffffaba72994>] __kmalloc_reserve.isra.32+0x44/0xa0
[<ffffffffaba739dd>] __alloc_skb+0x8d/0x2d0
[<ffffffffaba73c77>] alloc_skb_with_frags+0x57/0x1e0
[<ffffffffaba6f776>] sock_alloc_send_skb+0x1b6/0x250
[<ffffffffabb72efb>] rawv6_sendmsg+0x5cb/0xcd0
[<ffffffffabb13cf9>] inet_sendmsg+0x69/0xb0
[<ffffffffaba69480>] sock_sendmsg+0xb0/0xf0
[<ffffffffaba69ab1>] SYSC_sendto+0x121/0x1c0
[<ffffffffaba6b6ce>] SyS_sendto+0xe/0x10
[<ffffffffabbcbf92>] system_call_fastpath+0x25/0x2a
https://jira.sw.ru/browse/PSBM-122200
Signed-off-by: Vasily Averin <vvs at virtuozzo.com>
(cherry-picked from vz7 commit d4566fb9686f60b45bc0beeb2598f0917db2481a)
https://jira.sw.ru/browse/PSBM-127858
Signed-off-by: Valeriy Vdovin <valeriy.vdovin at virtuozzo.com>
(cherry picked from vz8 commit 90f42d542677331c4d4daec1e86ce0859a8bd89f)
Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
---
net/ipv6/raw.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index bc020d6..038555f 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -637,9 +637,10 @@ static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
if (flags&MSG_PROBE)
goto out;
- skb = sock_alloc_send_skb(sk,
+ skb = sock_alloc_send_skb_flags(sk,
length + hlen + tlen + 15,
- flags & MSG_DONTWAIT, &err);
+ flags & MSG_DONTWAIT, &err,
+ __GFP_ORDER_NOWARN);
if (!skb)
goto error;
skb_reserve(skb, hlen);
--
1.8.3.1
More information about the Devel
mailing list