[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Possible problem emulating movntq, movss


  • To: Jan Beulich <JBeulich@xxxxxxxx>
  • From: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
  • Date: Wed, 06 Aug 2014 13:39:25 +0300
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, keir@xxxxxxx, "xen-devel@xxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxx>
  • Comment: DomainKeys? See http://domainkeys.sourceforge.net/
  • Delivery-date: Wed, 06 Aug 2014 10:39:49 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=bitdefender.com; b=yyIefXRl+uGUUa/KUANuwTVL1nTttE52rdJjMk34ygz1tYNVWhYyx1AFJf+AC6Jz5InygdPzqTm5H9dF6f1k9mjCRr/Sw5IAdCqdTIz+mExv4cd5I26ufuB5vlbYbImHQjs4k3keT524jdEqfp+L0cx/VNesy8zlWaOR70dkFxkdMGcc8flPgRlERx3W18G6f8+i4IW47/Ukl30+pBvTnz59JsNQPTo996OZ+VD2ayuqT5K9C7XbuIoQG4vY6s9W5+C+b1i7r+j2gi27OyugWszuH/HvEhTLdWeWCXe+VYzMIDS6MDqq1l3DRBE6oUwt9xCdkmfE5M25ixmiatWq4A==; h=Received:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding:X-BitDefender-Scanner:X-BitDefender-Spam:X-BitDefender-SpamStamp:X-BitDefender-CF-Stamp;
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

On 08/06/2014 12:54 PM, Jan Beulich wrote:
>>>> On 06.08.14 at 10:57, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
>> We found that our HVM guests froze when trying to emulate movntq
>> instructions. The solution seems to be to replace "goto done;" with
>> "break;" at line 4191 (when handling "case 0x7f:") in
>> xen/arch/x86/x86_emulate/x86_emulate.c. Otherwise the writeback part
>> doesn't happen.
>>
>> If you're happy with the fix I can prepare a patch, otherwise please let
>> me know if we're missing something.
> 
> No, that doesn't look right: There's nothing left to be written back at
> that point (registers get updated with the instruction executed via the
> on-stack stub, and memory gets written with immediately preceding
> ops->write(). So without you being more specific about _what_ you
> see going wrong I don't think I can give further advice.

I understand. My colleague and fellow xen-devel subscriber Andrei Lutas
has found the issue and the solution, and will reply with more details.

> Furthermore what you write is kind of inconsistent: For one, opcode
> 0x7f is movq/movdq[au] rather than movntdq (admitted they're
> being handled by the same code block, but you ought to be rather
> precise here). And then the subject of your mail mentions movss, but
> the body doesn't at all - is that because you mean the same would
> apply to that other similar code block?

Indeed, my assumptions were exactly those: movq/movdq[au] is handled in
the same code block (it is, in fact, arguably the beginning of said code
block) as movntdq, and movss seems to be handled in the same manner
("goto done;" vs "break;"), and if I understood Andrei correctly, poses
the same problem.


Thanks,
Razvan Cojocaru

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.