Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Nov 2014 11:22:06 -0800
From:      Neel Natu <neelnatu@gmail.com>
To:        Ashutosh Kumar <mrashutosh@hotmail.com>
Cc:        "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org>
Subject:   Re: 'repz' instruction not supported.
Message-ID:  <CAFgRE9GFuYQMcJOrQKjNbB1UFhFEYtWvnmGBwpfrLP=wN1FU7w@mail.gmail.com>
In-Reply-To: <SNT150-W9ABC2BDA289ECE6910E56DF770@phx.gbl>
References:  <SNT150-W871C393630F3047CD01F1DF760@phx.gbl> <CAFgRE9F6MgjdMqz-kT3hvgB6YDwrxijoEVnGBFJfahK5mNpRrA@mail.gmail.com> <SNT150-W9ABC2BDA289ECE6910E56DF770@phx.gbl>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Ashutosh,

On Fri, Nov 21, 2014 at 2:07 AM, Ashutosh Kumar <mrashutosh@hotmail.com> wr=
ote:
> Yes you are right 'repz' prefixes is added to the =E2=80=98cmps=E2=80=99 =
and 'scas'
> instructions.
>
> The actual opcode is =E2=80=9CF3 A5=E2=80=9D which is =E2=80=98rep movs=
=E2=80=99 (disassembly is showing
> =E2=80=98repz=E2=80=99).
>
>
>
> 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@gmail.com
>> To: mrashutosh@hotmail.com
>> CC: freebsd-virtualization@freebsd.org
>
>>
>> Hi Ashutosh,
>>
>> On Wed, Nov 19, 2014 at 10:30 PM, Ashutosh Kumar <mrashutosh@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 s=
upport
>> > 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@freebsd.org mailing list
>> > http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
>> > To unsubscribe, send any mail to
>> > "freebsd-virtualization-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFgRE9GFuYQMcJOrQKjNbB1UFhFEYtWvnmGBwpfrLP=wN1FU7w>