public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: select-like implementation for kernel sockets
       [not found] <1178449075.942407.164040@q75g2000hsh.googlegroups.com>
@ 2007-05-06 17:18 ` Robert Hancock
  2007-05-07  6:57   ` kalash nainwal
  0 siblings, 1 reply; 3+ messages in thread
From: Robert Hancock @ 2007-05-06 17:18 UTC (permalink / raw)
  To: eitanr, linux-kernel

eitanr@audiocodes.com wrote:
> Hi,
> 
> I'm using kernel sockets to Tx and Rx UDP packets between my hardware
> device (DSP) to the external network (this is part of a VoIP
> implementation). The motivation for using kernel sockets rather than
> user-space sockets is to avoid the copying of data between kernel and
> user spaces.

I think we are zero-copy in many cases for UDP these days, so this 
doesn't necessarily buy you anything..

> 
> I have no problems on the Tx side (I simply call sock_sendmsg on one
> of the sockets), but for the Rx side I want to listen-in on multiple
> sockets in blocking mode (I don't want to use polling).
> 
> Is there a way to listen-in on multiple kernel sockets from one kernel
> thread? In the user space I would have used select(), but I am not
> familiar with a similar solution for the kernel space.
> 
> Thanks,
> Eitan.
> 
> Eitan Richardson
> AudioCodes Ltd.
> 

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: select-like implementation for kernel sockets
  2007-05-06 17:18 ` select-like implementation for kernel sockets Robert Hancock
@ 2007-05-07  6:57   ` kalash nainwal
  2007-05-07  8:04     ` Eitan Richardson
  0 siblings, 1 reply; 3+ messages in thread
From: kalash nainwal @ 2007-05-07  6:57 UTC (permalink / raw)
  To: Robert Hancock; +Cc: eitanr, linux-kernel

On 5/6/07, Robert Hancock <hancockr@shaw.ca> wrote:
> eitanr@audiocodes.com wrote:
> > Hi,
> >
> > I'm using kernel sockets to Tx and Rx UDP packets between my hardware
> > device (DSP) to the external network (this is part of a VoIP
> > implementation). The motivation for using kernel sockets rather than
> > user-space sockets is to avoid the copying of data between kernel and
> > user spaces.
>
> I think we are zero-copy in many cases for UDP these days, so this
> doesn't necessarily buy you anything..
>
> >
> > I have no problems on the Tx side (I simply call sock_sendmsg on one
> > of the sockets), but for the Rx side I want to listen-in on multiple
> > sockets in blocking mode (I don't want to use polling).
> >
> > Is there a way to listen-in on multiple kernel sockets from one kernel
> > thread? In the user space I would have used select(), but I am not
> > familiar with a similar solution for the kernel space.
> >

implementing (sock->)sk_data_ready() might serve your purpose?

> > Thanks,
> > Eitan.
> >
> > Eitan Richardson
> > AudioCodes Ltd.
> >
>
> --
> Robert Hancock      Saskatoon, SK, Canada
> To email, remove "nospam" from hancockr@nospamshaw.ca
> Home Page: http://www.roberthancock.com/
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: select-like implementation for kernel sockets
  2007-05-07  6:57   ` kalash nainwal
@ 2007-05-07  8:04     ` Eitan Richardson
  0 siblings, 0 replies; 3+ messages in thread
From: Eitan Richardson @ 2007-05-07  8:04 UTC (permalink / raw)
  To: kalash nainwal, Robert Hancock; +Cc: linux-kernel

Hi,

Thanks for the tip.
I understand sk_data_ready is a callback that is called when there is
data ready in the socket.

Is it safe to override it?
Do you have an example?

Thanks,
Eitan.

-----Original Message-----
From: kalash nainwal [mailto:kalash.nainwal@gmail.com] 
Sent: Monday, May 07, 2007 9:57 AM
To: Robert Hancock
Cc: Eitan Richardson; linux-kernel
Subject: Re: select-like implementation for kernel sockets
Importance: Low

On 5/6/07, Robert Hancock <hancockr@shaw.ca> wrote:
> eitanr@audiocodes.com wrote:
> > Hi,
> >
> > I'm using kernel sockets to Tx and Rx UDP packets between my
hardware
> > device (DSP) to the external network (this is part of a VoIP
> > implementation). The motivation for using kernel sockets rather than
> > user-space sockets is to avoid the copying of data between kernel
and
> > user spaces.
>
> I think we are zero-copy in many cases for UDP these days, so this
> doesn't necessarily buy you anything..
>
> >
> > I have no problems on the Tx side (I simply call sock_sendmsg on one
> > of the sockets), but for the Rx side I want to listen-in on multiple
> > sockets in blocking mode (I don't want to use polling).
> >
> > Is there a way to listen-in on multiple kernel sockets from one
kernel
> > thread? In the user space I would have used select(), but I am not
> > familiar with a similar solution for the kernel space.
> >

implementing (sock->)sk_data_ready() might serve your purpose?

> > Thanks,
> > Eitan.
> >
> > Eitan Richardson
> > AudioCodes Ltd.
> >
>
> --
> Robert Hancock      Saskatoon, SK, Canada
> To email, remove "nospam" from hancockr@nospamshaw.ca
> Home Page: http://www.roberthancock.com/
>
> -
> To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-05-07  8:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1178449075.942407.164040@q75g2000hsh.googlegroups.com>
2007-05-06 17:18 ` select-like implementation for kernel sockets Robert Hancock
2007-05-07  6:57   ` kalash nainwal
2007-05-07  8:04     ` Eitan Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox