OSDN Git Service

irqchip/gic-v3-its: Fix the incorrect parsing of VCPU table size
authorShanker Donthineni <shankerd@codeaurora.org>
Sat, 7 Oct 2017 20:43:48 +0000 (15:43 -0500)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 13 Oct 2017 15:30:52 +0000 (16:30 +0100)
commit32bd44dc19de012e22f1fdebd2606b5fb86d54c5
tree6dba1a8256021f1142d9c5368d98d0869d6ecde7
parentc427a475b6bc9d3304cca04acdec53464f71f24c
irqchip/gic-v3-its: Fix the incorrect parsing of VCPU table size

The VCPU table consists of vPE entries, and its size provides the number
of VPEs supported by GICv4 hardware. Unfortunately the maximum size of
the VPE table is not discoverable like Device table. All VLPI commands
limits the number of bits to 16 to hold VPEID, which is index into VCPU
table. Don't apply DEVID bits for VCPU table instead assume maximum bits
to 16.

ITS log messages on QDF2400 without fix:
  allocated 524288 Devices (indirect, esz 8, psz 64K, shr 1)
  allocated 8192 Interrupt Collections (flat, esz 8, psz 64K, shr 1)
  Virtual CPUs Table too large, reduce ids 32->26
  Virtual CPUs too large, reduce ITS pages 8192->256
  allocated 2097152 Virtual CPUs (flat, esz 8, psz 64K, shr 1)

ITS log messages on QDF2400 with fix:
  allocated 524288 Devices (indirect, esz 8, psz 64K, shr 1)
  allocated 8192 Interrupt Collections (flat, esz 8, psz 64K, shr 1)
  allocated 65536 Virtual CPUs (flat, esz 8, psz 64K, shr 1)

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c