MEMKIND TESTS ============= DISCLAIMER ========== SEE COPYING FILE FOR LICENSE INFORMATION. THIS SOFTWARE IS PROVIDED AS A DEVELOPMENT SNAPSHOT TO AID COLLABORATION AND WAS NOT ISSUED AS A RELEASED PRODUCT BY INTEL. LAST UPDATE =========== Agata Wozniak <agata.wozniak@intel.com> Wednesday May 11 2016 TESTS SCENARIOS =============== memkind-afts ------------ This is scenario for basic functional tests. Maximum number of allocations per numa node: - 512 x 4KB pages (summary: 2GB) - 16 x 2MB pages memkind-afts-ext ---------------- The same tests as in memkind-afts, however this tests are more ravenous and needs more memory available. Special test cases prepared only for this scenario are described as ravenous and needs at least: - 512 x 4KB pages (summary: 2GB) - 16 x 2MB pages memory available per numa node. memkind-perf ------------ This is scenario for performance tests, excluding tests that allocate more than: - 512 x 4KB pages (summary: 2GB) - 16 x 2MB pages memkind-perf-ext ---------------- This test scenario extend memkind-perf for tests that allocate more than: - 512 x 4KB pages (summary: 2GB) - 16 x 2MB pages AllocPerformanceTest is a group of performance tests for *alloc() execution. TC properties: - 6 kinds (MEMKIND_DEFAULT, MEMKIND_HBW, MEMKIND_INTERLEAVE, MEMKIND_HBW_INTERLEAVE, MEMKIND_HBW_PREFERRED, PMEM kind) - 3 calls (malloc, calloc, realloc) - 5 allocation sizes (100bytes, 4096bytes, 1000bytes, 1001bytes, 1.5MB - 1572864bytes) - single thread and multithreaded (10threads and 72threads) All tests record three values: - total_time_spend_on_alloc (total time spend on *alloc() call during the test - less is better) - alloc_operations_per_thread (number of done allocations per thread - this value is constant) - ref_delta_time_percent (percent delta between standard allocator and current tested kind - less is better) memkind-slts ------------ This is scenario for all stress and longevity tests. BENCHMARKS =============== fragmentation_benchmark_pmem ------------ The program logging memory fragmentation of specific workload in file with date and timestamps ("bench_single_thread_yyyymmdd-hhmm_mem_<pmem_memory_usage_policy>.log"). The program takes, as arguments: * pmem_path - path where file-backed memory kind should be created * pmem_size - file-backed memory kind size limit, given in megabytes * pmem_memory_usage_policy - 0 - MEMKIND_MEM_USAGE_POLICY_DEFAULT, 1 - MEMKIND_MEM_USAGE_POLICY_CONSERVATIVE * test_time - time how long program runs, given in seconds For example: ./fragmentation_benchmark_pmem /mnt/pmem 17 0 60 This will create PMEM kind limited with 17 MB in /mnt/pmem/ with default memory usage policy and save results in log file after 60 seconds. MANUAL TESTING ============== In order to run tests on local machine, test.sh should be executed. When test.sh is run, all tests are executed as long as -d (skip MCDRAM nodes detection), -m (skip tests that require 2MB pages) parameters are not used.