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

Re: [Xen-devel] [PATCH] x86/emul: Calculate not_64bit during instruction decode



>>> On 16.01.17 at 11:49, <andrew.cooper3@xxxxxxxxxx> wrote:
> ... rather than repeating "generate_exception_if(mode_64bit(), EXC_UD);" in
> the emulation switch statement.
> 
> Bloat-o-meter shows:
> 
>   add/remove: 0/0 grow/shrink: 1/2 up/down: 8/-495 (-487)
>   function                                     old     new   delta
>   per_cpu__state                                98     106      +8
>   x86_decode                                  6782    6726     -56
>   x86_emulate                                57160   56721    -439
> 
> The reason for x86_decode() getting smaller is that this change alters the
> x86_decode_onebyte() switch statement from a chain of if()/else's to a jump
> table.  The jump table adds 250 bytes of data which bloat-o-meter clearly
> can't see.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

> I am also considering doing similar for vcpu cpuid checks, to split apart the
> logic deciding on the feature to check from the emulation logic.  This will
> simplify some of the larger blocks, especially the mov emulation.

Not sure about this one, specifically also in the context of the
SSEn/AVX support work I'm doing right now (where individual insn
variants have different CPUID dependencies).

Jan


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

 


Rackspace

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