public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* User Level I/O
@ 2005-02-22 16:59 Michael Raymond
  2005-02-22 18:20 ` Robin Holt
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Michael Raymond @ 2005-02-22 16:59 UTC (permalink / raw)
  To: linux-ia64

    Some embedded and I/O intensive applications prefer to do most of their
I/O processing work in user space.  They can do this through PIOs and
mmap'ing their device registers.  I'd like to present a feature that will
allow them to handle interrupts in user space as well.
    SGI's User Level Interrupt (ULI) feature allows applications to safely
do interrupt processing with user space handler functions.  Applications get
a high degree of control and a quick response (~3us) while ensuring that
things like segfaults or infinite loops in the handler won't take down the
OS.  More information can be found at http://oss.sgi.com/projects/uli/.
    I have ULI patches for IA64 on 2.6.10 and 2.6.11-rc4.  On the web page
you can also find a support library, documentation, and very simple sample
applications.  The feature definitely isn't done yet but it's ready for
people to start playing with.  In particular, the code for handling infinite
loops and supporting debugging is incomplete and the assembly needs to be
cleaned up.
    Please take a look at this and let me know what you guys think.  We'd
like to get this integrated in 6.5.12 or soon after.
     	    	 	       	      	      	    Thanks,
						    	   Michael
-- 
Michael A. Raymond              Office: (651) 683-3434
Core OS Group                   Real-Time System Software

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

* Re: User Level I/O
  2005-02-22 16:59 User Level I/O Michael Raymond
@ 2005-02-22 18:20 ` Robin Holt
  2005-02-22 22:18 ` Peter Chubb
  2005-02-22 23:01 ` Michael Raymond
  2 siblings, 0 replies; 4+ messages in thread
From: Robin Holt @ 2005-02-22 18:20 UTC (permalink / raw)
  To: linux-ia64

On Tue, Feb 22, 2005 at 10:59:57AM -0600, Michael Raymond wrote:
> like to get this integrated in 6.5.12 or soon after.

Slipping back into Linux numbers, 2.6.12.

Thanks,
Robin

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

* Re: User Level I/O
  2005-02-22 16:59 User Level I/O Michael Raymond
  2005-02-22 18:20 ` Robin Holt
@ 2005-02-22 22:18 ` Peter Chubb
  2005-02-22 23:01 ` Michael Raymond
  2 siblings, 0 replies; 4+ messages in thread
From: Peter Chubb @ 2005-02-22 22:18 UTC (permalink / raw)
  To: linux-ia64

>>>>> "Robin" = Robin Holt <holt@sgi.com> writes:

Robin> On Tue, Feb 22, 2005 at 10:59:57AM -0600, Michael Raymond
Robin> wrote:
>> like to get this integrated in 6.5.12 or soon after.

Robin> Slipping back into Linux numbers, 2.6.12.

How does this compare with the user-level interrupts stuff I've done?

http://www.gelato.unsw.edu.au/IA64wiki/UserLevelDrivers


-- 
Dr Peter Chubb  http://www.gelato.unsw.edu.au  peterc AT gelato.unsw.edu.au
The technical we do immediately,  the political takes *forever*

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

* Re: User Level I/O
  2005-02-22 16:59 User Level I/O Michael Raymond
  2005-02-22 18:20 ` Robin Holt
  2005-02-22 22:18 ` Peter Chubb
@ 2005-02-22 23:01 ` Michael Raymond
  2 siblings, 0 replies; 4+ messages in thread
From: Michael Raymond @ 2005-02-22 23:01 UTC (permalink / raw)
  To: linux-ia64

    Your project appears to wrap user I/O functionality together nicely.  I
hadn't looked at it in a while but I'll try to come up to speed on it.
    Where your work appears to differ is that you explicitly use a thread
for handling interrupts whereas ULIs run on whatever thread was running when
the interrupt came in.  Specifically, code running on the interrupt stack
twiddles the TLBs so that the address space of the process that registered
the ULI is addressable from the CPU.  It then RFI's into user space, runs
the handler, returns to the kernel, and resets the VM info.  Depending on
the scheduling load, ULIs can offer much better responsiveness.
    I think that both approaches have their place.
      	    	      		      	    	  	Michael

On Wed, Feb 23, 2005 at 09:18:44AM +1100, Peter Chubb wrote:
> How does this compare with the user-level interrupts stuff I've done?
> 
> http://www.gelato.unsw.edu.au/IA64wiki/UserLevelDrivers
> 
> 
> -- 
> Dr Peter Chubb  http://www.gelato.unsw.edu.au  peterc AT gelato.unsw.edu.au
> The technical we do immediately,  the political takes *forever*

-- 
Michael A. Raymond              Office: (651) 683-3434
Core OS Group                   Real-Time System Software

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

end of thread, other threads:[~2005-02-22 23:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-22 16:59 User Level I/O Michael Raymond
2005-02-22 18:20 ` Robin Holt
2005-02-22 22:18 ` Peter Chubb
2005-02-22 23:01 ` Michael Raymond

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