Re: [PATCH] net: remove judgement based on gfp_flags
flat view
From: Zhaoyang Huang <hidden>
Date: 2021-12-27 06:14:29
Also in:
lkml
On Fri, Dec 24, 2021 at 1:11 AM Jakub Kicinski [off-list ref] wrote:
On Thu, 23 Dec 2021 09:56:07 +0800 Huangzhaoyang wrote:quoted
From: Zhaoyang Huang <redacted> The parameter allocation here is used for indicating if the memory allocation can stall or not. Since we have got the skb buffer, it doesn't make sense to check if we can yield on the net's congested via gfp_flags. Remove it now.This is checking if we can sleep AFAICT. What are you trying to fix?
Yes and NO. gfp means *get free pages* which indicate if the embedded memory allocation among the process can sleep or not, but without any other meanings. The driver which invokes this function could have to use GFP_KERNEL for allocating memory as the critical resources but don't want to sleep on the netlink's congestion.
quoted
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 4c57532..af5b6af 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c@@ -1526,7 +1526,7 @@ int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 portid, consume_skb(info.skb2); if (info.delivered) { - if (info.congested && gfpflags_allow_blocking(allocation)) + if (info.congested) yield(); return 0; }