From: David Miller <davem@davemloft.net>
To: nhorman@tuxdriver.com
Cc: herbert@gondor.apana.org.au, eric.dumazet@gmail.com,
bmb@athenacr.com, tgraf@redhat.com, nhorman@redhat.com,
netdev@vger.kernel.org
Subject: Re: tun: Use netif_receive_skb instead of netif_rx
Date: Thu, 20 May 2010 22:49:44 -0700 (PDT) [thread overview]
Message-ID: <20100520.224944.102694876.davem@davemloft.net> (raw)
In-Reply-To: <20100521003939.GA2223@localhost.localdomain>
From: Neil Horman <nhorman@tuxdriver.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.
Either that or you haven't even read it.
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.
next prev parent reply other threads:[~2010-05-21 5:49 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-19 7:57 tun: Use netif_receive_skb instead of netif_rx Herbert Xu
2010-05-19 8:09 ` Eric Dumazet
2010-05-19 8:18 ` Eric Dumazet
2010-05-19 8:21 ` Herbert Xu
2010-05-19 12:05 ` Neil Horman
2010-05-19 12:55 ` Neil Horman
2010-05-19 18:00 ` Neil Horman
2010-05-19 20:24 ` Neil Horman
2010-05-19 20:49 ` Thomas Graf
2010-05-19 21:00 ` Brian Bloniarz
2010-05-20 2:55 ` David Miller
2010-05-20 2:57 ` Herbert Xu
2010-05-20 3:05 ` David Miller
2010-05-20 3:34 ` Herbert Xu
2010-05-20 3:42 ` Herbert Xu
2010-05-20 3:46 ` David Miller
2010-05-20 4:54 ` Eric Dumazet
2010-05-20 5:01 ` Herbert Xu
2010-05-20 5:15 ` Eric Dumazet
2010-05-20 5:20 ` Herbert Xu
2010-05-20 5:36 ` Eric Dumazet
2010-05-20 5:46 ` Herbert Xu
2010-05-20 6:03 ` Eric Dumazet
2010-05-20 6:11 ` Herbert Xu
2010-05-20 6:19 ` Herbert Xu
2010-05-20 6:52 ` Herbert Xu
2010-05-20 8:10 ` Thomas Graf
2010-05-20 9:40 ` Thomas Graf
2010-05-24 6:44 ` David Miller
2010-05-20 17:29 ` Neil Horman
2010-05-20 23:16 ` Herbert Xu
2010-05-21 0:39 ` Neil Horman
2010-05-21 1:02 ` Herbert Xu
2010-05-21 1:16 ` Herbert Xu
2010-05-24 6:44 ` David Miller
2010-05-21 5:49 ` David Miller [this message]
2010-05-21 10:51 ` Neil Horman
2010-05-21 11:08 ` Herbert Xu
2010-05-21 12:59 ` Neil Horman
2010-05-21 16:40 ` Neil Horman
2010-05-22 1:49 ` cls_cgroup: Store classid in struct sock Herbert Xu
2010-05-22 12:26 ` Neil Horman
2010-05-24 5:42 ` Herbert Xu
2010-05-24 6:44 ` David Miller
2010-05-24 6:55 ` David Miller
2010-05-24 7:07 ` Herbert Xu
2010-05-24 7:14 ` David Miller
2010-05-24 11:09 ` Neil Horman
2010-05-24 11:24 ` Herbert Xu
2010-05-19 14:10 ` tun: Use netif_receive_skb instead of netif_rx Eric Dumazet
2010-05-19 14:31 ` Neil Horman
2010-05-19 8:20 ` Herbert Xu
2010-05-19 8:27 ` Eric Dumazet
2010-05-19 8:44 ` Herbert Xu
2010-05-19 20:14 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100520.224944.102694876.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=bmb@athenacr.com \
--cc=eric.dumazet@gmail.com \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
--cc=nhorman@redhat.com \
--cc=nhorman@tuxdriver.com \
--cc=tgraf@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).