Re: [PATCH v2] net: fix sleeping while atomic problem in sock mem_cgroup.

From: Glauber Costa
Date: Fri Dec 16 2011 - 05:06:43 EST


On 12/16/2011 02:04 PM, Eric Dumazet wrote:
Le vendredi 16 dÃcembre 2011 Ã 13:53 +0400, Glauber Costa a Ãcrit :
On 12/16/2011 01:31 PM, Eric Dumazet wrote:
Le vendredi 16 dÃcembre 2011 Ã 13:09 +0400, Glauber Costa a Ãcrit :
Since we can't scan the proto_list to initialize sock cgroups, as it
holds a rwlock, and we also want to keep the code generic enough to
avoid calling the initialization functions of protocols directly,
I propose we keep the interested parties in a separate list. This list
is protected by a mutex so we can sleep and do the necessary allocations.

Also fixes a reference problem found by Randy Dunlap's randconfig.

Signed-off-by: Glauber Costa<glommer@xxxxxxxxxxxxx>
CC: Hiroyouki Kamezawa<kamezawa.hiroyu@xxxxxxxxxxxxxx>
CC: David S. Miller<davem@xxxxxxxxxxxxx>
CC: Eric Dumazet<eric.dumazet@xxxxxxxxx>
CC: Stephen Rothwell<sfr@xxxxxxxxxxxxxxxx>
CC: Randy Dunlap<rdunlap@xxxxxxxxxxxx>
---

Sorry to come late, but why dont we convert proto_list_lock to a mutex ?

I didn't suggest this, as I imagined there could be some performance
implications to be drawn from it that may not be obvious to me.

But if it is okay with you net guys, it is certainly okay with me as well.

This 'lock' is not performance sensitive, its very seldom taken.

If we really wanted to be fast, it would not be a rwlock anymore ;)

"cat /proc/net/protocols" could eventually use RCU locking if we want
parallelism. (I dont think its needed)


Well, in this case, I myself think this is a better solution. Do you want to push the patch yourself, or should I do it ?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/