From: boris.ostrovsky@oracle.com
To: Anchal Agarwal <anchalag@amazon.com>,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
hpa@zytor.com, x86@kernel.org, jgross@suse.com,
linux-pm@vger.kernel.org, linux-mm@kvack.org, kamatam@amazon.com,
sstabellini@kernel.org, konrad.wilk@oracle.com,
roger.pau@citrix.com, axboe@kernel.dk, davem@davemloft.net,
rjw@rjwysocki.net, len.brown@intel.com, pavel@ucw.cz,
peterz@infradead.org, eduval@amazon.com, sblbir@amazon.com,
xen-devel@lists.xenproject.org, vkuznets@redhat.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
dwmw@amazon.co.uk, benh@kernel.crashing.org
Subject: Re: [PATCH v3 01/11] xen/manage: keep track of the on-going suspend mode
Date: Sun, 13 Sep 2020 11:43:30 -0400 [thread overview]
Message-ID: <4b2bbc8b-7817-271a-4ff0-5ee5df956049@oracle.com> (raw)
In-Reply-To: <9b970e12491107afda0c1d4a6f154b52d90346ac.1598042152.git.anchalag@amazon.com>
On 8/21/20 6:25 PM, Anchal Agarwal wrote:
> From: Munehisa Kamata <kamatam@amazon.com>
>
> Guest hibernation is different from xen suspend/resume/live migration.
> Xen save/restore does not use pm_ops as is needed by guest hibernation.
> Hibernation in guest follows ACPI path and is guest inititated , the
> hibernation image is saved within guest as compared to later modes
> which are xen toolstack assisted and image creation/storage is in
> control of hypervisor/host machine.
> To differentiate between Xen suspend and PM hibernation, keep track
> of the on-going suspend mode by mainly using a new API to keep track of
> SHUTDOWN_SUSPEND state.
> Introduce a simple function that keeps track of on-going suspend mode
> so that PM hibernation code can behave differently according to the
> current suspend mode.
> Since Xen suspend doesn't have corresponding PM event, its main logic
> is modfied to acquire pm_mutex.
lock_system_sleep() is not taking this mutex.
>
> Though, accquirng pm_mutex is still right thing to do, we may
> see deadlock if PM hibernation is interrupted by Xen suspend.
> PM hibernation depends on xenwatch thread to process xenbus state
> transactions, but the thread will sleep to wait pm_mutex which is
> already held by PM hibernation context in the scenario. Xen shutdown
> code may need some changes to avoid the issue.
Is it Xen's shutdown or suspend code that needs to address this? (Or I
may not understand what the problem is that you are describing)
>
> +
> +static int xen_pm_notifier(struct notifier_block *notifier,
> + unsigned long pm_event, void *unused)
> +{
> + int ret;
> +
> + switch (pm_event) {
> + case PM_SUSPEND_PREPARE:
> + case PM_HIBERNATION_PREPARE:
> + /* Guest hibernation is not supported for aarch64 currently*/
> + if (IS_ENABLED(CONFIG_ARM64)) {
> + ret = NOTIFY_BAD;
> + break;
> + }
Indentation.
> + case PM_RESTORE_PREPARE:
> + case PM_POST_SUSPEND:
> + case PM_POST_HIBERNATION:
> + case PM_POST_RESTORE:
> + default:
> + ret = NOTIFY_OK;
> + }
> + return ret;
> +};
This whole routine now is
if (IS_ENABLED(CONFIG_ARM64))
return NOTIFY_BAD;
return NOTIFY_OK;
isn't it?
> +
> +static struct notifier_block xen_pm_notifier_block = {
> + .notifier_call = xen_pm_notifier
> +};
> +
> +static int xen_setup_pm_notifier(void)
> +{
> + if (!xen_hvm_domain() || xen_initial_domain())
> + return -ENODEV;
I don't think this works anymore.
In the past your notifier would set suspend_mode (or something) but now
it really doesn't do anything except reports an error in some (ARM) cases.
So I think you should move this check into the notifier.
(And BTW I still think PM_SUSPEND_PREPARE should return an error too.
The fact that we are using "suspend" in xen routine names is irrelevant)
-boris
> + return register_pm_notifier(&xen_pm_notifier_block);
> +}
> +
next prev parent reply other threads:[~2020-09-13 15:44 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-21 22:22 [PATCH v3 00/11] Fix PM hibernation in Xen guests Anchal Agarwal
2020-08-21 22:25 ` [PATCH v3 01/11] xen/manage: keep track of the on-going suspend mode Anchal Agarwal
2020-09-13 15:43 ` boris.ostrovsky [this message]
2020-09-14 21:47 ` Anchal Agarwal
2020-09-15 0:24 ` boris.ostrovsky
2020-09-15 18:00 ` Anchal Agarwal
2020-09-15 19:58 ` boris.ostrovsky
2020-09-21 21:54 ` Anchal Agarwal
2020-09-22 16:18 ` boris.ostrovsky
2020-09-22 23:17 ` Anchal Agarwal
2020-09-25 19:04 ` Anchal Agarwal
2020-09-25 20:02 ` boris.ostrovsky
2020-09-25 22:28 ` Anchal Agarwal
2020-09-28 18:49 ` boris.ostrovsky
2020-09-30 21:29 ` Anchal Agarwal
2020-10-01 12:43 ` boris.ostrovsky
2021-05-21 5:26 ` Anchal Agarwal
2021-05-25 22:23 ` Boris Ostrovsky
2021-05-26 4:40 ` Anchal Agarwal
2021-05-26 18:29 ` Boris Ostrovsky
2021-05-28 21:50 ` Anchal Agarwal
2021-06-01 14:18 ` Boris Ostrovsky
2021-06-02 19:37 ` Anchal Agarwal
2021-06-03 20:11 ` Boris Ostrovsky
2021-06-03 23:27 ` Anchal Agarwal
2021-06-04 1:49 ` Boris Ostrovsky
2020-09-13 17:07 ` boris.ostrovsky
2020-08-21 22:26 ` [PATCH v3 02/11] xenbus: add freeze/thaw/restore callbacks support Anchal Agarwal
2020-09-13 16:11 ` boris.ostrovsky
2020-09-15 19:56 ` Anchal Agarwal
2020-08-21 22:26 ` [PATCH v3 03/11] x86/xen: Introduce new function to map HYPERVISOR_shared_info on Resume Anchal Agarwal
2020-08-21 22:27 ` [PATCH v3 04/11] x86/xen: add system core suspend and resume callbacks Anchal Agarwal
2020-09-13 17:25 ` boris.ostrovsky
2020-08-21 22:27 ` [PATCH v3 05/11] genirq: Shutdown irq chips in suspend/resume during hibernation Thomas Gleixner
2020-08-22 0:36 ` Thomas Gleixner
2020-08-24 17:25 ` Anchal Agarwal
2020-08-25 13:20 ` Christoph Hellwig
2020-08-25 15:25 ` Thomas Gleixner
2020-08-21 22:28 ` [PATCH v3 06/11] xen-blkfront: add callbacks for PM suspend and hibernation Anchal Agarwal
2020-08-21 22:29 ` [PATCH v3 07/11] xen-netfront: " Anchal Agarwal
2020-08-21 22:29 ` [PATCH v3 08/11] x86/xen: save and restore steal clock during PM hibernation Anchal Agarwal
2020-08-21 22:30 ` [PATCH v3 09/11] xen: Introduce wrapper for save/restore sched clock offset Anchal Agarwal
2020-08-21 22:30 ` [PATCH v3 10/11] xen: Update sched clock offset to avoid system instability in hibernation Anchal Agarwal
2020-09-13 17:52 ` boris.ostrovsky
2020-08-21 22:31 ` [PATCH v3 11/11] PM / hibernate: update the resume offset on SNAPSHOT_SET_SWAP_AREA Anchal Agarwal
2020-08-28 18:26 ` [PATCH v3 00/11] Fix PM hibernation in Xen guests Anchal Agarwal
2020-08-28 18:29 ` Rafael J. Wysocki
2020-08-28 18:39 ` Anchal Agarwal
2020-09-11 20:44 ` Anchal Agarwal
2020-09-11 15:19 ` boris.ostrovsky
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=4b2bbc8b-7817-271a-4ff0-5ee5df956049@oracle.com \
--to=boris.ostrovsky@oracle.com \
--cc=anchalag@amazon.com \
--cc=axboe@kernel.dk \
--cc=benh@kernel.crashing.org \
--cc=bp@alien8.de \
--cc=davem@davemloft.net \
--cc=dwmw@amazon.co.uk \
--cc=eduval@amazon.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=kamatam@amazon.com \
--cc=konrad.wilk@oracle.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=roger.pau@citrix.com \
--cc=sblbir@amazon.com \
--cc=sstabellini@kernel.org \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox