[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Interrupt forwarding


  • To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
  • From: Jon Smirl <jonsmirl@xxxxxxxxx>
  • Date: Sun, 13 Mar 2005 11:49:23 -0500
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxxxx, Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, ian.pratt@xxxxxxxxxxxx
  • Delivery-date: Sun, 13 Mar 2005 19:38:00 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=lahG+5/WJ86cU2fVnCghRy6bO9WMo6iycwNHxXLz4H2xB0g1OZ2pe6YWtcm/SU4WRKgK5UczSmnBXL5R+breQVj5ic4x0lOW+XTYJ+pYobtL/gcTIJbZmGNH8R7nzu5IoFBOEOr9lK+vlww8KWbYMZK+bsOUAT9ebp1mcN8nNXo=
  • List-id: List for Xen developers <xen-devel.lists.sourceforge.net>

On Sun, 13 Mar 2005 16:01:19 +0000, Keir Fraser
<Keir.Fraser@xxxxxxxxxxxx> wrote:
> But Xen does support shared IRQs. They're not as good as a separate IRQ
> per device from an isolation pov, but would you really expect
> otherwise?

Does Xen require the IRQ handler to run in the supervisor or domain?
If it is in the domain and the domain dies, what do you do about the
interrupt that keeps interrupting because there is no more code to
acknowledge it? If you shut it off at the PIC you shut off all devices
on that interrupt.

A proposal was recently made on lkml that request_irq would also pass
in a structure that would enable the kernel to acknowledge the IRQ
without the handler being there. Xen could pass info like that from
the domain back to the supervisor. Then in the domain dies the
supervisor has the info needed to shut off the specific interrupt.

On Fri, 11 Mar 2005 19:14:13 +0000, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> I posted a proposal for this sometime ago because X has some uses for
> it. The idea being you'd pass a struct that describes
>
> 1.      What tells you an IRQ occurred on this device
> 2.      How to clear it
> 3.      How to enable/disable it.
>
> Something like
>
>         struct {
>                 u8 type;                /* 8, 16, 32  I/O or MMIO */
>                 u8 bar;                 /* PCI bar to use */
>                 u32 offset;             /* Into bar */
>                 u32 mask;               /* Bits to touch/compare */
>                 u32 value;              /* Value to check against/set */
>         }
>

It might useful to add this to the main kernel API, and then over time
modify all of the drivers to use it. If a driver does this it would be
safe to transparently move it to user space like in UML or xen.  I've
been told that PCI Express and MSI does not have this problem.



> 
>   -- Keir
> 
> 


-- 
Jon Smirl
jonsmirl@xxxxxxxxx


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.