All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tommy Reynolds <reynolds@redhat.com>
To: "Chris Friesen" <cfriesen@nortelnetworks.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: recommended method for hardware to report events to userspace?
Date: Wed, 19 Jun 2002 11:15:55 -0500	[thread overview]
Message-ID: <20020619111555.1abc950e.reynolds@redhat.com> (raw)
In-Reply-To: <3D10A017.C22CDD0D@nortelnetworks.com>

Uttered "Chris Friesen" <cfriesen@nortelnetworks.com>, spoke thus:

> I'm doing some work on a SONET PHY and I was wondering what the recommended
> method is for asynchronously reporting events to userspace.
> 
> I have some non-critical events (correctable ecc errors, etc) that I poll
> every once in a while, but there are some critical events (loss of signal, for
> instance) that I want to report immediately.
> 
> What is the usual way of doing this?  I see three possibilities: 1) the
> userspace app could register its pid with the driver using ioctl() and on a
> fault the interrupt handler in the driver could fire off a signal to the
> registered pids to alert them that something happened, at which point they do
> another ioctl() to find out exactly what it was,  2) use netlink to provide a
> socket-based notification of what happened,  3) provide a file descriptor that
> becomes readable when an event happens.
> 
> What's the Right Thing to do here?

There's no One Right Way to do this.  Here's my suggested feature
hierarchy:

1) Provide a "/proc" file system entry so humans can easily see your
driver's status.  It's easy to make a simple read-only "/proc" file.

2) Implement a "poll" method in your device driver that simply blocks
until one of your anomalous events occurs.  Applications can then do
a standard select(2) system call to detect these events.  Select(2)
is quite efficient.  After the select(2) returns, then a simple
read(2) could get the data.

3) Implement a "mmap" method in your device driver so that
applications could just map in a status buffer.

4) You could use signals, but these take more handshaking
infrastructure via ioctl's between the driver and applications than
do these other suggestions.

      reply	other threads:[~2002-06-19 16:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-19 15:15 recommended method for hardware to report events to userspace? Chris Friesen
2002-06-19 16:15 ` Tommy Reynolds [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020619111555.1abc950e.reynolds@redhat.com \
    --to=reynolds@redhat.com \
    --cc=cfriesen@nortelnetworks.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.