aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAge
* Added exit forbidden zone syscallHEADmasterztong2021-03-01
|
* Changed variable nameztong2021-02-21
|
* Added liblitmus support for locking with CS lengthztong2021-02-19
|
* Changed syscall for access_forbidden_zone_checkztong2021-02-16
|
* Added support for CPU pinning in EXT-RESztong2021-02-09
|
* Added support for suspending for per-access forbidden zonesTanya Amert2020-10-20
| | | | | | under EXT-RES scheduling with the global OMLP. Note that this assumes the caller already holds the lock.
* Ported global OMLP from BBB's dissertation work forward.Tanya Amert2020-09-23
|
* release_ts: adopt new absolute synchronous release time APIBjoern Brandenburg2017-07-12
| | | | | | | | | Userspace now gets to decide when exactly a synchronous release should take place. Additionally, introduce -q option to ensure that the synchronous release occurs at an integer multiple of a given quantum size (or hyperperiod length).
* Add litmus_clock() helperBjoern Brandenburg2016-07-20
| | | | Convenient wrapper for CLOCK_MONOTONIC -> lt_t.
* Add sleep_until_mono(), lt_sleep_until() helpersBjoern Brandenburg2016-07-19
|
* Add unit-test for CPU mapping parsingMahircan Gul2016-07-18
| | | | | | | | - Decompose read_mapping into two functions: *read_mapping* which reads CPU mapping data as string from file, and *set_mapping* that actually sets the cpu_set_t according to the mapping - Add unit test for setting cpu_set_t to various CPU indexes
* Replace pointer arithmetic on loop-condition for parsing CPU mapMahircan Gul2016-07-18
| | | | | | | | | | | | -Appearantly, a newline character is appended to the end of CPU mapping string. It seems like this was not the case with old versions of liblitmus and in order not to break the intended behaviour of code, newline appended to CPU mapping string is simply ignored -Pointer arithmetic for parsing CPU mapping is done within loop body to prevent "array subscript is below array bounds" warning prompted by gcc-6.1.1 -Fix indentation and whitespaces
* Add reservation_create() LITMUS^RT system callBjoern Brandenburg2016-03-16
|
* Read the whole word from domain for cpu_setMahircan Gul2016-03-08
| | | | | This fixes a problem on a 48-core platform where tasks couldn't be migrated to certain cores.
* Switch syscalls to use new LITMUS^RT ioctl() interfaceBjoern Brandenburg2015-12-18
| | | | This change should be transparent to clients of the library.
* Remove sched_{s,g}etscheduler syscall stubsBjoern Brandenburg2015-12-16
| | | | These are provided elsewhere, we don't need to reimplement them.
* Implement get_job_no() via control pageBjoern Brandenburg2015-12-16
|
* Add offset checks for release and job index in control pageBjoern Brandenburg2015-12-16
|
* Add monotime() wrapper for CLOCK_MONOTONICBjoern Brandenburg2015-12-16
|
* Adds build bug check for deadline in control_pageGeoffrey2015-12-16
|
* Add syscall get_current_budget()Bjoern Brandenburg2015-09-08
|
* Fix memset() parameters for scheduling parameter structNamhoon Kim2015-08-03
| | | | Signed-off-by: Bjoern Brandenburg <bbb@mpi-sws.org>
* Make sure scheduling parameter struct is zeroed outBjoern Brandenburg2015-07-20
|
* read_mapping() breaks on NR_CPUS not div by 32Glenn Elliott2014-06-06
| | | | | | | This patch fixes a bug in read_mapping(), which is used for reading CPU and cluster (domain) mappings. read_mapping() did not account for the case when NR_CPUS is not evenly divisible by 32 (quite common when NR_CPUS < 32).
* Cosmetic: Fix error string to match fn name.Glenn Elliott2014-06-06
| | | | | Patch cleans up an error message to match the migrate-to-domain API.
* Remove unneeded code from domain migration.Glenn Elliott2014-06-06
| | | | | | | This patch removes unneeded code from be_migrate_thread_to_domain(). This function no longer needs to check the number of online CPUs since the CPU mask for a given domain is now returned directly from read_mapping().
* Modernize rt_launch; remove internal API cruftBjoern Brandenburg2014-06-03
| | | | | | | Switch rt_launch to use a more modern way to launch real-time tasks. This makes rt_launch more flexible, makes it more similar to rtspin, and also allows to let us get rid of a chunk of old, inflexible code in liblitmus that wasn't really serving any useful purpose anymore.
* Migration: Support systems with more than 32 CPUs.Glenn Elliott2014-05-19
| | | | | | | | | | | | This patch improves the cpu bit map parsing used to determine CPU/cluster mapping. Namely, it supports clusters with more than 32 CPUs. Prior to this patch, mapping would fail due to unexpected commas in bitfield data read from /proc (groups of 32 CPUs are separated by commas). NOTE: Bug could still be encountered if NR_CPUS > 32. New CPU limit: 4096.
* Add support for the DFLPBjoern Brandenburg2014-04-01
| | | | Just add the ID and symbol.
* Add missing default param initializationBjoern Brandenburg2014-04-01
| | | | | | Make sure new default parameters such as the deadline are taken care of in the old task creation routines. This fixes a problem with rt_launch.
* Use /proc/litmus/domains to set up affinity masksGlenn Elliott2014-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | This patch replaces the algorithm used to compute CPU affinity masks. The old algorithm was fragile and would break on systems with multiple levels of shared caches. (As found on some older Intel chips, and as one would probably find on a system with hyper-threading enabled.) The bug stems from fact that Linux enumerates consecutive CPUs in a way that distributes them across the physical system, thereby reducing contention resources (e.g., cache). Cluster size no longer needs to be provided now that cluster/CPU mappings are explicit in /proc/litmus/domains/. This keeps the following migration functions, but marks them as deprecated: - be_migrate_to_cluster() - cluster_to_first_cpu() - partition_to_cpu() Although the deprecated interfaces are supported, the implementations for these functions call the new be_migrate_to_domain() and domain_to_first_cpu() functions. [bbb: resolved several merge conflicts]
* Switch NP flag format back to 32 bits (uint32_t)Bjoern Brandenburg2013-07-21
| | | | This matches the corresponding change in the kernel.
* User large enough buffer to read /proc/litmus/release_masterHiroyuki Chishiro2013-07-02
| | | | The string 'NO_CPU' needs to fit into the buffer.
* Add testcase for admission of suspended tasksBjoern Brandenburg2013-06-08
| | | | | | The kernel needs to be able to deal with tasks that do not make themselves a real-time task, but get configured by some other task instead.
* Update constat SPORADIC->TASK_SPORADICBjoern Brandenburg2013-06-08
| | | | | A recent patch changed the name of the constant in the kernel. Update liblitmus accordingly.
* Fix compile failure related to aliasing (gcc 4.4.5)Bjoern Brandenburg2013-04-17
| | | | | | | | My version of gcc would complain about "dereferencing pointer does break strict-aliasing rules" because of a (harmless) pointer cast. This patch adds a helper void pointer to make the assignment explicit, which avoids the cast and hence silences the warning.
* Change convenience API routines.Glenn Elliott2013-03-12
| | | | | | | | | | | | | The sproadic_*() macros have become unwieldy. This patch replaces those convenience macros for global, clustered, and partitioned scheduling. A part of this API change is the explicit use of nanosecond time-values. Prior APIs have used lt_t (litmus time), which had an implied time scale of nanoseconds. /bin apps and test suite also updated to use revised API. Modifications to the test suite are mostly centered around using nanoseconds instead of milliseconds.
* Add init_rt_task_param().Glenn Elliott2013-03-12
| | | | | Adds init_rt_task_param(). Facilitates setting up default real-time task attributes that cannot be set by memset(0).
* Cluster-aware rtspin and rt_launch.Glenn Elliott2013-03-12
| | | | | | | | | This patch adds cluster scheduling options to rtspin and rt_launch. The convenience routines in litmus.h were also updated to facilitate clustered scheduling. For partitioned scheduling, just set cluster_size = 1 (default size for rtspin and rt_launch).
* Auto-CPU-affinity from part./cluster assignment.Glenn Elliott2013-03-12
| | | | | | | | | | | This patch replaces be_migrate_to() with several be_migrate_*() APIs to automatically assign CPU affinity masks from a task's partition (or cluster) assignment. Routines are release-master-aware such that the release master (if one exists) will NOT be included in the task's affinity mask. (Note that release-master avoidance may be overridden by calling __be_migrate_thread_to_cluster().)
* Add basic locking support to rtspinBjoern Brandenburg2013-02-04
| | | | | | This is useful for testing locking protocol implementations (not intended for benchmarking!), and also serves to document how to use the LITMUS^RT locking API.
* rt_launch: add support for -q <priority>Bjoern Brandenburg2013-01-11
| | | | This mirrors the option in rtspin.
* Make release_ts a bit more userfriendlyBjoern Brandenburg2013-01-11
| | | | | | | The -f option required manually *also* setting the -w option. This is no longer required. While at it, simplify the code by using the /proc interface.
* Add control page offset checksBjoern Brandenburg2012-12-06
| | | | | Make sure the kernel and userspace compilers have the same idea of the layout of the control page.
* Implement lt_sleep() syscall wrapperBjoern Brandenburg2012-08-14
| | | | | Wrap nanosleep() to make sleeping for a given number of nanoseconds easier, using the LITMUS^RT time type lt_t.
* Implement get_nr_ts_release_waiters() /proc wrapperBjoern Brandenburg2012-08-14
| | | | | Add a wrapper for /proc/litmus/stats to make it easy to query the number of tasks already waiting for a task set release.
* API Update: Support arbitrary deadlines.Glenn Elliott2012-08-01
| | | | | | | | Updated APIs to support arbitrary deadlines. Added macros for implicit deadlines. Note: Had to tweak Makefile to support gcc version >= 4.6 (moved -lrt to the end of the link command).
* P-FP: make PCP available to user spaceSven Dziadek2012-05-31
| | | | | | PCP was only used for DPCP before tests: add some basic tests for PCP under P-FP
* P-FP: port P-FP plugin used in B. Brandenburg'sSven Dziadek2012-05-31
| | | | | | | | | dissertation (branch bbb-diss) I took the unchanged code but removed references to OMLP which was and is not implemented tests: changed so that they work for P-FP
* Switch to new np-section protocol.Bjoern B. Brandenburg2011-11-24
| | | | Everything is in one 32-bit word now.