On 15/09/2020 21:32, Linus Torvalds wrote:>
Was that an actual UP kernel? It might be good to try that too, just
to see if it could be an SMP race in the page locking code.
I am sorry, I am not sure how to verify this. I guess it was one
processor because I removed "-smp 2" option from qemu. So I guess it
switched to a uniprocessor mode.
Also, when I did the test and to make sure I was using only one CPU, I
also printed the output of /proc/cpuinfo:
+ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 1
model name : AMD EPYC 7401P 24-Core Processor
stepping : 2
microcode : 0x1000065
cpu MHz : 2000.000
cache size : 512 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt
pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni
pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe
popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm
cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ssbd
ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap
clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd
arat npt nrip_save arch_capabilities
bugs : fxsave_leak sysret_ss_attrs null_seg spectre_v1
spectre_v2 spec_store_bypass
bogomips : 4000.00
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
Do you want me to try another qemu config?
Sorry, it is getting late for me but I also forgot to mention earlier
that with 1 CPU and your new sysctl set to 1, it didn't reproduce my
issue for 6 executions.
After all, one such theoretical race was one reason I started the rewrite.
And that's a good thing, thank you! :)
Cheers,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net