|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] Ehancement to domU suspend/resume
>From: Keir Fraser [mailto:keir@xxxxxxxxxxxxx]
>Sent: 2007年1月18日 15:04
>
>On 18/1/07 2:41 am, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:
>
>>> freeze_processes();
>>> device_suspend();
>>> device_power_down();
>
>>> device_power_up();
>>> device_resume();
>>> thaw_processes();
>
>Any idea what cost this adds for a non driver domain? In particular, what
>does freeze/thaw do?
>
> -- Keir
Freeze basically puts all other processes into a frozen point with no
lock held. For kernel thread, each one is required to check freezing
flag (by try_to_freeze) at each loop out of critical chunk, and then yield
or sleep if set. For user space process, a dummy signal notification is
sent to that process which will then check freezing flag when do_signal
before returning to user space. This can assure all processes falling
into a save point before drivers are ready to suspend. Thaw just does
the reverse to unfreeze them when resume.
Yes, it may have to wait some time for all processes to be frozen, and I
have no estimation. But it's a necessary step to put whole box into a
stable state. Is there any flag to check whether current domU is a driver
domain? Then we can differentiate two paths.
Thanks,
Kevin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|