Epoll based IRQ controller
authorAnton Ivanov <anton.ivanov@cambridgegreys.com>
Mon, 20 Nov 2017 21:17:58 +0000 (21:17 +0000)
committerRichard Weinberger <richard@nod.at>
Mon, 19 Feb 2018 18:38:51 +0000 (19:38 +0100)
commitff6a17989c08b0bb0fd490cc500b084581b3a9b9
tree1f87a8f21ad3659e61e4958faece57994a842cde
parent4d1a535b8ec5e74b42dfd9dc809142653b2597f6
Epoll based IRQ controller

1. Removes the need to walk the IRQ/Device list to determine
who triggered the IRQ.
2. Improves scalability (up to several times performance
improvement for cases with 10s of devices).
3. Improves UML baseline IO performance for one disk + one NIC
use case by up to 10%.
4. Introduces write poll triggered IRQs.
5. Prerequisite for introducing high performance mmesg family
of functions in network IO.
6. Fixes RNG shutdown which was leaking a file descriptor

Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/chan_kern.c
arch/um/drivers/line.c
arch/um/drivers/random.c
arch/um/drivers/ubd_kern.c
arch/um/include/shared/irq_user.h
arch/um/include/shared/os.h
arch/um/kernel/irq.c
arch/um/os-Linux/irq.c