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

RE: [Xen-ia64-devel] consoles, iosapics, and device interrupts



On Thu, 2005-11-17 at 08:36 -0800, Magenheimer, Dan (HP Labs Fort
Collins) wrote:
> First patch (hpsim_cons) committed.  I'll try to get the
> 8250 config removal out in the next round of config file
> changes.

   Ok, careful not to make the console unusable.  As you once mentioned
to me, getting the output twice is better than not at all.  Likewise,
getting the output twice is better than an output only console ;^)

> Any further thinking on the console input issue?

   I haven't had as much time to spend on it as I'd like.  Adding
iosapic support to the hypervisor isn't terribly difficult.  There are
several problems with setting up the interrupt though:
      * PCDP info is fairly unreliable for getting proper
        trigger/polarity data.  ACPI namespace would be preferred for
        non-PCI UARTs.  We don't currently start ACPI namespace, nor am
        I convinced we want to.
      * IOSAPICs are parsed late in the hypervisor bootup.  There's a
        timing issue with setting up the RTE at the right point in the
        boot.  We can call ns16550_init() more than once for a port, but
        that's pretty ugly.
      * With all of the above hacked to defaults for my box, once I add
        the serial_init_postirq() call, the hypervisor locks up :(

I know I need to go look at the IRQ handler and add a filter for this
interrupt line (I think there may have been a patch to the ml to do
this), but I thought I'd better get up to speed on things like Bjerke's
thesis before I rock the boat too much.  A fall back polling mechanism
in ns16550 might be an easier first step.

   I also need to go back and further digest the threads Kevin
referenced, but I'm thinking we'll likely need to virtualize the IOSAPIC
RTEs to the domains.  This would probably entail creating a custom MADT
for each privileged domain exporting an RTE namespace that requires
hypervisor callbacks to interact with (the IOSAPIC windowing access
needs to be serialized somewhere).  Unfortunately, if we are to carve up
RTEs based on PCI devices, we're going to need to get at the PCI Routing
Tables (_PRTs) in ACPI namespace.  Getting ACPI namespace running
probably isn't that difficult, but it's a huge mass of code to add to
the hypervisor :(

        Alex  

-- 
Alex Williamson                             HP Linux & Open Source Lab


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

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