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.


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.
