[ovs-discuss] How does the kernel space and usespace receive netlink message

Ben Pfaff blp at nicira.com
Thu Mar 12 17:16:47 UTC 2015


Please don't drop the mailing list.

On Fri, Mar 13, 2015 at 12:04:45AM +0800, Vinllen Chen wrote:
> Thankyou for your reply, Ben! There are two derivative question:
> 1.Does the datapath also use multiple threads for receving netlink message ?

The kernel always processes Netlink messages in the same thread that
sent it.

> 2.So I can understand the receive process: Once receive a netlink message,
> the main thread will create a new thread to handle it???that means one thread
> for one connection?

No, that would be much too expensive.  Userspace maintains a fixed
thread pool.

> On Thu, Mar 12, 2015 at 11:38 PM, Ben Pfaff <blp at nicira.com> wrote:
> 
> > On Wed, Mar 11, 2015 at 07:14:05PM +0800, Vinllen Chen wrote:
> > >     When i read the source code of ovs, i found the userspace receives
> > > netlink message by epoll. But in the explanition of dpif.h, datapath
> > starts
> > > many threads to receiving netlink.
> > >     Could anybody give me a definite answer that how does the userspace
> > and
> > > kernel space receive netlink messages.
> >
> > epoll doesn't receive anything; it doesn't have any functionality for
> > receiving anything.
> >
> > Userspace uses netlink sockets to receive netlink messages from the
> > kernel.  It does use multiple threads for that.
> >



More information about the discuss mailing list