From: Juergen Gross <juergen.gross@ts.fujitsu.com>
To: Ben Guthro <benjamin.guthro@citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH] x86/S3: Fix cpu pool scheduling after suspend/resume
Date: Tue, 09 Apr 2013 14:57:02 +0200 [thread overview]
Message-ID: <5164101E.6010907@ts.fujitsu.com> (raw)
In-Reply-To: <1365511601-31522-1-git-send-email-benjamin.guthro@citrix.com>
On 09.04.2013 14:46, Ben Guthro wrote:
> This review is another S3 scheduler problem with the system_state variable introduced with the following changeset:
> http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=269f543ea750ed567d18f2e819e5d5ce58eda5c5
>
> Specifically, the cpu_callback function that takes the CPU down during suspend, and back up during resume.
> We were seeing situations where, after S3, only CPU0 was in cpupool0. Guest performance suffered greatly, since all vcpus were only on a single pcpu. Guests under high CPU load showed the problem much more quickly than an idle guest.
>
> Removing this if condition forces the CPUs to go through the expected online/offline state, and be properly scheduled after S3.
>
> This also includes a necessary partial change proposed earlier by Tomasz Wroblewski here:
> http://lists.xen.org/archives/html/xen-devel/2013-01/msg02206.html
>
> It should also resolve the issues discussed in this thread:
> http://lists.xen.org/archives/html/xen-devel/2012-11/msg01801.html
>
> Signed-off-by: Ben Guthro<benjamin.guthro@citrix.com>
> ---
> xen/common/cpu.c | 3 +++
> xen/common/cpupool.c | 5 -----
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/xen/common/cpu.c b/xen/common/cpu.c
> index 630881e..e20868c 100644
> --- a/xen/common/cpu.c
> +++ b/xen/common/cpu.c
> @@ -5,6 +5,7 @@
> #include<xen/init.h>
> #include<xen/sched.h>
> #include<xen/stop_machine.h>
> +#include<xen/sched-if.h>
>
> unsigned int __read_mostly nr_cpu_ids = NR_CPUS;
> #ifndef nr_cpumask_bits
> @@ -212,6 +213,8 @@ void enable_nonboot_cpus(void)
> BUG_ON(error == -EBUSY);
> printk("Error taking CPU%d up: %d\n", cpu, error);
> }
> + if (system_state == SYS_STATE_resume)
> + cpumask_set_cpu(cpu, cpupool0->cpu_valid);
This might solve YOUR problem, but reintroduces the problem why the original
change was done: ALL cpus will be in cpupool0 after resume!
So: NAK
Juergen
--
Juergen Gross Principal Developer Operating Systems
PBG PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com
Domagkstr. 28 Internet: ts.fujitsu.com
D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html
next prev parent reply other threads:[~2013-04-09 12:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-09 12:46 [PATCH] x86/S3: Fix cpu pool scheduling after suspend/resume Ben Guthro
2013-04-09 12:57 ` Juergen Gross [this message]
2013-04-09 13:04 ` Ben Guthro
2013-04-09 13:12 ` Juergen Gross
2013-04-09 13:17 ` Jan Beulich
2013-04-09 15:30 ` George Dunlap
2013-04-10 8:56 ` Jan Beulich
2013-04-09 13:03 ` Jan Beulich
2013-04-09 13:17 ` Ben Guthro
2013-04-09 14:00 ` Jan Beulich
2013-04-09 14:52 ` Keir Fraser
2013-04-15 12:33 ` Ben Guthro
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=5164101E.6010907@ts.fujitsu.com \
--to=juergen.gross@ts.fujitsu.com \
--cc=benjamin.guthro@citrix.com \
--cc=xen-devel@lists.xen.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 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.