Thanks for the patch and sorry for the late reply.

On 24.06.21 16:27, Dongjiu Geng wrote:
> When enable hypervisor, it is no need to set irq
> target twice for root cell, otherwise it will waste time.
> 
> Signed-off-by: Dongjiu Geng <[email protected]>
> ---
> How to re-produce this issue
> 1. Make below modification as shown below[1]
> 2. Run the hypervisor as shown in the log[2]
> 3. You will see the added log "cell_added_removed == &root_cell".
> 4. That is to say irqchip.adjust_irq_target() will be called two
>    times in [4] and [5] for root cell when hypervisor initializes.
> 
> [1]:
> diff --git a/hypervisor/arch/arm-common/irqchip.c 
> b/hypervisor/arch/arm-common/irqchip.c
> index a3245846..48973d06 100644
> --- a/hypervisor/arch/arm-common/irqchip.c
> +++ b/hypervisor/arch/arm-common/irqchip.c
> @@ -510,6 +510,9 @@ void irqchip_config_commit(struct cell 
> *cell_added_removed)
>  {
>         unsigned int n;
> 
> +       if (cell_added_removed == &root_cell)
> +               printk("cell_added_removed == &root_cell\n");
> +
>         if (!cell_added_removed)
>                 return;
> 
>         for (n = 32; n < sizeof(cell_added_removed->arch.irq_bitmap) * 8; 
> n++) {
>                 if (irqchip_irq_in_cell(cell_added_removed, n)) {
> [4]:                    irqchip.adjust_irq_target(cell_added_removed, n);
>                 }
>                 if (irqchip_irq_in_cell(&root_cell, n)) {
> [5]:                    irqchip.adjust_irq_target(&root_cell, n);
>                 }
>         }
> }
> 
> [2]:
> Initializing Jailhouse hypervisor v0.12 (273-g6d9c51d0-dirty) on CPU 6
> Code location: 0x0000ffffc0200800
> Page pool usage after early setup: mem 87/994, remap 0/131072
> Initializing processors:
>  CPU 6... OK
>  CPU 3... OK
>  CPU 10... OK
>  CPU 8... OK
>  CPU 0... OK
>  CPU 4... OK
>  CPU 11... OK
>  CPU 12... OK
>  CPU 7... OK
>  CPU 1... OK
>  CPU 9... OK
>  CPU 2... OK
>  CPU 5... OK
>  CPU 14... OK
>  CPU 13... OK
>  CPU 15... OK
> Initializing unit: irqchip
> Initializing unit: ARM SMMU v3
> Initializing unit: ARM SMMU
> Initializing unit: PVU IOMMU
> Initializing unit: PCI
> Adding virtual PCI device 00:00.0 to cell "qemu-arm64"
> Adding virtual PCI device 00:01.0 to cell "qemu-arm64"
> cell_added_removed == &root_cell
> Page pool usage after late setup: mem 144/994, remap 528/131072
> Activating hypervisor

Thanks for the detailed explanation. While git should ignore everything
after the "---" separator until the patch, it does not ignore comments
that are a patch of it own :). Anyway, resolved that once I understood this.

> ---
>  hypervisor/arch/arm-common/irqchip.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/hypervisor/arch/arm-common/irqchip.c 
> b/hypervisor/arch/arm-common/irqchip.c
> index a3245846..256af114 100644
> --- a/hypervisor/arch/arm-common/irqchip.c
> +++ b/hypervisor/arch/arm-common/irqchip.c
> @@ -514,8 +514,10 @@ void irqchip_config_commit(struct cell 
> *cell_added_removed)
>               return;
>  
>       for (n = 32; n < sizeof(cell_added_removed->arch.irq_bitmap) * 8; n++) {
> -             if (irqchip_irq_in_cell(cell_added_removed, n))
> +             if (irqchip_irq_in_cell(cell_added_removed, n) &&
> +                     (cell_added_removed != &root_cell))
>                       irqchip.adjust_irq_target(cell_added_removed, n);
> +
>               if (irqchip_irq_in_cell(&root_cell, n))
>                       irqchip.adjust_irq_target(&root_cell, n);
>       }
> 

Applied to next.

Thanks,
Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/7d4f42c1-b947-df2e-d189-f51b081d73cf%40siemens.com.

Reply via email to