Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752050AbcDRGoU (ORCPT ); Mon, 18 Apr 2016 02:44:20 -0400 Received: from mail-oi0-f67.google.com ([209.85.218.67]:33102 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751044AbcDRGoS (ORCPT ); Mon, 18 Apr 2016 02:44:18 -0400 From: "Bill Huey (hui)" To: Peter Zijlstra , Steven Rostedt , Alessandro Zummo , linux-kernel@vger.kernel.org Cc: luca abeni , Juri Lelli , Mike Galbraith , Thomas Gleixner Subject: [PATCH RFC v2 00/12] Cyclic Scheduler Against RTC Date: Sun, 17 Apr 2016 23:44:02 -0700 Message-Id: <1460961854-3449-1-git-send-email-bill.huey@gmail.com> X-Mailer: git-send-email 2.5.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3207 Lines: 95 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