Re: [RFC PATCH 0/4] Add support for ARMv8.6 TWED feature

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

 



Hi all,

Sorry for the delay. I have been testing the TWED feature performance
lately. We select unixbench as the benchmark for some items of it is lock-intensive(fstime/fsbuffer/fsdisk). We run unixbench on a 4-VCPU VM, and bind every two VCPUs on one PCPU. Fixed TWED value is used and here is the result.

     twed_value   | fstime        | fsbuffer   | fsdisk
    --------------+---------------+------------+------------
     disable      | 16.0          | 14.1       | 18.0
     0            | 16.3          | 13.5       | 17.2
     1            | 17.5          | 14.7       | 17.4
     2            | 17.3          | 15.3       | 18.0
     3            | 17.7          | 15.2       | 18.9
     4            | 17.9          | 14.3       | 18.2
     5            | 17.2          | 14.1       | 19.0
     6            | 5.8           | 4.2        | 5.7
     7            | 6.2           | 5.6        | 12.8

Note:
fstime: File Copy 1024 bufsize 2000 maxblocks
fsbuffer: File Copy 256 bufsize 500 maxblocks
fsdisk: File Copy 4096 bufsize 8000 maxblocks
The index of unixbench, higher is better.

It is shown that, compared to the circumstance that TWED is disabled,
lock-intensive testing items have better performance if an appropriate
TWED value is set(up to 5.6%~11.9%). Meanwhile, the complete unixbench
test is run to prove that other testing items are not sensitive to this
parameter.

Thanks
Jingyi

On 9/29/2020 5:17 PM, Jingyi Wang wrote:
TWE Delay is an optional feature in ARMv8.6 Extentions. There is a
performance benefit in waiting for a period of time for an event to
arrive before taking the trap as it is common that event will arrive
“quite soon” after executing the WFE instruction.

This series adds support for TWED feature and implements TWE delay
value dynamic adjustment.

Thanks for Shameer's advice on this series. The function of this patch
has been tested on TWED supported hardware and the performance of it is
still on test, any advice will be welcomed.

Jingyi Wang (2):
   KVM: arm64: Make use of TWED feature
   KVM: arm64: Use dynamic TWE Delay value

Zengruan Ye (2):
   arm64: cpufeature: TWED support detection
   KVM: arm64: Add trace for TWED update

  arch/arm64/Kconfig                   | 10 +++++
  arch/arm64/include/asm/cpucaps.h     |  3 +-
  arch/arm64/include/asm/kvm_arm.h     |  5 +++
  arch/arm64/include/asm/kvm_emulate.h | 38 ++++++++++++++++++
  arch/arm64/include/asm/kvm_host.h    | 19 ++++++++-
  arch/arm64/include/asm/virt.h        |  8 ++++
  arch/arm64/kernel/cpufeature.c       | 12 ++++++
  arch/arm64/kvm/arm.c                 | 58 ++++++++++++++++++++++++++++
  arch/arm64/kvm/handle_exit.c         |  2 +
  arch/arm64/kvm/trace_arm.h           | 21 ++++++++++
  10 files changed, 174 insertions(+), 2 deletions(-)




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux