Date: Tue, 12 Jun 2001 18:39:03 +0530 From: "Anjali Kulkarni" <anjali@indranetworks.com> To: "Josh Osborne" <stripes@mac.com> Cc: <hackers@freebsd.org> Subject: Re: User-Level upcalls Message-ID: <043f01c0f340$dbf95160$0a64a8c0@indranetworks.com> References: <200106121221.FAA16567@smtpout.mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. ------=_NextPart_000_043A_01C0F36E.F3F648D0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Thanks a lot for the info. But how can I use poll and select to make the = kernel call the user-upcall? Poll and select will run in user-mode and = will take processor cycles in busy waiting. I want an event-driven = mechanism in which kernel will automatically call the upcall(like an = interrupt) when it receives a data packet at the TCP layer, to avoid = polling in user code to check if data has arrived at the socket.=20 I will read about kqueues, and fcntl which I dont know much about:) Thanks, Anjali ----- Original Message -----=20 From: Josh Osborne=20 To: Anjali Kulkarni=20 Sent: Tuesday, June 12, 2001 5:50 PM Subject: Re: User-Level upcalls On Tuesday, June 12, 2001, at 05:34 AM, Anjali Kulkarni wrote: hi, =20 Does any one know how to perform user-level upcalls from kernel = TCP/IP stack? If I wanted to get an upcall every time a data packet = arrived on a socket, how can it be done? Can I use signal handlers for = this? =20 Thanks, Anjali kqueue is the nicest interface, but new and not as portable as others. poll and select are more traditional, and popular. you can also try fcntl's O_ASYNC flag, but I have never used it. ------=_NextPart_000_043A_01C0F36E.F3F648D0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT face=3DArial size=3D2> <DIV><FONT face=3DArial size=3D2>Hi,</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Thanks a lot for the info. But how can = I use poll=20 and select to make the kernel call the user-upcall? Poll and select will = run in=20 user-mode and will take processor cycles in busy waiting. I want an = event-driven=20 mechanism in which kernel will automatically call the upcall(like an = interrupt)=20 when it receives a data packet at the TCP layer, to avoid polling in = user code=20 to check if data has arrived at the socket. </FONT></DIV> <DIV><FONT face=3DArial size=3D2>I will read about kqueues, and fcntl = which I dont=20 know much about:)</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Thanks,</FONT></DIV> <DIV><FONT face=3DArial size=3D2>Anjali</FONT></DIV></FONT></DIV> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: = 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"> <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV> <DIV=20 style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: = black"><B>From:</B>=20 <A href=3D"mailto:stripes@mac.com" title=3Dstripes@mac.com>Josh = Osborne</A> </DIV> <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20 href=3D"mailto:anjali@indranetworks.com" = title=3Danjali@indranetworks.com>Anjali=20 Kulkarni</A> </DIV> <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Tuesday, June 12, 2001 = 5:50=20 PM</DIV> <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: User-Level = upcalls</DIV> <DIV><BR></DIV>On Tuesday, June 12, 2001, at 05:34 AM, Anjali Kulkarni = wrote:<BR><BR> <BLOCKQUOTE><?fontfamily><?param = Arial><?smaller>hi,<?/smaller><?/fontfamily><BR> <BR><?fontfamily><?= param Arial><?smaller>Does=20 any one know how to perform user-level upcalls from kernel TCP/IP = stack? If=20 I wanted to get an upcall every time a data packet arrived on a = socket, how=20 can it be done? Can I use signal handlers for=20 this?<?/smaller><?/fontfamily><BR> <BR><?fontfamily><?param = Arial><?smaller>Thanks,<?/smaller><?/fontfamily><BR><?fontfamily><?param = Arial><?smaller>Anjali<?/smaller><?/fontfamily><BR></BLOCKQUOTE><BR><BR>k= queue=20 is the nicest interface, but new and not as portable as = others.<BR>poll and=20 select are more traditional, and popular.<BR>you can also try fcntl's = O_ASYNC=20 flag, but I have never used it.</BLOCKQUOTE></BODY></HTML> ------=_NextPart_000_043A_01C0F36E.F3F648D0-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?043f01c0f340$dbf95160$0a64a8c0>