On 01/03/2024 11:49 am, Roger Pau Monné wrote:
> On Thu, Feb 29, 2024 at 08:53:54PM +0000, Andrew Cooper wrote:
>> Right now, test-resource always creates HVM Shadow guests.  But if Xen has
>> SHADOW compiled out, running the test yields:
>>
>>   $./test-resource
>>   XENMEM_acquire_resource tests
>>   Test x86 PV
>>     Created d1
>>     Test grant table
>>   Test x86 PVH
>>     Skip: 95 - Operation not supported
>>
>> and doesn't really test HVM guests, but doesn't fail either.
>>
>> There's nothing paging-mode-specific about this test, so default to HAP if
>> possible and provide a more specific message if neither HAP or Shadow are
>> available.
>>
>> Signed-off-by: Andrew Cooper <[email protected]>
> Acked-by: Roger Pau Monné <[email protected]>
>
> One comment below.
>
>> ---
>> CC: Jan Beulich <[email protected]>
>> CC: Roger Pau Monné <[email protected]>
>> CC: Wei Liu <[email protected]>
>> ---
>>  tools/tests/resource/test-resource.c | 25 +++++++++++++++++++++++++
>>  1 file changed, 25 insertions(+)
>>
>> diff --git a/tools/tests/resource/test-resource.c 
>> b/tools/tests/resource/test-resource.c
>> index 7ae88ea34807..2796053588d3 100644
>> --- a/tools/tests/resource/test-resource.c
>> +++ b/tools/tests/resource/test-resource.c
>> @@ -20,6 +20,8 @@ static xc_interface *xch;
>>  static xenforeignmemory_handle *fh;
>>  static xengnttab_handle *gh;
>>  
>> +static xc_physinfo_t physinfo;
>> +
>>  static void test_gnttab(uint32_t domid, unsigned int nr_frames,
>>                          unsigned long gfn)
>>  {
>> @@ -172,6 +174,23 @@ static void test_domain_configurations(void)
>>  
>>          printf("Test %s\n", t->name);
>>  
>> +#if defined(__x86_64__) || defined(__i386__)
>> +        /*
>> +         * On x86, use HAP guests if possible, but skip if neither HAP nor
>> +         * SHADOW is available.
>> +         */
>> +        if ( t->create.flags & XEN_DOMCTL_CDF_hvm )
>> +        {
>> +            if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
>> +                t->create.flags |= XEN_DOMCTL_CDF_hap;
>> +            else if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_shadow) )
>> +            {
>> +                printf("  Skip: Neither HAP or SHADOW available\n");
>> +                continue;
>> +            }
>> +        }
> Provided that you are already checking, might also be worth to keep in
> mind that at some point we might want to also check for
> XEN_SYSCTL_PHYSCAP_{hvm,pv} and skip those tests if the requested domain
> type is not available.

Fair point.  Lemme do a v2.

~Andrew

Reply via email to