Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

Difference between revisions of "OLA Thread Scheduling"

From wiki.openlighting.org

Jump to: navigation, search
m
(Results)
Line 25: Line 25:
  
 
== Results ==
 
== Results ==
 +
 +
The test setup was as follows:
 +
* Intel i5-3450, running Debian Wheezy, set to send ArtNet traffic on universe 1
 +
* Raspberry Pi, configured to receive ArtNet traffic and convert to sACN traffic on universe 1.
 +
* Both hosts connect to a netgear 5 port switch. The Pi was connected at 100Mbps, the Debian host at 1Gbps.
 +
 +
On the Debian host, the traffic was generated with:
 +
 +
<pre>
 +
$  i=0; while :; do echo "$i"; i=$((i+1)); if [ $i == 256 ] ; then i=0; fi ; sleep 0.1; done | ola_streaming_client  -u 1
 +
</pre>
 +
 +
And the packets captured with:
 +
 +
<pre>
 +
tcpdump port 5568  or port 6454  -n  -s0 -w /tmp/savefile
 +
</pre>
 +
 +
On the Pi, the control was with no scheduling options. Then the fifo scheduler was enabled with
 +
 +
<pre>
 +
$ olad  --scheduler-policy fifo --scheduler-priority 10
 +
</pre>

Revision as of 21:40, 30 November 2014

Since 0.9.4, OLA provides options to control the thread scheduling algorithms, when supported by the host kernel.

Besides the default scheduling policy (SCHED_OTHER), OLA supports SCHED_RR and SCHED_FIFO. You can read about the differences on The Linux Journal.

Configuration

If you're on Linux you need to edit /etc/security/limits.conf and add:

<username>            hard    rtprio   99
<username>            soft    rtprio   50

Replace <username> with the user you run olad as.

Running OLA

Start olad with --scheduler-policy and --scheduler-priority. You must provide both flags.

$ olad --scheduler-policy fifo --scheduler-priority 10

The --scheduler-priority flag must be a value less than or equal to the soft rtprio limit set in /etc/security/limits.conf.

Results

The test setup was as follows:

  • Intel i5-3450, running Debian Wheezy, set to send ArtNet traffic on universe 1
  • Raspberry Pi, configured to receive ArtNet traffic and convert to sACN traffic on universe 1.
  • Both hosts connect to a netgear 5 port switch. The Pi was connected at 100Mbps, the Debian host at 1Gbps.

On the Debian host, the traffic was generated with:

$  i=0; while :; do echo "$i"; i=$((i+1)); if [ $i == 256 ] ; then i=0; fi ; sleep 0.1; done | ola_streaming_client  -u 1

And the packets captured with:

tcpdump port 5568  or port 6454   -n  -s0 -w /tmp/savefile

On the Pi, the control was with no scheduling options. Then the fifo scheduler was enabled with

$ olad  --scheduler-policy fifo --scheduler-priority 10