On 14.06.2024 05:11, Chen, Jiqian wrote: > On 2024/6/13 20:51, Anthony PERARD wrote: >> On Wed, Jun 12, 2024 at 10:55:14AM +0000, Chen, Jiqian wrote: >>> On 2024/6/12 18:34, Jan Beulich wrote: >>>> On 12.06.2024 12:12, Chen, Jiqian wrote: >>>>> On 2024/6/11 22:39, Jan Beulich wrote: >>>>>> On 07.06.2024 10:11, Jiqian Chen wrote: >>>>>>> + r = xc_domain_gsi_permission(ctx->xch, domid, gsi, map); >>>>>> >>>>>> Looking at the hypervisor side, this will fail for PV Dom0. In which >>>>>> case imo >>>>>> you better would avoid making the call in the first place. >>>>> Yes, for PV dom0, the errno is EOPNOTSUPP, then it will do below >>>>> xc_domain_irq_permission. >>>> >>>> Hence why call xc_domain_gsi_permission() at all on a PV Dom0? >>> Is there a function to distinguish that current dom0 is PV or PVH dom0 in >>> tools/libs? >> >> That might have never been needed before, so probably not. There's >> libxl__domain_type() but if that works with dom0 it might return "HVM" >> for PVH dom0. So if xc_domain_getinfo_single() works and give the right >> info about dom0, libxl__domain_type() could be extended to deal with >> dom0 I guess. I don't know if there's a good way to find out which >> flavor of dom0 is running. > Thanks Anthony! > I think here we really need to check is that whether current domain has PIRQ > flag(X86_EMU_USE_PIRQ) or not. > And it seems xc_domain_gsi_permission already return the information.
By way of failing, if I'm not mistaken? As indicated before, I don't think you should invoke the function when it's clear it's going to fail. Jan > If current domain has no PIRQs, then I should use xc_domain_gsi_permission to > grant permission, otherwise I should > keep the original function xc_domain_irq_permission. > >> >> Cheers, >> >