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.
prev parent 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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®