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

Jingyi Wang wangjingyi11 at huawei.com
Mon Nov 23 22:19:12 EST 2020


Hi Marc,

Gentle ping, could you please give some comments on this patch or the
current test results? Thanks in advance.

Thanks,
Jingyi

On 11/13/2020 3:54 PM, Jingyi Wang wrote:
> 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(-)
>>



More information about the linux-arm-kernel mailing list