2019-10-25 19:32:02

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH v2] irqchip/gic-v3-its: Use the exact ITSList for VMOVP

On 2019-10-23 04:46, Zenghui Yu wrote:
> On a system without Single VMOVP support (say GITS_TYPER.VMOVP == 0),
> we will map vPEs only on ITSs that will actually control interrupts
> for the given VM. And when moving a vPE, the VMOVP command will be
> issued only for those ITSs.
>
> But when issuing VMOVPs we seemed fail to present the exact ITSList
> to ITSs who are actually included in the synchronization operation.
> The its_list_map we're currently using includes all ITSs in the
> system,
> even though some of them don't have the corresponding vPE mapping at
> all.
>
> Introduce get_its_list() to get the per-VM its_list_map, to indicate
> which ITSs have vPE mappings for the given VM, and use this map as
> the expected ITSList when building VMOVP. This is hopefully a
> performance
> gain not to do some synchronization with those unsuspecting ITSs.
> And initialize the whole command descriptor to zero at beginning,
> since
> the seq_num and its_list should be RES0 when GITS_TYPER.VMOVP == 1.
>
> Signed-off-by: Zenghui Yu <[email protected]>

I've applied this as a fix for 5.4. In the future, please cc LKML on
all
IRQ-related patches (as documented in MAINTAINERS).

M.
--
Jazz is not dead. It just smells funny...


2019-10-25 19:34:41

by Zenghui Yu

[permalink] [raw]
Subject: Re: [PATCH v2] irqchip/gic-v3-its: Use the exact ITSList for VMOVP

On 2019/10/25 16:24, Marc Zyngier wrote:
> On 2019-10-23 04:46, Zenghui Yu wrote:
>> On a system without Single VMOVP support (say GITS_TYPER.VMOVP == 0),
>> we will map vPEs only on ITSs that will actually control interrupts
>> for the given VM.  And when moving a vPE, the VMOVP command will be
>> issued only for those ITSs.
>>
>> But when issuing VMOVPs we seemed fail to present the exact ITSList
>> to ITSs who are actually included in the synchronization operation.
>> The its_list_map we're currently using includes all ITSs in the system,
>> even though some of them don't have the corresponding vPE mapping at all.
>>
>> Introduce get_its_list() to get the per-VM its_list_map, to indicate
>> which ITSs have vPE mappings for the given VM, and use this map as
>> the expected ITSList when building VMOVP. This is hopefully a performance
>> gain not to do some synchronization with those unsuspecting ITSs.
>> And initialize the whole command descriptor to zero at beginning, since
>> the seq_num and its_list should be RES0 when GITS_TYPER.VMOVP == 1.
>>
>> Signed-off-by: Zenghui Yu <[email protected]>
>
> I've applied this as a fix for 5.4. In the future, please cc LKML on all
> IRQ-related patches (as documented in MAINTAINERS).

I got it, thanks.


Zenghui