[PATCH RFC v2 00/12] Cyclic Scheduler Against RTC

From: Bill Huey (hui)
Date: Mon Apr 18 2016 - 02:23:50 EST


64/32bit architecture related changes. Change for m68k architecture
compilation problems.

Need to mask out the lower 4 bits of the hash inserts itself into the
rbtree, better statistical reporting of overrun events, more procfs
support for setting the interrupt source, yield testing and backwards
compatible testing next.

bill

---

Sample output from the test program. The delay in the userspace program
is constant but the time frame interval is reduced in half for each row.
It only tests periodic interrupts for now. Note that the number of events
reported increases the frame interval is reduced.

'Slots' shows the frame bit pattern.


billh@machine:~$ (cd bwi && sudo ./rtctest) 2>&1 | tee out

RTC Driver Test Example.


Periodic IRQ rate is 64Hz.
Counting 20 interrupts at:
2Hz: .1 0x0001,.2 0x0001,.3 0x0001,.4 0x0001,.5 0x0001,
4Hz: .1 0x0000,.2 0x0001,.3 0x0000,.4 0x0001,.5 0x0000,
8Hz: .1 0x0001,.2 0x0001,.3 0x0000,.4 0x0001,.5 0x0001,
16Hz: .1 0x0001,.2 0x0002,.3 0x0002,.4 0x0001,.5 0x0002,
32Hz: .1 0x0003,.2 0x0003,.3 0x0003,.4 0x0003,.5 0x0003,
64Hz: .1 0x0007,.2 0x0006,.3 0x0006,.4 0x0007,.5 0x0006,

*** Test complete ***

created thread 0
thread id = 0
slots = 0x9249249249249249

created thread 1
thread id = 1
slots = 0x4924924924924924

created thread 2
thread id = 2
slots = 0x2492492492492492
tid 0, 0x0056
thread exited running SCHED_RR = 0
tid 2, 0x0057
thread exited running SCHED_RR = 2
tid 1, 0x0052
thread exited running SCHED_RR = 1
pthread done
billh@machine:~$

---

Bill Huey (hui) (12):
Kconfig change
Reroute rtc update irqs to the cyclic scheduler handler
Add cyclic support to rtc-dev.c
Anonymous struct initialization
Task tracking per file descriptor
Add anonymous struct to sched_rt_entity
kernel/userspace additions for addition ioctl() support for rtc
Compilation support
Add priority support for the cyclic scheduler
Export SCHED_FIFO/RT requeuing functions
Cyclic scheduler support
Cyclic/rtc documentation

Documentation/scheduler/sched-cyclic-rtc.txt | 468 ++++++++++++++++++++
drivers/rtc/Kconfig | 5 +
drivers/rtc/class.c | 3 +
drivers/rtc/interface.c | 23 +
drivers/rtc/rtc-dev.c | 167 ++++++++
include/linux/init_task.h | 18 +
include/linux/rtc.h | 3 +
include/linux/sched.h | 15 +
include/uapi/linux/rtc.h | 4 +
kernel/sched/Makefile | 1 +
kernel/sched/core.c | 13 +
kernel/sched/cyclic.c | 612 +++++++++++++++++++++++++++
kernel/sched/cyclic.h | 86 ++++
kernel/sched/cyclic_rt.h | 7 +
kernel/sched/rt.c | 41 ++
15 files changed, 1466 insertions(+)
create mode 100644 Documentation/scheduler/sched-cyclic-rtc.txt
create mode 100644 kernel/sched/cyclic.c
create mode 100644 kernel/sched/cyclic.h
create mode 100644 kernel/sched/cyclic_rt.h

--
2.5.0