Bug 440403

Summary: Some Arm64 CPU feature is masked when valgrind is running and can not run the memcheck
Product: [Developer tools] valgrind Reporter: kevinz <kevin.zhao>
Component: generalAssignee: Julian Seward <jseward>
Status: REPORTED ---    
Severity: normal CC: fweimer, mark, noloader, peter.maydell, sam, tom
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description kevinz 2021-07-30 03:54:29 UTC
Background:
We are running PMDK on Arm64 for persistent memory operation. Now we meet an issue for running test suites. PMDK needs to check if Arm64 supports CPU feature: DCPOP, to decide to execute which CPU flushing command. 

But with the commit: https://bugs.kde.org/show_bug.cgi?id=381556, the CPU features have been masked, so we can not detect the real CPU features such as DCPOP. That will induce that we can not use cpu flushing cmd: "dc cvap" to flushing the CPU, which break the persistent memory working flow.

Is there any potential fix for this? Since Permsist memory is more and more important now, and memcheck for persist memory will be an important user scenario for valgrind.

ENV:
Arm v8.2 Qemu Guest:
processor	: 7
BogoMIPS	: 200.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer	: 0x48
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0xd01
CPU revision	: 0