Re: [kvm-unit-tests PATCH] access: Split the reserved bit test for LA57

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

 



On 11/11/21 3:03 PM, Paolo Bonzini wrote:
> On 11/11/21 22:01, Babu Moger wrote:
>> The test ./x86/access fails with a timeout when the system supports
>> LA57.
>>
>> ../tests/access
>> BUILD_HEAD=49934b5a
>> timeout -k 1s --foreground 180 /usr/local/bin/qemu-system-x86_64
>> --no-reboot
>> -nodefaults -device pc-testdev -device
>> isa-debug-exit,iobase=0xf4,iosize=0x4
>> -vnc none -serial stdio -device pci-testdev -machine accel=kvm
>> -kernel /tmp/tmp.X0UHRhah33 -smp 1 -cpu max # -initrd /tmp/tmp.4nqs81FZ5t
>> enabling apic
>> starting test
>>
>> run
>> ...........................................................................
>>
>> ...........................................................................
>>
>> ..................................................................
>> 14008327 tests, 0 failures
>> starting 5-level paging test.
>>
>> run
>> ...........................................................................
>>
>> ...........................................................................
>>
>> ........................................
>> qemu-system-x86_64: terminating on signal 15 from pid 56169 (timeout)
>> FAIL access (timeout; duration=180)
>>
>> The reason is, the test runs twice when LA57 is supported.
>> Once with 4-level paging and once with 5-level paging. It cannot complete
>> both these tests with default timeout of 180 seconds.
>>
>> Fix the problem by splitting the test into two.
>> One for the 4-level paging and one for the 5-level paging.
>>
>> Signed-off-by: Babu Moger <babu.moger@xxxxxxx>
>> ---
>> Note: Let me know if there is a better way to take care of this.
>
> Aaron Lewis posted a series to separate the main() from everything else,
> so we can create two .c files for 4-level and 5-level page tables.

Ok. Sure. I will check on that. May be I will send the patches once
Aaron's patches are merged.

Also one more thing, we are running pretty close on each of these tests.
Each of these tests run about 150 seconds. Very soon we may need to reduce
number of reserved bit combinations.

I looked at it little bit but have not found better way yet.  

Thanks

>
> Paolo
>
>>
>>   x86/access.c      |   23 ++++++++++++++++-------
>>   x86/unittests.cfg |    6 ++++++
>>   2 files changed, 22 insertions(+), 7 deletions(-)
>>
>> diff --git a/x86/access.c b/x86/access.c
>> index 4725bbd..d25066a 100644
>> --- a/x86/access.c
>> +++ b/x86/access.c
>> @@ -1141,19 +1141,28 @@ static int ac_test_run(void)
>>       return successes == tests;
>>   }
>>   -int main(void)
>> +int main(int argc, char *argv[])
>>   {
>> -    int r;
>> -
>> -    printf("starting test\n\n");
>> -    page_table_levels = 4;
>> -    r = ac_test_run();
>> +    int r, la57;
>> +
>> +    if ((argc == 2) && (strcmp(argv[1], "la57") == 0)) {
>> +        if (this_cpu_has(X86_FEATURE_LA57))
>> +            la57 = 1;
>> +        else {
>> +            report_skip("5-level paging not supported, skip...");
>> +            return report_summary();
>> +        }
>> +    }
>>   -    if (this_cpu_has(X86_FEATURE_LA57)) {
>> +    if (la57) {
>>           page_table_levels = 5;
>>           printf("starting 5-level paging test.\n\n");
>>           setup_5level_page_table();
>>           r = ac_test_run();
>> +    } else {
>> +        page_table_levels = 4;
>> +        printf("starting test.\n\n");
>> +        r = ac_test_run();
>>       }
>>         return r ? 0 : 1;
>> diff --git a/x86/unittests.cfg b/x86/unittests.cfg
>> index 3000e53..475fcc6 100644
>> --- a/x86/unittests.cfg
>> +++ b/x86/unittests.cfg
>> @@ -119,6 +119,12 @@ arch = x86_64
>>   extra_params = -cpu max
>>   timeout = 180
>>   +[access-la57]
>> +file = access.flat
>> +arch = x86_64
>> +extra_params = -cpu max -append "la57"
>> +timeout = 180
>> +
>>   [access-reduced-maxphyaddr]
>>   file = access.flat
>>   arch = x86_64
>>
>>
>>
>
-- 
Thanks
Babu Moger




[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