18 Jul, 2007
3 commits
-
Implement a Xen back-end for hvc console.
* * *
Add early printk support via hvc console, enable using
"earlyprintk=xen" on the kernel command line.From: Gerd Hoffmann
Signed-off-by: Jeremy Fitzhardinge
Signed-off-by: Chris Wright
Acked-by: Ingo Molnar
Acked-by: Olof Johansson -
This is a fairly straightforward Xen implementation of smp_ops.
Xen has its own IPI mechanisms, and has no dependency on any
APIC-based IPI. The smp_ops hooks and the flush_tlb_others pv_op
allow a Xen guest to avoid all APIC code in arch/i386 (the only apic
operation is a single apic_read for the apic version number).One subtle point which needs to be addressed is unpinning pagetables
when another cpu may have a lazy tlb reference to the pagetable. Xen
will not allow an in-use pagetable to be unpinned, so we must find any
other cpus with a reference to the pagetable and get them to shoot
down their references.Signed-off-by: Jeremy Fitzhardinge
Signed-off-by: Chris Wright
Cc: Benjamin LaHaise
Cc: Ingo Molnar
Cc: Andi Kleen -
Xen implements interrupts in terms of event channels. Each guest
domain gets 1024 event channels which can be used for a variety of
purposes, such as Xen timer events, inter-domain events,
inter-processor events (IPI) or for real hardware IRQs.Within the kernel, we map the event channels to IRQs, and implement
the whole interrupt handling using a Xen irq_chip.Rather than setting NR_IRQ to 1024 under PARAVIRT in order to
accomodate Xen, we create a dynamic mapping between event channels and
IRQs. Ideally, Linux will eventually move towards dynamically
allocating per-irq structures, and we can use a 1:1 mapping between
event channels and irqs.Signed-off-by: Jeremy Fitzhardinge
Signed-off-by: Chris Wright
Cc: Ingo Molnar
Cc: Eric W. Biederman