From: Babu Moger <babu.moger@amd.com>
To: Sean Christopherson <seanjc@google.com>
Cc: pbonzini@redhat.com, thuth@redhat.com, drjones@redhat.com,
kvm@vger.kernel.org
Subject: Re: [kvm-unit-tests PATCH 1/2] x86: access: Fix timeout failure by limiting number of flag combinations
Date: Mon, 9 Aug 2021 14:43:33 -0500 [thread overview]
Message-ID: <1f30bd0f-da1b-2aa0-e0c8-76d3b5410bcd@amd.com> (raw)
In-Reply-To: <YQ1pA9nN6DP0veQ1@google.com>
On 8/6/21 11:53 AM, Sean Christopherson wrote:
> On Fri, Aug 06, 2021, Babu Moger wrote:
>> From: Babu Moger <Babu.Moger@amd.com>
>>
>> The test ./x86/access fails with a timeout. This is due to the number test
>> combination. The test cases increase exponentially as the features get
>> enabled. The new machine adds the feature AC_CPU_CR4_PKE. The default
>> timeout is 180 seconds. Seen this problem both on AMD and Intel machines.
>>
>> #./tests/access
>> qemu-system-x86_64: terminating on signal 15 from pid 20050 (timeout)
>> FAIL access (timeout; duration=180)
>>
>> This test can take about 7 minutes without timeout.
>> time ./tests/access
>> 58982405 tests, 0 failures
>> PASS access
>>
>> real 7m10.063s
>> user 7m9.063s
>> sys 0m0.309s
>>
>> Fix the problem by adding few more limit checks.
>
> Please state somewhere in the changelog what is actually being changed, and the
> actual effect of the change. E.g.
>
> Disallow protection keys testcase in combination with reserved bit
> testcasess to further limit the number of tests run to avoid timeouts on
> systems with support for protection keys.
>
> Disallowing this combination reduces the total number of tests from
> 58982405 to <???>, and the runtime from ~7 minutes to <???>
Sure. Will do.
>
>> Signed-off-by: Babu Moger <Babu.Moger@amd.com>
>> ---
>> x86/access.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/x86/access.c b/x86/access.c
>> index 47807cc..e371dd5 100644
>> --- a/x86/access.c
>> +++ b/x86/access.c
>> @@ -317,9 +317,9 @@ static _Bool ac_test_legal(ac_test_t *at)
>> /*
>> * Shorten the test by avoiding testing too many reserved bit combinations
>> */
>> - if ((F(AC_PDE_BIT51) + F(AC_PDE_BIT36) + F(AC_PDE_BIT13)) > 1)
>> + if ((F(AC_PDE_BIT51) + F(AC_PDE_BIT36) + F(AC_PDE_BIT13) + F(AC_CPU_CR4_PKE)) > 1)
>> return false;
>> - if ((F(AC_PTE_BIT51) + F(AC_PTE_BIT36)) > 1)
>> + if ((F(AC_PTE_BIT51) + F(AC_PTE_BIT36) + F(AC_CPU_CR4_PKE)) > 1)
>
> Why are protection keys the sacrifical lamb? Simply because they're the newest?
Yes. I added it because it was new ):.
>
> And before we start killing off arbitrary combinations, what about sharding the
> test so that testcases that depend on a specific CR0/CR4/EFER bit, i.e. trigger
> a VM-Exit when the configuration changes, are separate runs? Being able to run
> a specific combination would also hopefully make it easier to debug issues as
> the user could specify which combo to run without having to modify the code and
> recompile.
>
> That probably won't actually reduce the total run time, but it would make each
> run a separate test and give developers a warm fuzzy feeling that they're indeed
> making progress :-)
>
> Not sure how this could be automagically expressed this in unittest.cfg though...
Let me investigate if we can do that fairly easy. Will let you know.
Thanks
Babu
>
>> return false;
>>
>> return true;
>>
next prev parent reply other threads:[~2021-08-09 19:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-06 16:08 [kvm-unit-tests PATCH 0/2] Couple of SVM fixes Babu Moger
2021-08-06 16:08 ` [kvm-unit-tests PATCH 1/2] x86: access: Fix timeout failure by limiting number of flag combinations Babu Moger
[not found] ` <YQ1pA9nN6DP0veQ1@google.com>
2021-08-09 19:43 ` Babu Moger [this message]
2021-08-10 16:59 ` Babu Moger
2021-08-10 23:38 ` Babu Moger
2021-08-11 7:09 ` Paolo Bonzini
2021-08-11 16:03 ` Babu Moger
2021-08-11 16:13 ` Sean Christopherson
2021-08-11 16:43 ` Babu Moger
2021-08-06 16:08 ` [kvm-unit-tests PATCH 2/2] nSVM: Fix NPT reserved bits test hang Babu Moger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1f30bd0f-da1b-2aa0-e0c8-76d3b5410bcd@amd.com \
--to=babu.moger@amd.com \
--cc=drjones@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox