[Devel] [PATCH RHEL7 COMMIT] ipv6: silence high-order allocation warinig in rawv6_sendmsg()
Vasily Averin
vvs at virtuozzo.com
Thu Dec 3 15:31:05 MSK 2020
The commit is pushed to "branch-rh7-3.10.0-1160.6.1.vz7.171.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1160.6.1.vz7.171.2
------>
commit a789adeb4aa63465ea8706671bf7875a0b0f5cf7
Author: Vasily Averin <vvs at virtuozzo.com>
Date: Thu Dec 3 15:31:05 2020 +0300
ipv6: silence high-order allocation warinig in rawv6_sendmsg()
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>
---
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 f91636e..f5f72bb 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -623,9 +623,10 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, 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 == NULL)
goto error;
skb_reserve(skb, hlen);
More information about the Devel
mailing list