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

Re: [PATCH v6 1/2] xen+tools: Report Interrupt Controller Virtualization capabilities on x86


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • From: Jane Malalane <Jane.Malalane@xxxxxxxxxx>
  • Date: Fri, 11 Mar 2022 15:09:48 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5QfmejG/hFxU6elea9FKxA+jplT5zSanP1PZrhU7IKg=; b=Qi/P0Qm5siX1KW18kwxOVk2Z63vgKilIur8J8fCiY7hs7jMlt1xqH2DNAhtZOUKGhixP7QnF7mMfC+fZehMnXXWCUiydyAFkhjW6tmGzZj9NFaPKyewKXUCPzhCcsAUAOjaXBcK9Pz9MdgmLCeAL9q446E76Ubx0/IYTouTxl6aj15r1/7XwtNabXng84BAK4ftyK01CByL4TW1Z6BPMhnMBUQ0JMRLjp8kGQ5SzS4Bknrs/kQu0JAyi9IcC7bnf2InSU77Vqvyiwrbhn+M24alq0UkFgvXlexpgl7K+UrakVkE/40/Ivo76kdbwH+Csv5OZ/MnroYJLmWXkRhrxSw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fohVDD1BeulLuQhIZcDJ2RWGmdnqiYa1TKD3BByarW8X9mpdedKEdtdgrlM6QDABVhhi3XtBX0km7i8/dKPZEAHxkjeyBXQHTNLp/fS9cVdNmP0bISl57u5hs0QHWwq2jrpYMRuQSEmSmt3bHZm3gssnNhlD3GBRbnJgzpXdGuMdti7adI0csq2VB0y60EhsNZfC4+0jS4zw/zYQvkSBeL2IbjoeiBgOkYtRMAxBWORs8LcM0T4KoGLOa0heY8+zNFkp8JE+zmwDIvrQ2XQWp8mHe7PELZksmS/OYu/k6vO4U9grmiExxolOakOJjPjz6XhRpdj5qqyMotLlOq8lVA==
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, "Anthony Perard" <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, "Andrew Cooper" <Andrew.Cooper3@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>
  • Delivery-date: Fri, 11 Mar 2022 15:10:02 +0000
  • Ironport-data: A9a23:6vvL86s17RBF+c86pLIlpEkB9ufnVOdeMUV32f8akzHdYApBsoF/q tZmKW6OP6nbYWfyKd4la9yyoEJTsMPQzNc3GgFv/ChhQ3tH+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZhSAgk/nOHNIQMcacUsxLbVYMpBwJ1FQyw4bVvqYy2YLjW1jU4 IuoyyHiEATNNwBcYzp8B52r8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBb /TC1NmEElbxpH/BPD8HfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1he66RFxlkvgoo Oihu6BcRi8pEaaLtc4aSSJqDn1DNvMb47XAGGKG5Jn7I03uKxMAwt1rBUAye4YZ5vx2ESdF8 vlwxDIlN07ZwbjsmfTiF7cq1p9LwMrDZevzvllCxDfUS9MvRZnHSqPHzdRZwC0xloZFGvO2i 88xN2o0M0WRP0wn1lE/LJkcoPeOrXXFTGcBhE/Ji7ds6krv01kkuFTqGIWMIYHbLSlPpW6mo WbB83X8EwstHtWVwjqY8VqhnubK2yj8Xeo6D6ak//RnhFmSwG07CxAMU1a/5/6jhSaWUd9FN 1Yd/CZoqKEo7VGqVfH0RRj+q3mB1jYfVsRRFasm6QiL4qvS/wudQGMDS1ZpasEg8sk/RjUo1 1qAt9LvGTFr9raSTBq16bO8vT60fy8PIgcqdSICCAcI/dTniIUylQ7UCMZuFravid/4Ei22x CqFxAA8iK8UltUjzLig8BbMhDfEjprUSg844C3HU2Tj6Rl2DKanbYG17VnQ7d5bMZ2UCFKGu RA5d9O2tb5US8vXzWrUHbtLTOrBC+u53CP0gXFkWLQL8C6WyWP/QIsOvSp0I35zC5NREdP2W 3P7tQRU7Z5VGXKla65rfo68Y/gXIbjc+cfNDa6NMIcXCnRlXErepXw1OxbMt4z4uBV0yckC1 YGnndFA5JrwIYBu13KISugUytfHLQhulDqIFfgXI/lKuIdyhUJ5q59ZYTNijchjtctoRTk5F f4GZqNmLD0FDIXDjtH/q9J7ELzzBSFT6WrKg8JWbPWfBQFtBXssDfTcqZt4JdA7zv8KybeQp ijjMqO99LYZrSSWQeltQio+AI4DoL4l9S5rVcDSFQrAN4cfjXaHs/5EKspfkUgP/+1/1/9kJ 8TpiO3basmjvg/vomxHBbGk9dQKXE3y2WqmYnr0CBBiLsUIb1GYpbfZkv7HqXBm4tyf7pBl/ dVNF2rzHPI+euiVJJ2POaz1kA/p4yR1dSAbdxKgH+S/sX7EqeBCAyfwkuU2M4cLLxDCzSGdz AGYHVETouylnmP/2IOhaXysx2txL9ZDIw==
  • Ironport-hdrordr: A9a23:cdCYLaxmgXhLNn4eGnwLKrPxgeskLtp133Aq2lEZdPULSKOlfp GV8MjziyWYtN9IYgBcpTiBUJPwJE81bfZOkMYs1MSZLXXbUQyTXc9fBOrZsnHd8kjFmNK1up 0QCpSWZOeAbmSSyPyKmjVQcOxQgeVvkprY/ds2pk0FJWoBCsFdBkVCe32m+yVNNVJ77PECZf 6hD7981lydkAMsH6OG7xc+Lor+juyOsKijTQ8NBhYh5gXLpyiv8qTGHx+R2Qpbey9TwJ85mF K10zDR1+GGibWW2xXc32jc49B9g9360OZOA8SKl4w8NijssAC1f45sMofy/wzd4dvfqmrCou O85yvIDP4DrE85uVvF5ycF7jOQlQrGLUWSkGNwz0GT+fARDwhKdPapzbgpDCcxrXBQ5u2UmZ g7rl6xpt5ZCwjNkz/64MWNXxZ2llCsqX5niuILiWdDOLFuI4O5ArZviX+9Pa1wVR4S0rpXWN WGzfuskMp+YBefdTTUr2NvyNujUjA6GQqHWFELvoiQ3yJNlH50wkMEzIhH901wua4VWt1B/a DJI65onLZBQosfar98Hv4IRY+yBnbWSRzBPWqOKRDsFb0BOXjKt5nriY9Frt2CadgN1t8/iZ 7BWFRXuSo7fF/vE9SH2NlR/hXEUAyGLELQIwFllu9EU5HHNcnW2He4OSATeuOb0ociPvE=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYMxKO2Blwl2qLLkWflNBa6+BEmqy23N6AgANxEQA=
  • Thread-topic: [PATCH v6 1/2] xen+tools: Report Interrupt Controller Virtualization capabilities on x86

On 09/03/2022 10:36, Roger Pau Monné wrote:
> On Tue, Mar 08, 2022 at 05:31:17PM +0000, Jane Malalane wrote:
>> Add XEN_SYSCTL_PHYSCAP_X86_ASSISTED_XAPIC and
>> XEN_SYSCTL_PHYSCAP_X86_ASSISTED_X2APIC to report accelerated xapic
>> and x2apic, on x86 hardware.
>> No such features are currently implemented on AMD hardware.
>>
>> HW assisted xAPIC virtualization will be reported if HW, at the
>> minimum, supports virtualize_apic_accesses as this feature alone means
>> that an access to the APIC page will cause an APIC-access VM exit. An
>> APIC-access VM exit provides a VMM with information about the access
>> causing the VM exit, unlike a regular EPT fault, thus simplifying some
>> internal handling.
>>
>> HW assisted x2APIC virtualization will be reported if HW supports
>> virtualize_x2apic_mode and, at least, either apic_reg_virt or
>> virtual_intr_delivery. This also means that
>> sysctl follows the conditionals in vmx_vlapic_msr_changed().
>>
>> For that purpose, also add an arch-specific "capabilities" parameter
>> to struct xen_sysctl_physinfo.
>>
>> Note that this interface is intended to be compatible with AMD so that
>> AVIC support can be introduced in a future patch. Unlike Intel that
>> has multiple controls for APIC Virtualization, AMD has one global
>> 'AVIC Enable' control bit, so fine-graining of APIC virtualization
>> control cannot be done on a common interface.
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>> Signed-off-by: Jane Malalane <jane.malalane@xxxxxxxxxx>
> 
> Overall LGTM, just one question and one nit.
> 
>> diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c 
>> b/tools/ocaml/libs/xc/xenctrl_stubs.c
>> index 5b4fe72c8d..7e9c32ad1b 100644
>> --- a/tools/ocaml/libs/xc/xenctrl_stubs.c
>> +++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
>> @@ -712,7 +712,7 @@ CAMLprim value stub_xc_send_debug_keys(value xch, value 
>> keys)
>>   CAMLprim value stub_xc_physinfo(value xch)
>>   {
>>      CAMLparam1(xch);
>> -    CAMLlocal2(physinfo, cap_list);
>> +    CAMLlocal3(physinfo, cap_list, arch_cap_list);
>>      xc_physinfo_t c_physinfo;
>>      int r;
>>   
>> @@ -731,7 +731,7 @@ CAMLprim value stub_xc_physinfo(value xch)
>>              /* ! XEN_SYSCTL_PHYSCAP_ XEN_SYSCTL_PHYSCAP_MAX max */
>>              (c_physinfo.capabilities);
>>   
>> -    physinfo = caml_alloc_tuple(10);
>> +    physinfo = caml_alloc_tuple(11);
>>      Store_field(physinfo, 0, Val_int(c_physinfo.threads_per_core));
>>      Store_field(physinfo, 1, Val_int(c_physinfo.cores_per_socket));
>>      Store_field(physinfo, 2, Val_int(c_physinfo.nr_cpus));
>> @@ -743,6 +743,17 @@ CAMLprim value stub_xc_physinfo(value xch)
>>      Store_field(physinfo, 8, cap_list);
>>      Store_field(physinfo, 9, Val_int(c_physinfo.max_cpu_id + 1));
>>   
>> +#if defined(__i386__) || defined(__x86_64__)
>> +    /*
>> +     * arch_capabilities: physinfo_arch_cap_flag list;
>> +     */
>> +    arch_cap_list = c_bitmap_to_ocaml_list
>> +            /* ! physinfo_arch_cap_flag CAP_ none */
>> +            /* ! XEN_SYSCTL_PHYSCAP_ XEN_SYSCTL_PHYSCAP_X86_MAX max */
>> +            (c_physinfo.arch_capabilities);
>> +    Store_field(physinfo, 10, arch_cap_list);
>> +#endif
> 
> Have you tried to build this on Arm? I wonder whether the compiler
> will complain about arch_cap_list being unused there?
Built it - no error.

Thank you,

Jane.

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.