I heard that windows 8 have change its boot process to a hybrid mood. In which it shutdowns the user applications and hibernates the kernel and device drivers[1]. Can the same be introduce in Linux kernel? [1] http://www.zdnet.com/windows-8-hybrid-mode-brings-faster-boot-3040093896/ -- Be Happy Always +919579650250
On 2012-08-04 10:56:38 (+0530), Kumar Sukhani <kumarsukhani@gmail.com> wrote:
I heard that windows 8 have change its boot process to a hybrid mood. In which it shutdowns the user applications and hibernates the kernel and device drivers[1].
The question "Why on earth would you want that?" comes to mind. I guess you get faster hibernation if you don't need to write all of the memory state to disk, but still... Even then you only gain a little on core services startup. I'd infer that they have serious architectural issues if this saves them a lot of startup time. After all, hibernation (i.e. suspend to disk) means they need to re-start the kernel and drivers completely anyway.
Can the same be introduce in Linux kernel?
I'm sure it's possible. In fact, I think you can probably script it with a little help from consolekit/gnome or something like that. Mostly I don't see the point. Regards, Kristof
On Sat, Aug 4, 2012 at 7:53 PM, Kristof Provost <kristof@sigsegv.be> wrote:
On 2012-08-04 10:56:38 (+0530), Kumar Sukhani <kumarsukhani@gmail.com> wrote:
I heard that windows 8 have change its boot process to a hybrid mood. In which it shutdowns the user applications and hibernates the kernel and device drivers[1].
The question "Why on earth would you want that?" comes to mind.
I guess you get faster hibernation if you don't need to write all of the memory state to disk, but still...
Even then you only gain a little on core services startup. I'd infer that they have serious architectural issues if this saves them a lot of startup time. After all, hibernation (i.e. suspend to disk) means they need to re-start the kernel and drivers completely anyway.
I had a doubt for long regarding hibernation. It takes a very long time to resume from hibernation in Linux compared to windows. Why this happens? Why should all the drivers be started again? Just we can load the disk driver and some essential part of the kernel, disk driver (or only few drivers necessary for reading the hibernate image) and use the drivers stored in the disk (from hibernation image) for rest of the devices. Will this help in anyway? I guess this may reduce the resume time. P.S: I am a hard core fan of Linux and I am stating the limitation here so that it can be rectified and not anything against Linux developers - I too want to become a Linux kernel developer but it is still a long way. Thanks, Sannu K
Can the same be introduce in Linux kernel?
I'm sure it's possible. In fact, I think you can probably script it with a little help from consolekit/gnome or something like that.
Mostly I don't see the point.
Regards, Kristof
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On 2012-08-04 20:53:00 (+0530), Sannu K <sannumail4foss@gmail.com> wrote:
I had a doubt for long regarding hibernation. It takes a very long time to resume from hibernation in Linux compared to windows.
I don't actually have a windows machine to compare. It's quite possible that this is true, but I can't say why it'd be the case.
Why should all the drivers be started again? Just we can load the disk driver and some essential part of the kernel, disk driver (or only few drivers necessary for reading the hibernate image) and use the drivers stored in the disk (from hibernation image) for rest of the devices. When resuming from hibernation all devices were powered down. The kernel needs to run through all of the initialisation code again. It needs to upload firmware, set configuration registers, ...
Regards, Kristof
On Sat, Aug 4, 2012 at 9:04 PM, Kristof Provost <kristof@sigsegv.be> wrote:
On 2012-08-04 20:53:00 (+0530), Sannu K <sannumail4foss@gmail.com> wrote:
I had a doubt for long regarding hibernation. It takes a very long time to resume from hibernation in Linux compared to windows.
I don't actually have a windows machine to compare. It's quite possible that this is true, but I can't say why it'd be the case.
Is it possible to determine the reason for more time in hibernation compared to windows (or profile the resume time)? If possible I could do it in my machine and get some info which may be useful. Some one may jump to solve this (or there may be some magic tweak to get a better resume time) once it is profiled.
Why should all the drivers be started again? Just we can load the disk driver and some essential part of the kernel, disk driver (or only few drivers necessary for reading the hibernate image) and use the drivers stored in the disk (from hibernation image) for rest of the devices. When resuming from hibernation all devices were powered down. The kernel needs to run through all of the initialisation code again. It needs to upload firmware, set configuration registers, ...
That makes sense. Does that mean during hibernation the state of drivers will not be preserved? Will the driver code be discarded without saving in hibernation image (as we are starting the driver again while resuming)? Thanks, Sannu K
Regards, Kristof
On 2012-08-04 21:15:15 (+0530), Sannu K <sannumail4foss@gmail.com> wrote:
Is it possible to determine the reason for more time in hibernation compared to windows (or profile the resume time)? If possible I could do it in my machine and get some info which may be useful. Some one may jump to solve this (or there may be some magic tweak to get a better resume time) once it is profiled.
Possibly. I haven't looked at the details of the Linux hibernation subsystem. Take a look at Documentation/power/basic-pm-debugging.txt for a basic introduction.
Why should all the drivers be started again? Just we can load the disk driver and some essential part of the kernel, disk driver (or only few drivers necessary for reading the hibernate image) and use the drivers stored in the disk (from hibernation image) for rest of the devices. When resuming from hibernation all devices were powered down. The kernel needs to run through all of the initialisation code again. It needs to upload firmware, set configuration registers, ...
That makes sense. Does that mean during hibernation the state of drivers will not be preserved?
That's correct.
Will the driver code be discarded without saving in hibernation image (as we are starting the driver again while resuming)?
Again, I'm not an expert, but I see no reason to preserve the driver state (or perhaps even the rest of the kernel state). I believe the kernel doesn't even distinguish between a normal boot and a resume from hibernation until just before it starts userspace. Regards, Kristof
On Sat, Aug 4, 2012 at 9:33 PM, Kristof Provost <kristof@sigsegv.be> wrote:
On 2012-08-04 21:15:15 (+0530), Sannu K <sannumail4foss@gmail.com> wrote:
Is it possible to determine the reason for more time in hibernation compared to windows (or profile the resume time)? If possible I could do it in my machine and get some info which may be useful. Some one may jump to solve this (or there may be some magic tweak to get a better resume time) once it is profiled.
Possibly. I haven't looked at the details of the Linux hibernation subsystem. Take a look at Documentation/power/basic-pm-debugging.txt for a basic introduction.
Sure I will take a look.
Why should all the drivers be started again? Just we can load the disk driver and some essential part of the kernel, disk driver (or only few drivers necessary for reading the hibernate image) and use the drivers stored in the disk (from hibernation image) for rest of the devices. When resuming from hibernation all devices were powered down. The kernel needs to run through all of the initialisation code again. It needs to upload firmware, set configuration registers, ...
That makes sense. Does that mean during hibernation the state of drivers will not be preserved?
That's correct.
Will the driver code be discarded without saving in hibernation image (as we are starting the driver again while resuming)?
Again, I'm not an expert, but I see no reason to preserve the driver state (or perhaps even the rest of the kernel state). I believe the kernel doesn't even distinguish between a normal boot and a resume from hibernation until just before it starts userspace.
That's a new info I have got :)
Regards, Kristof
Thanks, Sannu K
hey Sannu, are you interested in doing some research in hibernation in linux? because I am planning to work on linux hiberntion, if we can do some improvement in that. -- Be Happy Always +919579650250
On Sat, Aug 4, 2012 at 11:20 PM, Kumar Sukhani <kumarsukhani@gmail.com> wrote:
hey Sannu, are you interested in doing some research in hibernation in linux? because I am planning to work on linux hiberntion, if we can do some improvement in that.
-- Be Happy Always +919579650250
Hi Kumar, I will be glad to provide my support as much as possible. I don't have much idea on how kernel power management subsystem works. So I may not be up to your speed but I can help you for sure. What kind of research you are planning to work on? My best wishes for you. Thanks and Regards, Sannu K
participants (3)
-
Kristof Provost -
Kumar Sukhani -
Sannu K