
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://armadeus.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Preempt-rt</id>
		<title>Preempt-rt - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://armadeus.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Preempt-rt"/>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=Preempt-rt&amp;action=history"/>
		<updated>2026-04-04T06:33:10Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=Preempt-rt&amp;diff=14386&amp;oldid=prev</id>
		<title>JulienB: creation</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=Preempt-rt&amp;diff=14386&amp;oldid=prev"/>
				<updated>2017-07-12T17:07:14Z</updated>
		
		<summary type="html">&lt;p&gt;creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;preempt-rt are a series of patches to improve Linux kernel realtime performances. This page explain how to use it.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* Depending on your board, you may have a Buildroot defconfig to apply preempt-rt automatically. For example:&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
$ make opos6ul-preempt-rt_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
* You can change realtime priority of tasks with ''chrt''. For example to set process X to priority 20 in FIFO scheduling queue, you have to do:&lt;br /&gt;
&amp;lt;pre class=apf&amp;gt;&lt;br /&gt;
# chrt -p -f 20 X&lt;br /&gt;
&lt;br /&gt;
pid X's current scheduling policy: SCHED_OTHER&lt;br /&gt;
pid X's current scheduling priority: 0&lt;br /&gt;
pid X's new scheduling policy: SCHED_FIFO&lt;br /&gt;
pid X's new scheduling priority: 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The more priority you set, the more your process is prioritary.&lt;br /&gt;
* Priority queues are OTHER (no realtime), FIFO (First In First Out), RR (Round Robin time share)&lt;br /&gt;
* You can validate realtime performances of your system with ''cyclictest''. For example to launch 10 processes triggering on timer set to 10ms with different descending priorities, you can do:&lt;br /&gt;
&amp;lt;pre class=apf&amp;gt;&lt;br /&gt;
# cyclictest -t 10 -p 20 -n -i 10000 --priospread&lt;br /&gt;
&lt;br /&gt;
/dev/cpu_dma_latency set to 0us&lt;br /&gt;
policy: fifo: loadavg: 0.45 0.23 0.10 1/86 230          &lt;br /&gt;
&lt;br /&gt;
T: 0 (  219) P:99 I:10000 C:  34012 Min:     67 Act:  166 Avg:  174 Max:     536&lt;br /&gt;
T: 1 (  220) P:98 I:10500 C:  32393 Min:     76 Act:  228 Avg:  202 Max:     719&lt;br /&gt;
T: 2 (  221) P:97 I:11000 C:  30920 Min:     66 Act:  170 Avg:  197 Max:    1154&lt;br /&gt;
T: 3 (  222) P:96 I:11500 C:  29576 Min:     65 Act:  217 Avg:  194 Max:    1176&lt;br /&gt;
T: 4 (  223) P:95 I:12000 C:  28343 Min:     72 Act:  167 Avg:  194 Max:    1912&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* times are in microseconds&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup&lt;br /&gt;
* https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/application_base&lt;br /&gt;
&lt;br /&gt;
[[Category:Real-Time]]&lt;/div&gt;</summary>
		<author><name>JulienB</name></author>	</entry>

	</feed>