On 16/12/20 16:12, Michael Roth wrote:
It looks like it does save us ~20-30 cycles vs. vmload, but maybe not
enough to justify the added complexity. Additionally, since we still
need to call vmload when we exit to userspace, it ends up being a bit
slower for this particular workload at least. So for now I'll plan on
sticking to vmload'ing after vmexit and moving that to the asm code
if there are no objections.

Yeah, agreed. BTW you can use "./x86/run x86/vmexit.flat" from kvm-unit-tests to check the numbers for a wide range of vmexit paths.

Paolo

current v2 patch, sample 1
   ioctl entry: 1204722748832
   pre-run:     1204722749408 ( +576)
   post-run:    1204722750784 (+1376)
   ioctl exit:  1204722751360 ( +576)
   total cycles:         2528

current v2 patch, sample 2
   ioctl entry: 1204722754784
   pre-vmrun:   1204722755360 ( +576)
   post-vmrun:  1204722756720 (+1360)
   ioctl exit:  1204722757312 ( +592)
   total cycles          2528

wrgsbase, sample 1
   ioctl entry: 1346624880336
   pre-vmrun:   1346624880912 ( +576)
   post-vmrun:  1346624882256 (+1344)
   ioctl exit:  1346624882912 ( +656)
   total cycles          2576

wrgsbase, sample 2
   ioctl entry: 1346624886272
   pre-vmrun:   1346624886832 ( +560)
   post-vmrun:  1346624888176 (+1344)
   ioctl exit:  1346624888816 ( +640)
   total cycles:         2544


Reply via email to