xen: SMP guest support
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 <jeremy@xensource.com> Signed-off-by:
Chris Wright <chrisw@sous-sol.org> Cc: Benjamin LaHaise <bcrl@kvack.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Andi Kleen <ak@suse.de>
Showing
- arch/i386/xen/Kconfig 1 addition, 1 deletionarch/i386/xen/Kconfig
- arch/i386/xen/Makefile 2 additions, 0 deletionsarch/i386/xen/Makefile
- arch/i386/xen/enlighten.c 89 additions, 26 deletionsarch/i386/xen/enlighten.c
- arch/i386/xen/events.c 79 additions, 1 deletionarch/i386/xen/events.c
- arch/i386/xen/mmu.c 52 additions, 17 deletionsarch/i386/xen/mmu.c
- arch/i386/xen/mmu.h 13 additions, 0 deletionsarch/i386/xen/mmu.h
- arch/i386/xen/setup.c 5 additions, 0 deletionsarch/i386/xen/setup.c
- arch/i386/xen/smp.c 407 additions, 0 deletionsarch/i386/xen/smp.c
- arch/i386/xen/time.c 9 additions, 4 deletionsarch/i386/xen/time.c
- arch/i386/xen/xen-ops.h 25 additions, 0 deletionsarch/i386/xen/xen-ops.h
- include/xen/events.h 23 additions, 4 deletionsinclude/xen/events.h
Loading
Please register or sign in to comment