[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH] x86: Add a new physdev_op PHYSDEVOP_nr_irqs_gsi
>>> On 10.04.12 at 17:50, Lin Ming <mlin@xxxxxxxxxxxxx> wrote: > On Tue, 2012-04-10 at 16:33 +0100, Jan Beulich wrote: >> >>> On 10.04.12 at 17:13, Lin Ming <mlin@xxxxxxxxxxxxx> wrote: >> > This new physdev_op is added for Linux guest kernel to get the correct >> > nr_irqs_gsi value. >> >> I'm not convinced this is really needed - the kernel can work out the >> right number without any hypercall afaict. > > In Linux kernel: > > mp_register_ioapic(...): > > entries = io_apic_get_redir_entries(idx); > gsi_cfg = mp_ioapic_gsi_routing(idx); > gsi_cfg->gsi_base = gsi_base; > gsi_cfg->gsi_end = gsi_base + entries - 1; > > /* > * The number of IO-APIC IRQ registers (== #pins): > */ > ioapics[idx].nr_registers = entries; > > if (gsi_cfg->gsi_end >= gsi_top) > gsi_top = gsi_cfg->gsi_end + 1; > > io_apic_get_redir_entries calls io_apic_read(), which returns wrong > value(0xFFFFFFFF) on Xen Dom0 kernel. I understand all of the above. > How can we get the correct gsi_top value, which is used to set > nr_irqs_gsi, without hypercall? > > The problem here is we don't have a Xen version of io_apic_read in Linux > kernel. Meaning you need to craft one if you need one, the more that struct io_apic_ops already exists. The traditional kernel was able to do so quite fine, and hence didn't need any hypercall. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |