Kernel Scheduler Test (Compact 7)
3/12/2014
The Kernel Scheduler Test exercises the kernel scheduler. The test checks that GetTickCount is working as expected, then creates several threads that Sleep for random intervals. If the OEM has made the changes required to use the variable tick scheduler, the test can be used to check the validity of those changes.
Test Prerequisites
Your device must meet the following requirements before you run this test.
There are no specific hardware requirements for this test.
The following tables show the software requirements for the Kernel Scheduler Test.
Requirements | Description |
---|---|
Tux.exe |
Test harness, required for all tests |
Kato.dll |
Logging engine, required logging test results |
Ksched.dll |
Library containing the test cases |
Subtests
The table below lists the subtests included in this test.
SubTest ID | Description |
---|---|
65537 |
Checks that GetTickCount is working as expected. |
65538 |
Creates numerous threads of varying priorities, which sleep for random periods. Checks that no thread wakes up before it should, and that the highest priority thread in the system wakes up without delay. |
Setting Up the Test
This is a fully automated test; there are no test specific setup steps.
Running the Test
This is a fully automated test; there are no test specific execution instructions.
Optionally one may manually edit the test command line as follows:
Command line parameter Description (default value)
/e:value | Specifies maximum number of errors tolerated before test aborts (10) |
---|---|
/h:value |
Specifies highest priority to be assigned to a thread (1) |
/l:value |
Specifies lowest priority to be assigned to a thread (247) |
/n:value |
Specifies number of threads to run concurrently (100) |
/s:value |
Specifies maximum time to sleep, in milliseconds (15) |
/r:value |
Specifies test run time, in milliseconds (300000) |
/t:value |
Tolerance Time (2ms) |
/c:value |
Runs continuously (NO) - this is bounded by /e: |
Verifying the Test
This is a fully-automated test with no manual verification steps for this specific test.
Troubleshooting the Test
* Test case 65537 may fail if the constants for the variable tick scheduler are improperly defined. This can happen if the tick goes backward, is negatively defined, or is not in synch with Sleep or OEMRealTime. If this test case fails, disregard the results of test case 65538.
* A failure in test case 65538 means the threads are awakening too soon or too late (in the case of the highest priority thread). Refer to the documentation for the variable tick scheduler to assure that it is implemented correctly.
For additional platform specific issues, consult the CTK articles on the TechNet wiki.