summaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)Author
2017-01-26doc: Fix ./configure command in tutorial.txtHEADmasterlinaroBrendan Jackman
With the provided command I get this error from ./configure: checking whether the C compiler works... no configure: error: in `/home/brendan/sources/rt-app': configure: error: C compiler cannot create executables See `config.log' for more details This seems to be because the "libs/" part is bogus.
2017-01-04rt-app: added support for "yield" eventDamir Shaykhutdinov
"yield" event simply calls pthread_yield() This has a special meaning for SCHED_DEADLINE tasks
2016-11-25rt-app: introduce cumulative_slack global optionJuri Lelli
It might be useful, for phases that contains multiple timer events, to accumulate intermediate slack and report this number once the phase completes. Implement such behaviour and introduce a global option to select between current behaivour and the new one. Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-11-25rt-app: implement relative/absolute timersJuri Lelli
Implement "relative" (current behavior) and "absolute" working modes for timer events. Text added in doc/tutorial.txt gives more information about the two modes. Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-11-25rt-app: add delay thread propertyJuri Lelli
Add a new thread property called 'delay' with which the initial starting time of a thread can be delayed. Parameter is expressed in usec. Usage is: "tasks" : { "thread0" : { ... "delay" : 1000000, ... } } Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-11-25doc: add log header fields descriptionsJuri Lelli
Add descrition for newly introduced log header fiels (slack, c_duration, c_period and wu_lat). Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-11-24rt-app: convert log header to fixed width spacesJuri Lelli
Convert thread logs header to fixed width spaces to improve readability (of both logs and code). Also, update cpufreq_governor_efficiency script accordingly. Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-11-17doc: clarify example for config stepJuri Lelli
Add detailed example for static cross-compile of rt-app. Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2016-10-31rt-app: add a runtime eventJavi Merino
The runtime event emulates the execution of a load for a specific amount of time irrespective of the compute capacity of the CPU it is run on or the frequency. Signed-off-by: Javi Merino <javi.merino@arm.com>
2015-12-09rt-app: update cpufreq governor efficiencylinaro_wipVincent Guittot
update cpufreq governor efficiency bench to : - use timer instead of sleep to have a better load emulation - track overrun : run duration exceeds period Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-10-23rt-app: fix deadline parameters namingVincent Guittot
rt-app considers all key starting by "run" in the "phases" object as a run event. But rt-app also allows to not create a "phases" object if there is only one phase. In this latter case, the events are directly put at the "thread" object level where the deadline parameters are also set. In such configuration, the "runtime" key that is used for the runtime parameter of a deadline thread is also filtered as a "run" event whereas it should not. In order to remove any potential mix between deadline parameters and events, we rename the deadline parameters in the .json file: "dl-period", "dl-deadline", "dl-runtime". For backward compatibility reason, rt-app will continue to check the presence of "period", "deadline" and "runtime" keys at the thread level iff new keys have not been found. "dl-period", "dl-runtime" and "dl-deadline" are used by to set sched_setattr's paramters which use nanosecond unit. All other rt-app parameters uses microsecond unit which makes the description of a deadline thread quite confusing as described in the example below: "thread0" : { "policy" : "SCHED_DEADLINE", "dl-period" : 100000000, "dl-deadline" : 20000000, "dl-runtime" : 10000000, "run" : 10000, "timer" : { "ref" : "unique", "period" : 100000 } }, In addition, deadline scheduler doesn't accept a runtime smaller than 1 usec (at least in the v4.3 kernel). So we can align all the parameters of the json file to usec unit in order to have consistant values in the description of a thread. The usec unit only applies to "dl-period", "dl-runtime" and "dl-deadline" but "period", "deadline" and "runtime" still use ns to keep backward compatibility. Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-10-23rt-app: Add static cross compilation descriptionVincent Guittot
Add a How to cross-compile rt-app with static linkage Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-08-24workgen: Add IO-bounded and memory-bounded eventslinaro-v1.0Vincent Guittot
Add 2 new kind of event for running a memory or a io bounded load. "mem" name for a load is memory bounded, and "iorun" name for a load is io bounded. The default file to be written to create the load is /dev/null and the device/file could be specified with "io_device" key in "global" section. The size of per-thread memory buffer to create IO/memory load could also be specified with "mem_buffer_size" in the same section. Signed-off-by: Pi-Cheng Chen <pi-cheng.chen@linaro.org> [ replace Text by String in tutorial.txt] Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-08-24rt-app: few minor fixesVincent Guittot
-Several minor fixes in the tutorial file -Remove some compilation warnings -Reorder and gather the init of data by feature -Close the log file before exiting the thread body Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-08-24rt-app: add log buffer in memoryVincent Guittot
With the new mechanism that is used to describe a scenario, it becomes more complex to estimate how many logs will be generated during the execution of a use case. As a result, the record of the logs in temporary buffer had been disable and the logs were saved directly in files. The potential side effect of such mecanism is to block threads on io access, which disturbs the use case behavior. A new parameter is added to define the saving policy of the logs. You can now disable the logs, save them directly in a file like previously, define the size of a temporary buffer but with the risk to lost some logs if the buffer overflow. You can also ask rt-app to evaluate how many logs will be generated and allocate the temporary buffer accordingly. This last mode is not yet implemented and it will be part of a dedicated patch. Full details of the new parameter is available in the update of the documentation Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-08-24rt-app: update spreading tasks exampleVincent Guittot
Update the spreading-tasks.json example in order to test all possible transition sequence between light and heavy loads of 2 threads. Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-08-03rt-app: add duration parameter in tune_json.pyVincent Guittot
Add the capability to modify the duration value of json file with tune_json.py Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Tested by: Leo Yan <leo.yan@linaro.org>
2015-08-03rt-app: fix commentsVincent Guittot
Align the comment and values of examples files Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-07-03workgen: Add video playback use casesVincent Guittot
Add video playback use cases Signed-off-by: Pi-Cheng Chen <pi-cheng.chen@linaro.org> [Remove change between version in the commit message] Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-06-24doc: measure the efficiency of cpufreq governorsXunlei Pang
DVFS adds a latency in the execution of task because of the time to decide to move at max freq. We need to measure this latency and check that the governor stays in an acceptable range. When rt-app runs a json file, a log file is created for each thread. This log file records the number of loop that has been executed and the duration for executing these loops (per phase). We can use these figures to evaluate to latency that is added by a cpufreq governor and its "performance efficiency". We use the run+sleep pattern to do the measurement, for the run time per loop, the performance governor should run the expected duration as the CPU stays a max freq. At the opposite, the powersave governor will give use the longest duration (as it stays at lowest OPP). Other governor will be somewhere between the 2 previous duration as they will use several OPP and will go back to max frequency after a defined duration which depends on its monitoring period. The formula: duration of powersave gov - duration of the gov -------------------------------------------------------- x 100% duration of powersave gov - duration of performance gov will give the efficiency of the governor. 100% means as efficient as the perf governor and 0% means as efficient as the powersave governor. This patch offers json files and shell scripts to do the measurement. Usage: ./calibration.sh <cpu> cpu: cpu number on which you want to run the test ./test.sh <governor> <cpu> <runtime> <sleeptime> [<loops>] governor: target CPUFreq governor you want to test cpu: cpu number on which you want to run the test. Be the same as the one passed to "calibration.sh". runtime: running time in ms per loop of the workload pattern sleeptime: sleeping time in ms per loop of the workload pattern loops: repeat times of the workload pattern. default: 10 Example: "./calibration.sh 0" means to calculate the computing capacity of CPU0 which will be used in the following test. "./test.sh ondemand 0 100 100 20" means to test "ondemand" on CPU0 with workload pattern "run 100ms + sleep 100ms"(20 loops). NOTE: - Make sure there are "sed", "cut", "grep", "rt-app", etc tools on your test machine, and run the scripts under root privilege. - Run the test while the system is idle. - You can change the target governor's parameters after running "calibration.sh", but before "test.sh". Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
2015-05-29rt-app: add a template fileVincent Guittot
add a temple.json file taht can be used by tune_json.py to create use cases with various type a load Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-05-18rt-app: remove useless commaLocal account frq07285
remove useless comma in order to comply with json rules Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-05-18rt-app: Add a script to tune parameters in json filepi-cheng.chen
This scripts strips all comments in the input JSON file, modifies the parameters according to command line arguments, and write the content to a new JSON file. changes from v1: - use us instead of ms as units of period/run/sleep Signed-off-by: pi-cheng.chen <pi-cheng.chen@linaro.org> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-05-18rt-app: add new spreading-tasks.jsonXunlei Pang
Add new spreading-tasks.json in doc/examples. It create 2 threads made of a 1st phase with small load (10% as an example) followed by a phase with a large load (70% as an example). Each phase lasts 6sec to let system stabilize. Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-03-24workgen: add a tutorialVincent Guittot
describe the grammar used to emulate a use case change since v1: - fix typo - add details for lock_pages parameter Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-03-24rt-app: update tutorial examplesVincent Guittot
Update the example to be aligned wit the tutorial document Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-03-24workgen: fix trailing commaVincent Guittot
don't add a trailing comma while adding the value of a suspend key Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2015-03-24rt-app: update use case filesVincent Guittot
create 2 version of json use case files. The files that are suffixed by "-short" are 6sec long whereas the ones suffixed by "-long" are 600sec long. The long files are targeted to be used for non reg tests whereas the short files mainly targets dev
2015-03-24rt-app: fix mp3 use caseVincent Guittot
The AudioTick emulates the periodic interrupt that fills the pcm fifo. Pinned AudioTick thread onto CPU0 as the latter is used by default to handle interruption on the ARM platform.
2015-03-24doc: move examples filesVincent Guittot
Move examples files in a tutorial dir as they are describing how to use the grammar of workgen. Rename test.json into example5.json
2014-12-15rt-app: use per instance timerVincent Guittot
when we instantiate a thread which contains timer events, the same timers will be used for all instances and the instance will be woken up sequentially. Create a special value named "unique" for the "ref" key of timer. During the creation of the event, the timer ref value will be replaced by a unique value so each instance will use its own timer instead of sharing the same timer Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-11-20rt-app: add instance parameterVincent Guittot
add instance parameter in exaple2 so it can be found and modified by script Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-11-20rt-app: Fix all trailing commas in /doc/examples/*pi-cheng.chen
Fix all trailing commas in /doc/examples/* so that those JSON file could be tuned by tune_json.py script. A trailing comma in mp3.json needs to be removed manually since it's added by workgen script when adding suspend key. Signed-off-by: Pi-Cheng Chen <pi-cheng.chen@linaro.org> Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-11-14fix suspend event definitionsIvan T. Ivanov
2014-11-04add a dry run option for workgenVincent Guittot
The dry run option "-d" only generates a output json file and doesn't call rt-app. The output file can be then used with rt-app Typical use should be: workgen -d -o <output file> <input file> Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-09-24update example fileVincent Guittot
2014-09-24handle simple suspend commandVincent Guittot
2014-09-24update test file with new grammarVincent Guittot
2014-09-24test file for workload generatorVincent Guittot
2014-09-24rename check_id into workgenVincent Guittot
check unique key in the json file and call rt-app with the output file
2014-09-16updates examples with new grammarVincent Guittot
2014-09-10new browser use caseVincent Guittot
2014-09-10check that each event has a unique idVincent Guittot
so libjson will not remove the duplicated events
2014-09-10new mp3 use caseVincent Guittot
Conflicts: doc/examples/mp3.json
2014-08-01add a web browsing use caseVincent Guittot
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-08-01add a simple exampleVincent Guittot
doc/examples/example2.json 2 thread wake up periodically with different periods and runtimes but share access to a critical resource Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-08-01add a very simple exampleVincent Guittot
doc/examples/example1.json 2 thread wake up periodically with different periods and runtimes Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-08-01update taskset.jsonVincent Guittot
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-08-01cleanup of doc directoryVincent Guittot
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2014-08-01move merge examples files in examples directoryVincent Guittot
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>