aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* Fixed accounting for empty container budgetZelin Tong2020-02-27
|
* End of day commit 2/26/2020Zelin Tong2020-02-26
| | | | | | | | | | | | | | | | | | changed edfsc_cschedule found no fixed task to be next, it will now return the container instead of null To explain the other changes, first I must explain the problem. When a container has no fixed tasks, but still has budget, there is nothing in litmus that enforces its budget or updates its exec_time in job_params. This means we will have to enforce the container budget in this case ourselves with an enforcement timer. Furthermore, we also have to update the exec_time ourselves since only actual task have their exec_time updated automatically by litmus the new functions are added and gschedule changed to fix the above problem
* Revert type fix on domain comparison as the old (ab)use is actually okayJoshua Bakita2020-02-26
|
* Revert BUG_ON in preempt() and clarify documentation + fix indentsJoshua Bakita2020-02-26
|
* Fix type mismatch, some indenting, and correctly set entry->scheduledJoshua Bakita2020-02-26
| | | | | | | | | | | | The schedule functions expect entry->scheduled to be set if the task is real-time, but edfsc_gschedule() is called before g_finish_switch() when inserting a new real-time task via edfsc_task_new(). Resolve this issue by also setting entry->scheduled in edfsc_task_new() if nothing was scheduled before. Current issue I'm working through is that entry->scheduled is still not always being set. This causes NULL to be passed to preempt(), which should never happen.
* End of day commit 2/25/2020Zelin Tong2020-02-25
| | | | | | | | | | | | -Added some printk statements to better debug why container_boundary would not execute 10ms after setting scheduler to EDF-sc -Initialized container exec_cost to 0 We still have unresolved issues. Namely, during container_boundary, when releasing new container jobs(where my printk statements are), the containers are shown to have a large, non-zero exec_cost despite the fact that there are no fixed tasks in the system. Need to check container_boundary logic.
* committed latest changesZelin Tong2020-02-25
|
* Added can_release in edfsc_params to help avoid race condition betweenlinux-4.9-litmuspeter2019-04-21
| | | | container boundary timer and container task completion
* Implemented container_boundary function(untested)peter2019-04-21
|
* Implemented background schedulingpeter2019-04-19
|
* Wrote removal stuffClara Hobbs2019-04-18
|
* Various little clean-up operationsClara Hobbs2019-04-18
|
* Added edfsc parameters in rt_param.hpeter2019-04-18
| | | | updated references to parameters in edfsc plugin
* current edfsc plugin progress:peter2019-04-18
| | | | | | worked out scheduling logic worked out logic for inserting and deleting tasks TODO: fix updated function names
* Added sched_edfsc plugin, which is still under constructionpeter2019-04-16
|
* Merge pull request #9 from Zildj1an/patch-2Björn Brandenburg2019-04-09
|\ | | | | add missing curly braces to error path
| * Small fixCarlos Bilbao2019-04-06
|/ | | Error with the curly braquets
* LITMUS^RT core: use absolute synchronous release timesBjoern Brandenburg2017-07-12
| | | | | To allow userspace to determine when exactly a synchronous release should occur.
* arm64: rescheduling handler IPI does not call irq_enter()Bjoern Brandenburg2017-06-15
|
* arm64: add LITMUS^RT KConfigBjoern Brandenburg2017-06-15
|
* Core: call IPI notifier from generic scheduler IPI handlerBjoern Brandenburg2017-06-15
| | | | | Instead of replicating this code across all supported architectures, hook into the IPI code only once.
* Xen/x86: remove LITMUS^RT IPI notifierBjoern Brandenburg2017-06-15
|
* x86: remove LITMUS^RT IPI notifierBjoern Brandenburg2017-06-15
|
* ARM: remove LITMUS^RT IPI notifierBjoern Brandenburg2017-06-15
|
* Feather-Trace device interface: synchronize event activation/deactivationBjoern Brandenburg2017-06-09
| | | | | The platform code does not synchronize anything, so make sure there's only one caller at any time.
* Feather-trace header: RODATA adjustmentsBjoern Brandenburg2017-06-09
|
* Feather-trace generic: deal with RODATA always being onBjoern Brandenburg2017-06-09
|
* Feather-Trace: make x86 rewriting impl work despite RO textBjoern Brandenburg2017-06-09
| | | | | Mirror what ftrace does to ensure that we can patch up the text segment.
* litmus/preempt.h: do not pollute namespace with TRACE()Bjoern Brandenburg2017-06-09
| | | | | | | This file is indirectly included in a _a lot_ of Linux. A generic name like TRACE causes a symbol clashes in drivers, SquashFS, etc. To avoid this, use only the LITMUS-prefixed version in preempt.h.
* LITMUS^RT debug trace: optionally do not pollute namespaceBjoern Brandenburg2017-06-09
|
* LITMUS^RT core: include debug_trace.hBjoern Brandenburg2017-06-09
|
* LITMUS^RT integration in core scheduler: include debug_trace.hBjoern Brandenburg2017-06-09
|
* PSN-EDF: include debug_trace.hBjoern Brandenburg2017-06-09
|
* C-EDF: include debug_trace.hBjoern Brandenburg2017-06-09
|
* P-FP: include debug_trace.hBjoern Brandenburg2017-06-09
|
* PFAIR: include debug_trace.hBjoern Brandenburg2017-06-09
|
* GSN-EDF: include debug_trace.hBjoern Brandenburg2017-06-09
|
* Feather-Trace: switch to get_cycles()Bjoern Brandenburg2017-06-07
|
* Kconfig: don't hide Feather-Trace menuBjoern Brandenburg2017-06-07
| | | | | Even if a kernel is relocatable, the if-based implementation of Feather-Trace can still work. So don't hide these options.
* P-RES: update times before processing departureBjoern Brandenburg2017-05-28
| | | | | Don't forget to charge *current* reservation before its (potentially) only client departs.
* P-RES: remove misleading commentBjoern Brandenburg2017-05-28
| | | | The comment regarding hrtimer_start() is no longer valid in Linux 4.9.
* Add P-RES scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | P-RES: the partitioned reservation-based scheduler. A simple partitioned scheduler that provides a reservation environment on each core, based on the generic reservations code. Hierarchical scheduling is not supported in this version. P-RES: trace sporadic wake-ups P-RES: use inferred_sporadic_job_release_at() porting fix: add missing header for module_init() porting fix: adopt new hrtimer API in P-RES plugin P-RES: add fork() support P-RES: don't return -ESRCH on reservation lookup failure P-RES: improve task admission - Deal with the fact that task_cpu() is not yet updated for currently suspended tasks. - Provide some feedback via printk().
* Add PD^2 scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | | | | | | | PFAIR: fix wrong memset() PFAIR: don't arm timer for tardy tasks If the system is overloaded, tasks may be tardy. In that case, do not arm timers. Rather, add tardy tasks back into the ready queue right away. PFAIR: use sched_trace_last_suspension_as_completion() PFAIR: use inferred_sporadic_job_release_at() rebase fix: use new hrtimer API in PFAIR plugin
* Add C-EDF scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | C-EDF: fix bad memset() C-EDF: use sched_trace_last_suspension_as_completion() C-EDF: use inferred_sporadic_job_release_at() C-EDF: include np.h
* Add P-FP scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | | | P-FP: fix wrong memset() P-FP: use sched_trace_last_suspension_as_completion() P-FP: use inferred_sporadic_job_release_at() P-FP: include np.h P-FP: improve debug tracing
* Add GSN-EDF scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | GSN-EDF: fix wrong memset() GSN-EDF: use sched_trace_last_suspension_as_completion() GSN-EDF use inferred_sporadic_job_release_at() GSN-EDF: include np.h
* Add PSN-EDF scheduler pluginBjoern Brandenburg2017-05-26
| | | | | | | | | | PSN-EDF: fix wrong memset() PSN-EDF: use sched_trace_last_suspension_as_completion() PSN-EDF: use inferred_sporadic_job_release_at PSN-EDF: include np.h
* Hook into hrtimer to TRACE() timer hangsBjoern Brandenburg2017-05-26
|
* Hook into hrtimer_nanosleep()Bjoern Brandenburg2017-05-26
| | | | | To intercept absolute-timed nanosleeps relative to CLOCK_MONOTONIC, which are likely related to periodic job arrivals.
* hrtimer integration: properly trace late-added timersBjoern Brandenburg2017-05-26
| | | | | | | When tasks add timers that have already expired (e.g., when preempted during schedule_hrtimeout), we should not use the expriration time as the reference time point, but rather the time when the timer was added (the delay then includes activation of ksoftirqd, etc.).