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

Re: [RFC XEN PATCH v4 4/5] domctl: Use gsi to grant/revoke irq permission


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Date: Tue, 9 Jan 2024 08:18:47 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.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=Ni+XVQavD+MVp0vlGpQGnWqbmtMuvHwq6SN/nc0GpoI=; b=iB7M+ANuCUnE7oaK3H+dR1PTX9x4vpsn7bdHSz9ZPGPBrfmnOKWuCUOXO5jtLC+LluiYN+rj3rGITPE3GIDG/eKcR1dQ//ccU0fSckTS6D2cwM9CMfzyoXSfs2uz18XnF0nuMKmQsD9sgcrOFL8zq/x3P2ehy6TpA1OSKGbxr7emKsbLHjGZleq5qmMDsbCVil0a7ZSB7NlQnfKw7Wj7bL8QMKgPiUAXDCO9szWHxMQqmTIVV3bI5oNpsNdMq+m26qjFpg/7v71tVTV/QfMgEqcwXfC6fRNADEWnu0qPvajKkR8xuVtAgxS2YL4EVkrpge5tfdt2MTTS8+9JT1p0cg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=buCjFyre2B++qXOqIyvdQNq75XQ3/YnQTLZcmYerVpextPIupxQHG05Ndoj6M1wDgIJmzErxGeG2iF65+6nkinFukQT98ItJbU60ZEznrhalMAUoHLxpJWMobIIymnXiHSzIsIHukJxuOJwCV+gxGUQtxlZftVUm8VijK4QkUPTbupgXbJdWofDIHBUNmmXdqOlt5wmrlV5sE0+zPBZfd4y4kp/kfsHALnpdVWkyKxtITPkWMfJkrHTRo8oInnIu0scF20kb6JxZ9z+DgqtKx6urYvUXRo3LqrdYd7qNK/rw14EszMqsCCI6jTg6CeOjHgidVpj8is1WJB3pAvkYMw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, "Hildebrand, Stewart" <Stewart.Hildebrand@xxxxxxx>, "Huang, Ray" <Ray.Huang@xxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Delivery-date: Tue, 09 Jan 2024 08:19:03 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHaP6Y1pt0ckfKChE+VsjXCWSj8+LDL+oWAgAOnBgCAAGd3gIABof4A
  • Thread-topic: [RFC XEN PATCH v4 4/5] domctl: Use gsi to grant/revoke irq permission

On 2024/1/8 23:05, Roger Pau Monné wrote:
> On Mon, Jan 08, 2024 at 09:55:26AM +0100, Jan Beulich wrote:
>> On 06.01.2024 02:08, Stefano Stabellini wrote:
>>> On Fri, 5 Jan 2024, Jiqian Chen wrote:
>>>> --- a/tools/libs/light/libxl_pci.c
>>>> +++ b/tools/libs/light/libxl_pci.c
>>>> @@ -1418,6 +1418,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>>>>      unsigned long long start, end, flags, size;
>>>>      int irq, i;
>>>>      int r;
>>>> +    int gsi;
>>>>      uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED;
>>>>      uint32_t domainid = domid;
>>>>      bool isstubdom = libxl_is_stubdom(ctx, domid, &domainid);
>>>> @@ -1486,6 +1487,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>>>>          goto out_no_irq;
>>>>      }
>>>>      if ((fscanf(f, "%u", &irq) == 1) && irq) {
>>>> +        gsi = irq;
>>>
>>> A question for Roger and Jan: are we always guaranteed that gsi == irq
>>> (also in the PV case)?
>>
>> Iirc for IO-APIC based IRQs that's always the case;
> 
> I think that's always the case on Linux, because it calls
> PHYSDEVOP_map_pirq with index == pirq (see Linux
> pci_xen_initial_domain()).  But other OSes could possibly make the
> call with pirq == -1 and get a randomly allocated pirq for GSIs.
I don't think it's important whether pirq is randomly generated. What's 
important is whether irq always equals gsi in xen.
If so, we can directly pass in and grant gsi. However, according to Jan's 
previous email reply, in the case of Msi, irq may not be equal to gsi, so my 
patch cannot meet this situation.
I am confusing if the current domain doesn't have PIRQ flag, then regarding to 
XEN_DOMCTL_irq_permission, which kind of irq we should grant to caller domain? 
The gsi or other irq?
Or can we add a check in XEN_DOMCTL_irq_permission, if the current domain has 
PRIQ, we can get irq from pirq(like the original implementation), if not we can 
assign gsi to irq, and then grant irq. Of course, that needs to require the 
caller to pass in both the pirq and gsi.

> 
> IOW: I don't think the pirq field in xen_domctl_irq_permission can be
> altered like proposed here to switch from passing a pirq to a GSI.  A
> new hypercall should be introduced that either is GSI specific, or
> contains a type field in order to specify the namespace the field
> targets.
A new hypercall using for granting gsi? If so, how does the caller know to call 
which hypercall to grant permission, XEN_DOMCTL_irq_permission or that new 
hypercall?
I mean how the caller know if the current domain has PIRQ or not and when to 
pass in pirq number, when to pass in gsi number.

> 
> Thanks, Roger.

-- 
Best regards,
Jiqian Chen.

 


Rackspace

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