lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 5 May 2015 18:21:25 +0100
From:	David Vrabel <david.vrabel@...rix.com>
To:	"Ouyang Zhaowei (Charles)" <ouyangzhaowei@...wei.com>,
	Boris Ostrovsky <boris.ostrovsky@...cle.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
CC:	<linux-kernel@...r.kernel.org>,
	Dingweiping <weiping.ding@...wei.com>,
	Yanqiangjun <yanqiangjun@...wei.com>, <jinjian@...wei.com>
Subject: Re: [RESEND PATCH] xen: vcpu_info would be reset to wrong place on
 canceled suspend on PVOPS VM which has multi-cpu

On 05/05/15 14:19, Ouyang Zhaowei (Charles) wrote:
> 
> 
> On 2015.5.5 17:09, David Vrabel wrote:
>> On 04/05/15 03:56, Ouyang Zhaowei (Charles) wrote:
>>> The hypervisor continues assuming that vcpu_info is stored in per-cpu data which was set up by xen_vcpu_setup(),
>>> while on canceled suspend, the call to xen_hvm_init_shared_info() will now make the guest think that vcpu_info
>>> is in the shared page, so we do not call xen_hvm_init_shared_info() on suspend canceled.
>>
>> I don't understand what the impact of this fix is.  Can you include this
>> in the commit message?
>>
>> David
> 
> Sure, please let me know if there is anything not clear enough.
> 
> vcpu_info would be reset to wrong place on canceled suspend on PVOPS VM which has multi-cpu
> 
> The hypervisor continues assuming that vcpu_info is stored in per-cpu data which was set up by xen_vcpu_setup(),
> while on canceled suspend, the call to xen_hvm_init_shared_info() will make the guest think that vcpu_info
> is in the shared page. This will cause non-boot cpus keep checking a wrong vcpu_info address and can not handle
> irqs any more after suspend canceled, for example after we do "xl save -c/restore", PVOPS VM can not be resumed
> as the cpus can not finish their irqs.

Ok, so it's only cancelled suspends that are affected.  Can you make the
clear in the commit and resubmit.  This looks like something that should
be tagged for stable as well.

David

> 
>>
>>> Signed-off-by: Charles Ouyang <ouyangzhaowei@...wei.com>
>>> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@...cle.com>
>>> ---
>>>  arch/x86/xen/suspend.c | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
>>> index d949769..b2bed45 100644
>>> --- a/arch/x86/xen/suspend.c
>>> +++ b/arch/x86/xen/suspend.c
>>> @@ -32,7 +32,8 @@ static void xen_hvm_post_suspend(int suspend_cancelled)
>>>  {
>>>  #ifdef CONFIG_XEN_PVHVM
>>>         int cpu;
>>> -       xen_hvm_init_shared_info();
>>> +       if (!suspend_cancelled)
>>> +               xen_hvm_init_shared_info();
>>>         xen_callback_vector();
>>>         xen_unplug_emulated_devices();
>>>         if (xen_feature(XENFEAT_hvm_safe_pvclock)) {
>>>
>>
>>
>> .
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ