From: Chen Yu <yu.c.chen@intel.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>, Pavel Machek <pavel@ucw.cz>
Cc: Linux PM <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Len Brown <len.brown@intel.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] PM / hibernate: Introduce snapshot test mode for hibernation
Date: Thu, 14 Jul 2016 18:44:49 +0800 [thread overview]
Message-ID: <57876D21.8050003@intel.com> (raw)
In-Reply-To: <CAJZ5v0g5EC7gnYUpxnNUTOZhLP+xQxpWAcZYmKfZkq35xziotg@mail.gmail.com>
Hi,
On 2016年07月14日 06:18, Rafael J. Wysocki wrote:
> On Thu, Jul 14, 2016 at 12:00 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
>> On Wed, Jul 13, 2016 at 11:45 PM, Pavel Machek <pavel@ucw.cz> wrote:
>>> On Wed 2016-07-13 22:44:24, Rafael J. Wysocki wrote:
>>>> On Wed, Jul 13, 2016 at 10:26 PM, Pavel Machek <pavel@ucw.cz> wrote:
>>>>> On Wed 2016-07-13 22:04:27, Rafael J. Wysocki wrote:
>>>>>> On Wed, Jul 13, 2016 at 7:01 PM, Pavel Machek <pavel@ucw.cz> wrote:
>>>>>>> Hi!
>>>>>>>
>>>>>>>>>> and then swapon the swap device, and do a testing. This should be safer?
>>>>>>>>> Yeah, that's the way. Read-only root is other option.
>>>>>>>>>
>>>>>>>>>>> I guess updating documentation would be welcome from my side,
>>>>>>>>>>> otherwise it should be ok.
>>>>>>>>>> OK, I'll update the documents.
>>>>>>>>> Just add fat warning into the documentation.
>>>>>>>> OK.
>>>>>>> Actually... If you could add
>>>>>>>
>>>>>>> printk(KERN_ALERT "Hibernation image written. If you have any
>>>>>>> filesystems mounted read-write and attempt to resume, you'll corrupt
>>>>>>> your data. To prevent that, remove the hibernation image.\n")
>>>>>>>
>>>>>>> ...I guess that would save someone's filesystem. (Yes, very high
>>>>>>> loglevel. If you attempt to do this from anything else then singleuser
>>>>>>> or initrd, you are asking for problems, so... lets make sure user sees
>>>>>>> it.)
>>>>>> Please see the new version of this patch:
>>>>>> https://patchwork.kernel.org/patch/9226837/
>>>>> New version changes nothing, right? You still need to be sure
>>>>> filesystems are not mounted r/w. So I would still like to see printk()
>>>>> with warning.
>>>> It shouldn't matter how they are mounted, because the contents of
>>>> persistent storage don't change.
>>> @@ -721,6 +724,9 @@ int hibernate(void)
>>> atomic_inc(&snapshot_device_available);
>>> Unlock:
>>> unlock_system_sleep();
>>> + if (snapshot_test)
>>> + software_resume();
>>> +
>>> return error;
>>> }
>>>
>>> Aha, I see, immediate wakeup here. Makes sense. ... ...
>>>
>>> No.
>>>
>>> AFAICT, freezer is used in hibernation_snapshot, which means at
>>> Unlock:, kernel threads are running; software_resume() freezes them
>>> again, but they had chance to run and potentially corrupt the
>>> persistent storage... right?
>> OK, there is a bug.
>>
>> The thawing of user space is potentially dangerous, so in the
>> "snapshot" test mode hibernate() should just call
>> free_basic_memory_bitmaps() and from there invoke the code below the
>> Check_image label in software_resume(), roughly.
> Or rather call free_basic_memory_bitmaps() and
> unlock_device_hotplug(), then do swsusp_check() and invoke the code
> starting with the "PM: Loading hibernation image.\n" message in
> software_resume().
OK, I've used this solution and sent a v3 out.
thanks!
>
> Thanks,
> Rafael
prev parent reply other threads:[~2016-07-14 10:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-07 6:40 [PATCH] PM / hibernate: Introduce snapshot test mode for hibernation Chen Yu
2016-07-13 9:50 ` Pavel Machek
2016-07-13 10:20 ` Chen Yu
2016-07-13 10:21 ` Pavel Machek
2016-07-13 10:39 ` Chen Yu
2016-07-13 17:01 ` Pavel Machek
2016-07-13 20:04 ` Rafael J. Wysocki
2016-07-13 20:26 ` Pavel Machek
2016-07-13 20:44 ` Rafael J. Wysocki
2016-07-13 21:45 ` Pavel Machek
2016-07-13 22:00 ` Rafael J. Wysocki
2016-07-13 22:18 ` Rafael J. Wysocki
2016-07-14 10:44 ` Chen Yu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57876D21.8050003@intel.com \
--to=yu.c.chen@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.