On 09/04/18 10:28, Jan Beulich wrote:
>>>> On 04.04.18 at 08:07, <jgr...@suse.com> wrote:
>> On 03/04/18 19:48, Juergen Gross wrote:
>>> On 19/03/18 14:37, Jan Beulich wrote:
>>>> Introduce a synthetic feature flag to use alternative instruction
>>>> patching to NOP out all code on entry/exit paths. Having NOPs here is
>>>> generally better than using conditional branches.
>>>> Also change the limit on the number of bytes we can patch in one go to
>>>> that resulting from the encoding in struct alt_instr - there's no point
>>>> reducing it below that limit, and without a check being in place that
>>>> the limit isn't actually exceeded, such an artificial boundary is a
>>>> latent risk.
>>>> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>>> Just did a parallel make of the hypervisor with and without the patch,
>>> with xpti=true and with xpti=false (values in braces are stddev).
>> The unpatched version was configured differently than the patched one.
>> So the real numbers are:
>> elapsed system user
>> unpatched, xpti=false: 89.96 ( 8.07) 97.05 ( 5.69) 178.64 ( 2.39)
>> unpatched, xpti=true : 113.42 ( 9.80) 165.99 (15.10) 180.99 ( 2.66)
>> patched, xpti=false: 90.65 ( 6.63) 99.50 (14.79) 180.35 ( 5.97)
>> patched, xpti=true : 111.69 ( 9.93) 163.63 (13.05) 181.22 ( 3.71)
>> So the XPTI case is a little bit faster with the patch, while the
>> non-XPTI case is a little bit slower.
> That's rather counterintuitive a result.
OTOH the standard deviation is not really small, so it might be the
performance difference is just below noise level.
Xen-devel mailing list