|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [for-4.7] x86/emulate: synchronize LOCKed instruction emulation
>>> Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> 04/14/16 5:45 PM >>>
>On 04/14/2016 06:40 PM, Jan Beulich wrote:
>> To be honest, just having remembered that we do the write back for locked
>> instructions using CMPXCHG, I'd first of all like to see a proper description
>> of "the _whole_ issue".
>
>I believe at least part of the issue has to do with the comment on line
>1013 from xen/arch/x86/hvm/emulate.c:
>
>994 static int hvmemul_cmpxchg(
>995 enum x86_segment seg,
>996 unsigned long offset,
>997 void *p_old,
>998 void *p_new,
>999 unsigned int bytes,
>1000 struct x86_emulate_ctxt *ctxt)
>1001 {
>1002 struct hvm_emulate_ctxt *hvmemul_ctxt =
>1003 container_of(ctxt, struct hvm_emulate_ctxt, ctxt);
>1004
>1005 if ( unlikely(hvmemul_ctxt->set_context) )
>1006 {
>1007 int rc = set_context_data(p_new, bytes);
>1008
>1009 if ( rc != X86EMUL_OKAY )
>1010 return rc;
>1011 }
>1012
>1013 /* Fix this in case the guest is really relying on r-m-w atomicity. */
>1014 return hvmemul_write(seg, offset, p_new, bytes, ctxt);
>1015 }
Ah, so _that's_ where the problem wants to be fixed then (leaving - afaict -
PV emulation paths completely unaffected).
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |