12345678910111213141516171819202122232425262728293031323334353637383940 |
- Test IO scheduler
- ==================
- The test scheduler allows testing a block device by dispatching
- specific requests according to the test case and declare PASS/FAIL
- according to the requests completion error code.
- The test IO scheduler implements the no-op scheduler operations, and uses
- them in order to dispatch the non-test requests when no test is running.
- This will allow to keep a normal FS operation in parallel to the test
- capability.
- The test IO scheduler keeps two different queues, one for real-world requests
- (inserted by the FS) and the other for the test requests.
- The test IO scheduler chooses the queue for dispatch requests according to the
- test state (IDLE/RUNNING).
- the test IO scheduler is compiled by default as a dynamic module and enabled
- only if CONFIG_DEBUG_FS is defined.
- Each block device test utility that would like to use the test-iosched test
- services, should register as a blk_dev_test_type and supply an init and exit
- callbacks. Those callback are called upon selection (or removal) of the
- test-iosched as the active scheduler. From that point the block device test
- can start a test and supply its own callbacks for preparing, running, result
- checking and cleanup of the test.
- Each test is exposed via debugfs and can be triggered by writing to
- the debugfs file. In order to add a new test one should expose a new debugfs
- file for the new test.
- Selecting IO schedulers
- -----------------------
- Refer to Documentation/block/switching-sched.txt for information on
- selecting an io scheduler on a per-device basis.
- May 10 2012, maya Erez <merez@codeaurora.org>
|