On Wednesday 27 April 2005 00:32, Evgeniy Polyakov wrote:
> On Wed, 2005-04-27 at 00:16 -0500, Dmitry Torokhov wrote:
> > On Tuesday 26 April 2005 23:06, Evgeniy Polyakov wrote:
> > > Let's clarify that we are talking about userspace->kernelspace
> > > direction.
> > > Only for that messages callback path is invoked.
> > What about kernelspace->userspace or kernelspace->kernelspace?
> > From what I see nothing stops kernel code from calling cn_netlink_send,
> > in fact your cbus does exactly that. So I am confused why you singled
> > out userspace->kernelspace direction.
> You miunderstand the code -
> cn_netlink_send() never ends up in callback invocation,
> it can only deliver messages in kernelspace->userspace direction.
> kernelspace->userspace direction ends up adding buffer into
> socket queue, from which userspace may read data using recv() system
Yes, you are right, sorry. I missed the fact that message is not injected
into callback queue. Hmm, might be useful if it was, for implementing
various kinds of in-kernel notifications.
Other thing to consider - even if there is explicit schedule on userspace->
kernelspace path there is no quarantee that connector thread will be
scheduled before userspace - userspace could be higher-priority bursty task.
Although this scenario it not likely I guess.