Source-Changes archive

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

CVS commit: [jym-xensuspend] src/sys/arch



Module Name:    src
Committed By:   jym
Date:           Mon Feb  9 00:03:55 UTC 2009

Modified Files:
        src/sys/arch/x86/include [jym-xensuspend]: cpu.h
        src/sys/arch/x86/x86 [jym-xensuspend]: pmap.c
        src/sys/arch/xen/include [jym-xensuspend]: evtchn.h granttables.h
            hypervisor.h xen.h xenpmap.h
        src/sys/arch/xen/x86 [jym-xensuspend]: cpu.c hypervisor_machdep.c
            mainbus.c x86_xpmap.c xen_bus_dma.c
        src/sys/arch/xen/xen [jym-xensuspend]: clock.c evtchn.c hypervisor.c
            if_xennet_xenbus.c shutdown_xenbus.c xbd_xenbus.c xen_machdep.c
            xencons.c xengnt.c xennetback_xenbus.c
        src/sys/arch/xen/xenbus [jym-xensuspend]: xenbus_comms.c xenbus_comms.h
            xenbus_probe.c

Log Message:
Initial code for xen save/restore/migrate facilities.

- split the attach code of frontends in two half: one that is only needed
during autoconf(9) attach/detach phases, and one used at each save/restore
of device state (between suspend and resume).

Applies to hypervisor, xencons, xenbus, xbd, and xennet.

- add a rwlock(9) ("ptom_lock") to protect the different parts in the kernel
 that manipulate MFNs (which could change between a suspend and a resume,
without the kernel noticing it). Parts that require MFNs acquire a reader lock,
while suspend code will acquire a writer lock to ensure that no-other parts
in kernel still use MFNs.

- integrate the suspend code with sysmon.

- various things in pmap(9), and clock.

TODO:
- factorize code a bit more inside frontends drivers.
- remove all alternative recursive (APDP_PDE) mappings found in PD/PT during
suspend, as Xen does not support them.
- abstract the ptom_lock locking, it is only required when kernel preemption
is enabled, or on MP systems.

Current code works mostly. You may experience difficulties in some corner
cases (dom0 warnings about xennet interface errors, and Xen tools failing to
 validate NetBSD's alternative pmaps).


To generate a diff of this commit:
cvs rdiff -r1.10 -r1.10.2.1 src/sys/arch/x86/include/cpu.h
cvs rdiff -r1.77 -r1.77.2.1 src/sys/arch/x86/x86/pmap.c
cvs rdiff -r1.17 -r1.17.8.1 src/sys/arch/xen/include/evtchn.h
cvs rdiff -r1.6 -r1.6.6.1 src/sys/arch/xen/include/granttables.h
cvs rdiff -r1.29 -r1.29.4.1 src/sys/arch/xen/include/hypervisor.h
cvs rdiff -r1.30 -r1.30.8.1 src/sys/arch/xen/include/xen.h
cvs rdiff -r1.21 -r1.21.8.1 src/sys/arch/xen/include/xenpmap.h
cvs rdiff -r1.31 -r1.31.2.1 src/sys/arch/xen/x86/cpu.c
cvs rdiff -r1.11 -r1.11.8.1 src/sys/arch/xen/x86/hypervisor_machdep.c
cvs rdiff -r1.7 -r1.7.2.1 src/sys/arch/xen/x86/mainbus.c
cvs rdiff -r1.12 -r1.12.4.1 src/sys/arch/xen/x86/x86_xpmap.c
cvs rdiff -r1.14 -r1.14.2.1 src/sys/arch/xen/x86/xen_bus_dma.c
cvs rdiff -r1.49 -r1.49.2.1 src/sys/arch/xen/xen/clock.c
cvs rdiff -r1.42 -r1.42.2.1 src/sys/arch/xen/xen/evtchn.c
cvs rdiff -r1.43 -r1.43.2.1 src/sys/arch/xen/xen/hypervisor.c
cvs rdiff -r1.33 -r1.33.2.1 src/sys/arch/xen/xen/if_xennet_xenbus.c
cvs rdiff -r1.5 -r1.5.8.1 src/sys/arch/xen/xen/shutdown_xenbus.c
cvs rdiff -r1.38 -r1.38.2.1 src/sys/arch/xen/xen/xbd_xenbus.c
cvs rdiff -r1.4 -r1.4.12.1 src/sys/arch/xen/xen/xen_machdep.c
cvs rdiff -r1.31 -r1.31.2.1 src/sys/arch/xen/xen/xencons.c
cvs rdiff -r1.13 -r1.13.2.1 src/sys/arch/xen/xen/xengnt.c
cvs rdiff -r1.27 -r1.27.2.1 src/sys/arch/xen/xen/xennetback_xenbus.c
cvs rdiff -r1.12 -r1.12.2.1 src/sys/arch/xen/xenbus/xenbus_comms.c
cvs rdiff -r1.5 -r1.5.8.1 src/sys/arch/xen/xenbus/xenbus_comms.h
cvs rdiff -r1.27 -r1.27.2.1 src/sys/arch/xen/xenbus/xenbus_probe.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index