Thread (30 messages) 30 messages, 10 authors, 2006-08-24

Re: [RFC][PATCH 3/4] deadlock prevention core

From: Peter Zijlstra <hidden>
Date: 2006-08-12 17:45:58
Also in: linux-mm, lkml

On Sat, 2006-08-12 at 19:31 +0200, Indan Zupancic wrote:
On Sat, August 12, 2006 16:14, Peter Zijlstra said:
quoted
+struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask, int fclone)
+{
+	struct sk_buff *skb;
+
+	skb = ___alloc_skb(size, gfp_mask & ~__GFP_MEMALLOC, fclone);
+
+	if (!skb && (gfp_mask & __GFP_MEMALLOC) && memalloc_skbs_available())
+		skb = ___alloc_skb(size, gfp_mask, fclone);
+
+	return skb;
+}
+
I'd drop the memalloc_skbs_available() check, as that's already done by
___alloc_skb.
Right, thanks. Hmm, its the last occurence of that function, even
better.
quoted
+static DEFINE_SPINLOCK(memalloc_lock);
+static int memalloc_socks;
+static unsigned long memalloc_reserve;
Why is this a long? adjust_memalloc_reserve() takes an int.
Euhm, right :-) long comes naturaly when I think about quantities op
pages. The adjust_memalloc_reserve() argument is an increment, a delta;
perhaps I should change that to long.
Is it needed at all, considering var_free_kbytes already exists?
Having them separate would allow ajust_memalloc_reserve() to be used by
other callers too (would need some extra locking).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help