[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100521105128.GA29521@hmsreliant.think-freely.org>
Date: Fri, 21 May 2010 06:51:28 -0400
From: Neil Horman <nhorman@...driver.com>
To: David Miller <davem@...emloft.net>
Cc: herbert@...dor.apana.org.au, eric.dumazet@...il.com,
bmb@...enacr.com, tgraf@...hat.com, nhorman@...hat.com,
netdev@...r.kernel.org
Subject: Re: tun: Use netif_receive_skb instead of netif_rx
On Thu, May 20, 2010 at 10:49:44PM -0700, David Miller wrote:
> From: Neil Horman <nhorman@...driver.com>
> Date: Thu, 20 May 2010 20:39:39 -0400
>
> > On Fri, May 21, 2010 at 09:16:30AM +1000, Herbert Xu wrote:
> >> On Thu, May 20, 2010 at 01:29:18PM -0400, Neil Horman wrote:
> >> >
> >> > So, I'm testing this patch out now, and unfotunately it doesn't seem to be
> >> > working. Every frame seems to be holding a classid of 0. Trying to figure out
> >> > why now.
> >>
> >> Not very surprising since tun.c doesn't go through the normal
> >> socket interface. I'll send a additional patch for that.
> >>
> > I don't think thats it. I think its a chicken and egg situation. I think the
> > problem is that tasks can't be assigned to cgroups until their created, and in
> > that time a sock can be created. Its a natural race. If you create a socket
> > before you assign it to a cgroup, that socket retains a classid of zero. I'm
> > going to try modify the patch to update sockets owned by tasks when the cgroup
> > is assigned.
>
> Neil, you must not be using Herbert's most recent patch.
>
I'm not, I was testing the version prior. I wrote my note before he posted the
update for the tun driver
> Either that or you haven't even read it.
>
I read it, we just described the issue in diferent terms.
Neil
> Herbert's most recent patch doesn't create this chicken and egg
> problem you mention because it explicitly watches for cgroupid changes
> at all socket I/O operations including sendmsg() and sendmsg(). And
> if it sees a different cgroupid at a socket I/O call, it updates the
> cgroupid value in the socket.
>
> So you very much can change the cgroup of the process mid-socket
> ownership and it will work.
>
> The only problem is, as Herbert stated, tun. Because it does it's
> networking I/O directly by calling netif_receive_skb() so it won't
> hit any of Herbert's cgroup check points.
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists