Re: [PATCH 09/13] netvm: Set PF_MEMALLOC as appropriate during SKB processing
From: NeilBrown <hidden>
Date: 2011-04-26 12:22:09
Also in:
linux-mm, lkml
On Tue, 26 Apr 2011 08:36:50 +0100 Mel Gorman [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/net/core/dev.c b/net/core/dev.c index 3871bf6..2d79a20 100644 --- a/net/core/dev.c +++ b/net/core/dev.c@@ -3095,6 +3095,27 @@ static void vlan_on_bond_hook(struct sk_buff *skb) } } +/* + * Limit which protocols can use the PFMEMALLOC reserves to those that are + * expected to be used for communication with swap. + */ +static bool skb_pfmemalloc_protocol(struct sk_buff *skb) +{ + if (skb_pfmemalloc(skb)) + switch (skb->protocol) { + case __constant_htons(ETH_P_ARP): + case __constant_htons(ETH_P_IP): + case __constant_htons(ETH_P_IPV6): + case __constant_htons(ETH_P_8021Q): + break; + + default: + return false; + } + + return true; +}
This sort of thing really bugs me :-) Neither the comment nor the function name actually describe what the function is doing. The function is checking *2* things. is_pfmemalloc_skb_or_pfmemalloc_protocol() might be a more correct name, but is too verbose. I would prefer the skb_pfmemalloc test were removed from here and ....
+ if (!skb_pfmemalloc_protocol(skb)) + goto drop; +
...added here so this becomes:
if (!skb_pfmemalloc(skb) && !skb_pfmemalloc_protocol(skb))
goto drop;
which actually makes sense.
Thanks,
NeilBrown
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>