mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/2] irqchip/loongson-eiointc: Add multiple interrupt pin routing support
@ 2025-08-04  8:19 Bibo Mao
  2025-08-04  8:19 ` [PATCH v4 1/2] irqchip/loongson-eiointc: Route interrupt parsed from bios table Bibo Mao
  2025-08-04  8:19 ` [PATCH v4 2/2] irqchip/loongson-eiointc: Add multiple interrupt pin routing support Bibo Mao
  0 siblings, 2 replies; 6+ messages in thread
From: Bibo Mao @ 2025-08-04  8:19 UTC (permalink / raw)
  To: Huacai Chen, Jianmin Lv
  Cc: WANG Xuerui, Thomas Gleixner, loongarch, linux-kernel, linux-mips

There are four times EIOINTC_REG_ISR register group access in eiointc irq
handler, in order to get all irq status about 256 interrupt vectors. It
causes four times VM-exits since eiointc register are software emulated,
here multiple interrupt pin routing is introduced and each 64 interrupt
vector is routed to one interrupt pin.

With this method, there will be only once EIOINTC_REG_ISR register
group acces in irq handler, it reduces VM-exits.

There is about 6% improvement with netperf -t UDP_RR on 3C5000 Dual-way
machine, where netserver runs in VM and netperf runs in host.
            Socket Size   Request  Resp.   Elapsed  Trans      Improve
            Send   Recv   Size     Size    Time     Rate
            bytes  Bytes  bytes    bytes   secs.    per sec
Orininal    212992 212992 1        1       10.00    21689.78
With Patch  212992 212992 1        1       10.00    23022.67   +6%

---
v3 ... v4:
  1. Update to kernel 6.16
  2. Add performance result

v2 ... v3:
  1. Update to latest kernel version and solve some confliction.
  2. Add strict check about multiple interrupt pin support, only the first
     eiointc device support this since intterrupt pin is limited. In order
     to support multiple eiointc driver in future if there is in future.

v1 ... v2:
  1. Add different route_info handler as eiointc interrupt handler
     parameter, so that irq handler can read corresponding ISR
  2. Call function set_csr_ecfg() to enable cpu interrupt pin in eiointc
     driver inside.
---
Bibo Mao (2):
  irqchip/loongson-eiointc: Route interrupt parsed from bios table
  irqchip/loongson-eiointc: Add multiple interrupt pin routing support

 drivers/irqchip/irq-loongson-eiointc.c | 96 +++++++++++++++++++++++---
 1 file changed, 88 insertions(+), 8 deletions(-)


base-commit: 3c4a063b1f8ab71352df1421d9668521acb63cd9
-- 
2.39.3


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

end of thread, other threads:[~2025-09-06 10:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-04  8:19 [PATCH v4 0/2] irqchip/loongson-eiointc: Add multiple interrupt pin routing support Bibo Mao
2025-08-04  8:19 ` [PATCH v4 1/2] irqchip/loongson-eiointc: Route interrupt parsed from bios table Bibo Mao
2025-08-24 10:55   ` [tip: irq/drivers] " tip-bot2 for Bibo Mao
2025-09-06 10:13   ` [PATCH v4 1/2] " Huacai Chen
2025-08-04  8:19 ` [PATCH v4 2/2] irqchip/loongson-eiointc: Add multiple interrupt pin routing support Bibo Mao
2025-08-24 10:55   ` [tip: irq/drivers] " tip-bot2 for Bibo Mao

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

all inboxes | Powered by JetHome®