'repz' instruction not supported.

Neel Natu neelnatu at gmail.com
Fri Nov 21 19:22:09 UTC 2014


Hi Ashutosh,

On Fri, Nov 21, 2014 at 2:07 AM, Ashutosh Kumar <mrashutosh at hotmail.com> wrote:
> Yes you are right 'repz' prefixes is added to the ‘cmps’ and 'scas'
> instructions.
>
> The actual opcode is “F3 A5” which is ‘rep movs’ (disassembly is showing
> ‘repz’).
>
>
>
> Yes the guest is emitting these instructions to access MMIO (local apic)
>

Bummer.

I was hoping that it was a prefix stuck by the compiler for
optimization (that could be ignored):
http://repzret.org/p/repzret/

In any case, the primitives you will need to emulate MOVS exist in
vmm_instruction_emul.c. I don't have any plans to work on this but
would be happy to review/submit the patch that does the emulation.

best
Neel

>
>
> Regards
> Ashutosh
>
>
>> Date: Fri, 21 Nov 2014 00:08:15 -0800
>> Subject: Re: 'repz' instruction not supported.
>> From: neelnatu at gmail.com
>> To: mrashutosh at hotmail.com
>> CC: freebsd-virtualization at freebsd.org
>
>>
>> Hi Ashutosh,
>>
>> On Wed, Nov 19, 2014 at 10:30 PM, Ashutosh Kumar <mrashutosh at hotmail.com>
>> wrote:
>> > Hi
>> > We have found that emulation of 'repz' instruction is not supported in
>> > bhyve. This is causing VM_EXIT for Guest OS. Do we have plans to add support
>> > for instructions like 'repz'.
>> >
>>
>> 'repz' is actually an instruction prefix. The two instructions with
>> which 'repz' is allowed are 'cmps' and 'scas'. Both these instructions
>> typically don't need to be emulated since they operate on strings in
>> "regular" guest memory.
>>
>> Is your guest emitting these instructions to access MMIO? Can you
>> share an objdump with the offending instructions?
>>
>> best
>> Neel
>>
>> > RegardsAshutosh
>> > _______________________________________________
>> > freebsd-virtualization at freebsd.org mailing list
>> > http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
>> > To unsubscribe, send any mail to
>> > "freebsd-virtualization-unsubscribe at freebsd.org"


More information about the freebsd-virtualization mailing list