<feed xmlns='http://www.w3.org/2005/Atom'>
<title>liblitmus.git/include/migration.h, branch wip-shared-mem</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>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: Add Doxygen documentation for public APIs</title>
<updated>2013-11-27T10:57:55+00:00</updated>
<author>
<name>Roy Spliet</name>
<email>rspliet@eclipso.eu</email>
</author>
<published>2013-11-18T22:34:59+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/liblitmus.git/commit/?id=33efb47a220a3edfcb80ddf7aa20d65c26ebf916'/>
<id>33efb47a220a3edfcb80ddf7aa20d65c26ebf916</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>
</feed>
