[LITMUS^RT] Updates to LITMUS^RT, liblitmus, and feather-trace-tools
Björn Brandenburg
bbb at mpi-sws.org
Tue Mar 8 17:26:19 CET 2016
Dear all,
in preparation of a new release, I’ve pushed a whole bunch of little fixes and improvements to the master branches of LITMUS^RT, liblitmus, and feather-trace-tools. In the interest of ensuring a stable 2016.1 release, I’d appreciate any and all help with testing.
These are mostly patches that have accumulated at MPI-SWS in various projects over the last couple of months, and which I’ve now back-ported to master, plus a few outside contributions. In particular, I’d like to thank Pratyush Patel for contributing a cleaner, much more portable re-implementaiton of our release-master timer support.
For your convenience, I’m including a summary of the changes since 2015.1 below.
@UNC: can you please contribute to the testing effort, especially on ARM?
Thanks,
Björn
Changes to the kernel:
14cc7377 LITMUS^RT core: be more careful when pull-migrating tasks
5f594c7 LITMUS^RT core: add post-migration validation callback
ff0e731 LITMUS^RT core: add next_became_invalid() callback
a83a958 LITMUS^RT core: add should_wait_for_stack() callback
5c3fc90 FP: add list-based ready queue
4fb320b Feather-Trace: Add macros for message-passing timestamps
11e7112 one-shot complete_job(): set completed flag
32784b4 LITMUS^RT: Enable plugins to permit RT tasks to fork
aa87f5a Plugin interface: add fork_task() callback
9414feb LITMUS^RT: improve integration with fork()
bd415c3 LITMUS^RT: split task admission into two functions
5864d40 LITMUS^RT scheduling class: mark enqueued task as present
7ee7163 Add void* plugin_state pointer to task_struct
ffbaa24 Add new overhead tracing event IDs
fa374d8 Patch hrtimer_wakeup() callback to record RELEASE overhead
a2e09c5 Patch hrtimer_wakeup() callback to record RELEASE_LATENCY
aed5435 TRACE(): add TRACE_WARN_ON() helper
159a82f LITMUS^RT proc: fix wrong memset()
0a3467c PSN-EDF: fix wrong memset()
c608191 PFAIR: fix wrong memset()
eb8666a GSN-EDF: fix wrong memset()
5ba78d5 C-EDF: fix bad memset()
1eb666d P-FP: fix wrong memset()
8db6123 Don't preempt before time check in sleep_until_next_release()
b4a0eda Pick non-zero syscall ID start range
e2a7801 Expose LITMUS^RT system calls via control page ioctl()
d2bdf41 Revamped hrtimer_start_on() support
ce90c1d Revert "Add hrtimer_start_on() support"
42dabcd Free before setting NULL to prevent memory leak
3b68819 Fix RCU locking in sys_get_rt_task_param()
3e0c32c Add alternate complete_job() default implementation
b8438da Export job release time and job sequence number in ctrl page
3ebb8ce ftdev: respect O_NONBLOCK flag in ftdev_read()
7096677 sched_trace: record exec_time in ST_COMPLETION records
6d61224 Adds control page deadline offset
0ccca2e Adds deadline field to control page and updates it when setting up jobs for release.
a17f532 Fix __NR_syscalls for ARM
d126eb2 Add ARM syscall def for get_current_budget
0ce2d95 Add x86 syscall defs for get_current_budget
2971daf LITMUS^RT Core: add get_current_budget() system call
arch/arm/Kconfig | 3 -
arch/arm/include/asm/unistd.h | 3 +-
arch/arm/kernel/calls.S | 2 +
arch/x86/Kconfig | 3 -
arch/x86/include/asm/entry_arch.h | 1 -
arch/x86/include/asm/hw_irq.h | 4 -
arch/x86/include/asm/irq_vectors.h | 6 --
arch/x86/kernel/entry_64.S | 2 -
arch/x86/kernel/irqinit.c | 3 -
arch/x86/kernel/smp.c | 35 ---------
arch/x86/syscalls/syscall_32.tbl | 1 +
arch/x86/syscalls/syscall_64.tbl | 2 +
include/linux/hrtimer.h | 32 --------
include/linux/smp.h | 5 --
include/litmus/budget.h | 2 +
include/litmus/ctrlpage.h | 99 ++++++++++++++++++++++++
include/litmus/debug_trace.h | 5 ++
include/litmus/fp_common.h | 78 +++++++++++++++++++
include/litmus/jobs.h | 1 +
include/litmus/litmus.h | 25 ++++++
include/litmus/rt_param.h | 53 +------------
include/litmus/sched_plugin.h | 35 +++++++++
include/litmus/sched_trace.h | 5 +-
include/litmus/trace.h | 27 ++++++-
include/litmus/unistd_32.h | 3 +-
include/litmus/unistd_64.h | 4 +-
kernel/fork.c | 3 -
kernel/sched/core.c | 9 ++-
kernel/sched/litmus.c | 102 ++++++++++++++++---------
kernel/time/hrtimer.c | 104 +++----------------------
litmus/Kconfig | 2 +-
litmus/budget.c | 52 +++++++++++++
litmus/ctrldev.c | 97 +++++++++++++++++++++++
litmus/fp_common.c | 10 +++
litmus/ftdev.c | 11 +++
litmus/jobs.c | 60 +++++++++++++++
litmus/litmus.c | 152 ++++++++++++++++++++++++++++---------
litmus/litmus_proc.c | 2 +-
litmus/rt_domain.c | 3 -
litmus/sched_cedf.c | 2 +-
litmus/sched_gsn_edf.c | 2 +-
litmus/sched_pfair.c | 2 +-
litmus/sched_pfp.c | 2 +-
litmus/sched_plugin.c | 28 +++++++
litmus/sched_psn_edf.c | 2 +-
litmus/sched_task_trace.c | 1 +
litmus/trace.c | 21 ++++-
47 files changed, 769 insertions(+), 337 deletions(-)
Changes to liblitmus:
0d733e2 release_t: add -W option
322eaad Read the whole word from domain for cpu_set
c820535 Switch syscalls to use new LITMUS^RT ioctl() interface
69ddb96 Add test case for get_rt_task_param()
69ee1ed Remove sched_{s,g}etscheduler syscall stubs
54dfe42 Implement get_job_no() via control page
68849a8 Add offset checks for release and job index in control page
cdbdc02 rtspin -v: report deadline, current time, and slack
93f417f Add monotime() wrapper for CLOCK_MONOTONIC
5184b9f Adds build bug check for deadline in control_page
7efbfc0 Add -i option to rtspin (report interrupts)
ae1d5e7 Add syscall get_current_budget()
0394bde Remove outdated mention of rtsched from README
Makefile | 1 +
README | 9 ++++----
bin/release_ts.c | 15 ++++++++++---
bin/rtspin.c | 29 +++++++++++++++++++++++--
include/internal.h | 2 ++
include/litmus.h | 19 +++++++++++++++++
src/clocks.c | 11 ++++++++++
src/kernel_iface.c | 31 ++++++++++++++++++++++-----
src/migration.c | 2 +-
src/syscalls.c | 62 +++++++++++++++++++++++++++++++++++-------------------
tests/core_api.c | 33 +++++++++++++++++++++++++----
11 files changed, 173 insertions(+), 41 deletions(-)
Changes to feather-trace-tools:
3bbd0fa st_trace: don't busy-wait
bc038ae st_trace: use ftcat -p to await initialization
10537e1 ft-trace-overheads: don't busy-wait
4d6773e ft-trace-overheads: make use ftcat -p to await initialization
d085e70 ftcat: add -p (ping) option
b990a32 Keep track of active scheduler in ft-trace-overheads
fefbdbf ft2csv: add -l (list IDs in trace) option
017b981 Support new event IDs
ft-trace-overheads | 43 ++++++++++++++++++++++++++++++-------
include/timestamp.h | 9 ++++++++
src/ft2csv.c | 62 ++++++++++++++++++++++++++++++++++++++++++++---------
src/ftcat.c | 18 +++++++++++++++-
src/timestamp.c | 4 ++++
st_trace | 18 ++++++++++++++--
6 files changed, 133 insertions(+), 21 deletions(-)
More information about the litmus-dev
mailing list