xen-devel
[Xen-devel] RE: Avoid alloc for xsave before xsave_init
To: |
Keir Fraser <keir@xxxxxxx>, "Huang2, Wei" <Wei.Huang2@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx> |
Subject: |
[Xen-devel] RE: Avoid alloc for xsave before xsave_init |
From: |
"Wei, Gang" <gang.wei@xxxxxxxxx> |
Date: |
Fri, 14 Jan 2011 13:20:26 +0800 |
Accept-language: |
zh-CN, en-US |
Acceptlanguage: |
zh-CN, en-US |
Cc: |
"Wei, Gang" <gang.wei@xxxxxxxxx> |
Delivery-date: |
Thu, 13 Jan 2011 21:23:00 -0800 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<C9551BFA.11CEB%keir@xxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<EE335F95F28A664DB4A21289D2AA053BB50CA381@xxxxxxxxxxxxxxxxxxx> <C9551BFA.11CEB%keir@xxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
Thread-index: |
AcuzUojLeS2z6tQSQCO88b+hMX2tAQAC+pjAAAIkzIwAEIzTQA== |
Thread-topic: |
Avoid alloc for xsave before xsave_init |
Keir Fraser wrote on 2011-01-14:
> On 13/01/2011 20:21, "Huang2, Wei" <Wei.Huang2@xxxxxxx> wrote:
>> Was the issue caused by the uninitialized variable xsave_cntxt_size,
>> triggering problem for _xmalloc()? If so, one solution is to set
>> xsave_cntxt_size=576 (the default value after reset) as a default
>> value. When
>> xsave_alloc_save_area() is called for idel VCPU, _xmalloc() will
>> initialize
>> 576 bytes. Idle domain doesn't change xcr0 from my understanding. So
>> its xcr0 is XSTATE_FP_SSE all the time.
>
> Idle domain isn't using FPU,SSE,AVX or any such extended state and
> doesn't need it saved. Xsave_{alloc,free}_save_area() should
> test-and-exit on is_idle_vcpu(), and our context switch code should
> not be doing XSAVE when switching out an idle vcpu (I hope this is the
> case already, as it would be a pointless waste of time).
I agree that do test-and-exit on is_idle_vcpu() in
Xsave_{alloc,free}_save_area. Further, We'd better add
assert(xsave_cntxt_size>=576) after the test-and-exit clause to ensure no
buffer overflow will happen in the future.
I reviewed the context switch code and assure context switch code not be doing
XSAVE when switching out an idle vcpu.
Jimmy
>> -----Original Message-----
>> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Wei,
>> Gang
>> Sent: Thursday, January 13, 2011 12:49 PM
>> To: xen-devel@xxxxxxxxxxxxxxxxxxx
>> Cc: Keir Fraser; Wei, Gang
>> Subject: [Xen-devel] Avoid alloc for xsave before xsave_init
>>
>> While debugging some weird booting failure bugs, just found
>> currently, xsave_alloc_save_area will be called in
>> init_idle_domain->scheduler_init->alloc_vcpu->vcpu_initialise calls,
>> it is earlier than xsave_init called in identity_cpu(). This may
>> causing buffer overflow on xmem_pool. I am thinking about how to fix it.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|