From: Subrata <sub...@us...> - 2008-05-26 11:30:14
|
Update of /cvsroot/ltp/ltp/testcases/kernel/controllers/memctl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4416/ltp/testcases/kernel/controllers/memctl Added Files: README memctl_testplan.txt Log Message: This patch adds the documentation for memory controller. Signed-off-by: Sudhir Kumar <sk...@li...>. --- NEW FILE: README --- TEST SUITE: The directory memctl contains the tests related to memory controller. More testcases are expected to be added in future. TESTS AIM: The aim of the tests is to test memory controller functionality. FILES DESCRIPTION: memctl_testN.c --------------- These are the tasks to run for memory controller testing. The tasks have been automated in the sense that they can assign themselves to the appropriate group, can migrate to another group etc. Maximum effort has been put to reuse the code and keep total code size low. myfunctions.sh ---------- This file contains the functions which are common for all the tests. For ex. the setup and cleanup functions which do setup for running the test and do cleanup once the test finishes. The setup() function creates /dev/memctl directory, mounts cgroup filesystem on it with memory. It then creates a number(n) of groups in /dev/memctl. The cleanup function does a complete cleanup of the system. (*However most of the error scenarios have been tested for a sane cleanup, still if any time cleanup fails, just manually execute the commands written in cleanup function. (Ensure you have not cd into any group in controller dir tree which is a very common situation) run_memctl_test.sh ------------------ This script creates different scenarios for memory controller testing and fires (n) tasks in different groups to do some memory allocations etc. It waits for the return status from tasks and reports test pass/fail accordingly. Makefile -------- The usual makefile for this directory PASS/FAIL CRITERION: ================== The test cases are intelligent enough in deciding the pass or failure of a test. README: -------- The one you have gone through. --- NEW FILE: memctl_testplan.txt --- The memory controller testplan includes a complete set of testcases that test the memory controller in different scenarios. **These testcases test the memory controller under single level.** TESTCASE DESCRIPTION: ==================== Test 01: TASK MIGRATION TEST(1) ------------------------------- In this test we create two groups(a & b) and run initially two tasks in one group(a). group b has no task in it. The tasks do anonymous memory allocation using malloc and after that just keep reading the pages they allocate. So the memory usage for group a is non zero and group b is zero. After some time one of the tasks from group a is migrated to group b and the memory usage of group b is checked. If memory usage of group b is still zero the test passes otherwise it fails. Test 02: TASK MIGRATION TEST(2) ------------------------------- This test is an extension of the above test 1. After migration the task does memory allocation again and so this time the memory should be claimed from group b. The test checks if memory is claimed from group b and reports pass or failure accordingly. Test03: FAILCNT CHECK TEST ------------------------------- Whenever tasks in a group try to allocate memory and total memory allocated becomes more than the limit of that group, the failcnt increases. This test creates a group with say x limit on memory and runs a task in it with memory allocation more than group's limit(say y). When y becomes greater than x it checks if failcnt has increased and reports pass if yes otherwise reports failure. * This test will fail if system does not have swap enabled. Test04: STAT CHECK TEST ------------------------------- This test is run to check the memory usage from different stats file. memory.usage_in_bytes gives the current memory usage of the group. memory.stat file has four fields which give different statistics. The memory usage from the two files should be same. This test compares these stats and reports pass if the two values are same and fail if the two values differ. For any other information please refer to Documentation/controllers/memory.txt in kernel documentation. |