Warning, /testsuites/rhealstone/rhsemshuffle/rhsemshuffle.adoc is written in an unsupported language. File is not indexed.
0001 = Semaphore Shuffle Benchmark
0002
0003 This benchmark measures the average delay between a task's release of a
0004 semaphore and the activation of another task blocked on that semaphore.
0005
0006 == Directives
0007
0008 * rtems_semaphore_obtain
0009 * rtems_semaphore_release
0010 * rtems_task_wake_after
0011
0012
0013 == Methodology
0014
0015 This benchmark has two equal priority tasks switch between themselves a total
0016 of BENCHMARKS * 2 times. This is timed, and then execute the same code but
0017 having the tasks pass a semphore between themselves. A task obtains the
0018 semphore, then yields to the other task, which blocks on the semaphore. The
0019 task owning the semaphore then releases it and yields. This process is
0020 repeated by the other task.
0021
0022 This benchmark has overhead, especially in the time it takes to switch between
0023 the two tasks, which happens a total of 2 times per semaphore shuffle. By first
0024 timing how long it takes the tasks to switch between themselves without any
0025 semaphore related calls, the overhead time is found. This time is then subtracted
0026 from the total time of the benchmark, with semaphore shuffling occuring.