Now
bouyer-xenpvh commitmail json YAML
src/sys/arch/x86/include/cpu.h@1.117.4.6
/
diff
/
nxr@1.117.4.6
src/sys/arch/x86/include/cpuvar.h@1.51.10.1 / diff / nxr@1.51.10.1
src/sys/arch/x86/x86/cpu.c@1.181.4.3 / diff / nxr@1.181.4.3
src/sys/arch/x86/x86/mainbus.c@1.3.12.3 / diff / nxr@1.3.12.3
src/sys/arch/xen/include/hypervisor.h@1.49.10.3 / diff / nxr@1.49.10.3
src/sys/arch/xen/include/xen.h@1.44.8.1 / diff / nxr@1.44.8.1
src/sys/arch/xen/x86/cpu.c@1.133.4.1 / diff / nxr@1.133.4.1
src/sys/arch/xen/x86/hypervisor_machdep.c@1.36.8.4 / diff / nxr@1.36.8.4
src/sys/arch/xen/x86/xen_ipi.c@1.35.6.4 / diff / nxr@1.35.6.4
src/sys/arch/xen/x86/xen_mainbus.c@1.6.12.3 / diff / nxr@1.6.12.3
src/sys/arch/xen/xen/evtchn.c@1.88.2.5 / diff / nxr@1.88.2.5
src/sys/arch/xen/xen/hypervisor.c@1.73.2.6 / diff / nxr@1.73.2.6
src/sys/arch/xen/xen/xen_clock.c@1.1.2.3 / diff / nxr@1.1.2.3
src/sys/arch/x86/include/cpuvar.h@1.51.10.1 / diff / nxr@1.51.10.1
src/sys/arch/x86/x86/cpu.c@1.181.4.3 / diff / nxr@1.181.4.3
src/sys/arch/x86/x86/mainbus.c@1.3.12.3 / diff / nxr@1.3.12.3
src/sys/arch/xen/include/hypervisor.h@1.49.10.3 / diff / nxr@1.49.10.3
src/sys/arch/xen/include/xen.h@1.44.8.1 / diff / nxr@1.44.8.1
src/sys/arch/xen/x86/cpu.c@1.133.4.1 / diff / nxr@1.133.4.1
src/sys/arch/xen/x86/hypervisor_machdep.c@1.36.8.4 / diff / nxr@1.36.8.4
src/sys/arch/xen/x86/xen_ipi.c@1.35.6.4 / diff / nxr@1.35.6.4
src/sys/arch/xen/x86/xen_mainbus.c@1.6.12.3 / diff / nxr@1.6.12.3
src/sys/arch/xen/xen/evtchn.c@1.88.2.5 / diff / nxr@1.88.2.5
src/sys/arch/xen/xen/hypervisor.c@1.73.2.6 / diff / nxr@1.73.2.6
src/sys/arch/xen/xen/xen_clock.c@1.1.2.3 / diff / nxr@1.1.2.3
Add PVHVM multiprocessor support:
We need the hypervisor to be set up before cpus attaches.
Move hypervisor setup to a new function xen_hvm_init(), called at the
beggining of mainbus_attach(). This function searches the cfdata[] array
to see if the hypervisor device is enabled (so you can disable PV
support with
disable hypervisor
from userconf).
For HVM, ci_cpuid doens't match the virtual CPU index needed by Xen.
Introduce ci_vcpuid to cpu_info. Introduce xen_hvm_init_cpu(), to be
called for each CPU in in its context, which initialize ci_vcpuid and
ci_vcpu, and setup the event callback.
Change Xen code to use ci_vcpuid.
Do not call lapic_calibrate_timer() for VM_GUEST_XENPVHVM, we will use
Xen timers.
Don't call lapic_initclocks() from cpu_hatch(); instead set
x86_cpu_initclock_func to lapic_initclocks() in lapic_calibrate_timer(),
and call *(x86_cpu_initclock_func)() from cpu_hatch().
Also call x86_cpu_initclock_func from cpu_attach() for the boot CPU.
As x86_cpu_initclock_func is called for all CPUs, x86_initclock_func can
be a NOP for lapic timer.
Reorganize Xen code for x86_initclock_func/x86_cpu_initclock_func.
Move x86_cpu_idle_xen() to hypervisor_machdep.c
We need the hypervisor to be set up before cpus attaches.
Move hypervisor setup to a new function xen_hvm_init(), called at the
beggining of mainbus_attach(). This function searches the cfdata[] array
to see if the hypervisor device is enabled (so you can disable PV
support with
disable hypervisor
from userconf).
For HVM, ci_cpuid doens't match the virtual CPU index needed by Xen.
Introduce ci_vcpuid to cpu_info. Introduce xen_hvm_init_cpu(), to be
called for each CPU in in its context, which initialize ci_vcpuid and
ci_vcpu, and setup the event callback.
Change Xen code to use ci_vcpuid.
Do not call lapic_calibrate_timer() for VM_GUEST_XENPVHVM, we will use
Xen timers.
Don't call lapic_initclocks() from cpu_hatch(); instead set
x86_cpu_initclock_func to lapic_initclocks() in lapic_calibrate_timer(),
and call *(x86_cpu_initclock_func)() from cpu_hatch().
Also call x86_cpu_initclock_func from cpu_attach() for the boot CPU.
As x86_cpu_initclock_func is called for all CPUs, x86_initclock_func can
be a NOP for lapic timer.
Reorganize Xen code for x86_initclock_func/x86_cpu_initclock_func.
Move x86_cpu_idle_xen() to hypervisor_machdep.c