Skip site navigation (1)Skip section navigation (2)
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>&nbsp;</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>&nbsp;</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>&nbsp;<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>&nbsp;<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>