Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH]irqchip/irq-gic-v3:Avoid a waste of LPI resource
@ 2018-04-27 14:00 Zhang, Lei
  0 siblings, 0 replies; 11+ messages in thread
From: Zhang, Lei @ 2018-04-27 14:00 UTC (permalink / raw)
  To: linux-arm-kernel

I want to talk about the implementation of GIC-ITS driver.
The current implementation of irq-gic-v3-its driver allocates at least 32 LPIs (interrupt numbers) for each Device ID even if the number of requested LPIs is only one.
I think it is a waste for LPI resource.
And if we use many devices over ITS, this implementation may cause a shortage of LPI .

I have a patch to avoid this problem by reducing the number of LPIs from 32 to 2 per chunk.
The points of this patch are as follows.
Point1:Each Device ID can still allocate enough LPIs by increasing chunk number.
Point2:The size of memory for the bitmap (lpi_bitmap) to manage the free chunks becomes larger(256B -> 4KiB).But I think it is not a problem, because the max size of lpi_bitmap is 4KiB.

Signed-off-by: Lei Zhang <zhang.lei@jp.fujitsu.com>

The follow is my patch. the patch is based on kernel 4.16.5
-------------------------------------
--- drivers/irqchip/irq-gic-v3-its.c       2018-01-29 06:20:33.000000000 +0900
+++ drivers/irqchip/irq-gic-v3-its.c    2018-04-25 15:05:26.078956980 +0900
@@ -1406,12 +1406,12 @@
  *
  * The GIC has id_bits bits for interrupt identifiers. From there, we
  * must subtract 8192 which are reserved for SGIs/PPIs/SPIs. Then, as
- * we allocate LPIs by chunks of 32, we can shift the whole thing by 5
+ * we allocate LPIs by chunks of 2, we can shift the whole thing by 1
  * bits to the right.
  *
  * This gives us (((1UL << id_bits) - 8192) >> 5) possible allocations.
  */
-#define IRQS_PER_CHUNK_SHIFT   5
+#define IRQS_PER_CHUNK_SHIFT   1
 #define IRQS_PER_CHUNK         (1 << IRQS_PER_CHUNK_SHIFT)
 #define ITS_MAX_LPI_NRBITS     16 /* 64K LPIs */

Regards,
Lei Zhang
--
e-mail: zhang.lei@jp.fujitsu.com 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-05-21  6:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <8898674D84E3B24BA3A2D289B872026A69EECF90@G01JPEXMBKW03>
2018-04-27 14:12 ` [PATCH]irqchip/irq-gic-v3:Avoid a waste of LPI resource Marc Zyngier
2018-04-30  7:53   ` Zhang, Lei
2018-04-30 10:20     ` Marc Zyngier
2018-05-03  6:46       ` Zhang, Lei
2018-05-09 14:32     ` Mark Langsdorf
2018-05-10 13:09       ` Zhang, Lei
2018-05-10 14:12         ` Marc Zyngier
2018-05-12  1:47           ` Zhang, Lei
2018-05-18  9:49             ` Zhang, Lei
2018-05-21  6:12               ` Zhang, Lei
2018-04-27 14:00 Zhang, Lei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox