<feed xmlns='http://www.w3.org/2005/Atom'>
<title>liblitmus.git/bin, branch wip-shared-lib</title>
<subtitle>[ARCHIVE] The userspace library for LITMUS^RT 2010. Now on GitHub.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/'/>
<entry>
<title>RTAS 2017 submission</title>
<updated>2016-10-13T20:27:40+00:00</updated>
<author>
<name>Namhoon Kim</name>
<email>namhoonk@cs.unc.edu</email>
</author>
<published>2016-10-13T20:27:40+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=b6ef12e31351d23a439597162f8d0fa7031b771d'/>
<id>b6ef12e31351d23a439597162f8d0fa7031b771d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add -r (reservation) and -v (verbose) flags to rtspin</title>
<updated>2015-07-20T17:06:46+00:00</updated>
<author>
<name>Bjoern Brandenburg</name>
<email>bbb@mpi-sws.org</email>
</author>
<published>2014-07-22T05:46:57+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=42534e37f87b0f54cdafaa12ad0b2aa2171315b9'/>
<id>42534e37f87b0f54cdafaa12ad0b2aa2171315b9</id>
<content type='text'>
The -r flag allows specifying a "virtual CPU" (in addition to a
physcial CPU to migrate to) that may be interpreted by a scheduler
plugin to refer to a reservation to which the task should be added.

The -v flag causes rtspin to output timing information on stdout and
can be useful for early-stage plugin debugging (to see that something
is happening at all).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The -r flag allows specifying a "virtual CPU" (in addition to a
physcial CPU to migrate to) that may be interpreted by a scheduler
plugin to refer to a reservation to which the task should be added.

The -v flag causes rtspin to output timing information on stdout and
can be useful for early-stage plugin debugging (to see that something
is happening at all).
</pre>
</div>
</content>
</entry>
<entry>
<title>Modernize rt_launch; remove internal API cruft</title>
<updated>2014-06-03T06:38:40+00:00</updated>
<author>
<name>Bjoern Brandenburg</name>
<email>bbb@mpi-sws.org</email>
</author>
<published>2014-05-09T09:11:35+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=4cc5780a04d827e075a383b2c37a7fca304c3607'/>
<id>4cc5780a04d827e075a383b2c37a7fca304c3607</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use /proc/litmus/domains to set up affinity masks</title>
<updated>2014-02-24T19:01:11+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2014-02-05T05:31:08+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=1f323b00f95c4704cdeea7918853f1e9e8d26c2e'/>
<id>1f323b00f95c4704cdeea7918853f1e9e8d26c2e</id>
<content type='text'>
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]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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]
</pre>
</div>
</content>
</entry>
<entry>
<title>liblitmus/bin: Use inttypes.h macros for 64-bit integer printing</title>
<updated>2013-11-11T11:48:08+00:00</updated>
<author>
<name>Roy Spliet</name>
<email>rspliet@mpi-sws.org</email>
</author>
<published>2013-10-22T08:13:12+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=000d127ec760ac2ec0ecbe403c30c2f85745c5da'/>
<id>000d127ec760ac2ec0ecbe403c30c2f85745c5da</id>
<content type='text'>
Fixed build on ARMv7

Signed-off-by: Roy Spliet &lt;rspliet@mpi-sws.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed build on ARMv7

Signed-off-by: Roy Spliet &lt;rspliet@mpi-sws.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Change convenience API routines.</title>
<updated>2013-03-12T17:42:34+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2013-03-12T17:13:22+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=0e71f86251307a37161cf3de2704a59882e25258'/>
<id>0e71f86251307a37161cf3de2704a59882e25258</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cluster-aware rtspin and rt_launch.</title>
<updated>2013-03-12T16:47:20+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2013-03-05T23:32:01+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=0a54a84457bb8a33113c7dd2a2b63b2a837cc92e'/>
<id>0a54a84457bb8a33113c7dd2a2b63b2a837cc92e</id>
<content type='text'>
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).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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).
</pre>
</div>
</content>
</entry>
<entry>
<title>Auto-CPU-affinity from part./cluster assignment.</title>
<updated>2013-03-12T16:02:20+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2013-03-12T15:57:42+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=93ffe5be8fd1954bbfe5a04e55b81ac1d83d2de7'/>
<id>93ffe5be8fd1954bbfe5a04e55b81ac1d83d2de7</id>
<content type='text'>
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().)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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().)
</pre>
</div>
</content>
</entry>
<entry>
<title>uncachedev: uncache test tool.</title>
<updated>2013-03-12T13:47:01+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2013-03-08T06:25:35+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=072b486393ab702eea9ea0a7fef569dbf8be0a32'/>
<id>072b486393ab702eea9ea0a7fef569dbf8be0a32</id>
<content type='text'>
This adds the uncache test tool (bin/uncache.c). The tool
can be used to test Litmus's char device driver for allocating
uncacheable CPU memory. The tool runs various checks and
gathers basic cache vs. main memory statistics.

In the future, uncache could be extended to quantify the
benefits of the L1, L2, and L3 caches, instead of treating
them as a black box.

Note: Uncache works best when compiled with '-O2'.  While '-O2'
has not been added to the Makefile, other code was updated (code
in tests/ and rtspin), to compile with -O2.

DEPENDS UPON LITMUS-RT PATCH 888d097deb6d1fdc0c89a4f9667fd81cf416cfc7.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the uncache test tool (bin/uncache.c). The tool
can be used to test Litmus's char device driver for allocating
uncacheable CPU memory. The tool runs various checks and
gathers basic cache vs. main memory statistics.

In the future, uncache could be extended to quantify the
benefits of the L1, L2, and L3 caches, instead of treating
them as a black box.

Note: Uncache works best when compiled with '-O2'.  While '-O2'
has not been added to the Makefile, other code was updated (code
in tests/ and rtspin), to compile with -O2.

DEPENDS UPON LITMUS-RT PATCH 888d097deb6d1fdc0c89a4f9667fd81cf416cfc7.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add basic locking support to rtspin</title>
<updated>2013-02-04T14:11:46+00:00</updated>
<author>
<name>Bjoern Brandenburg</name>
<email>bbb@mpi-sws.org</email>
</author>
<published>2013-01-14T13:56:17+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=f308b757af1574632627b727c90e08a65b1dfc96'/>
<id>f308b757af1574632627b727c90e08a65b1dfc96</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
</feed>
