Share via


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.

See Also

Other Resources

Kernel Tests