ocf/tests/functional
Adam Rutkowski 17eddab094 pyocf: queue settle functionality
Queue settle is a mechanism to wait for all OCF processing
on a given queue to finish.

In some tests simply waiting for I/O to finish is not enough. Most
notably some statistics are potentially incremented after user triggered
I/O is finished. This is due to asynchronous nature of I/O operations
and OCF approach to statistics update, where only eventual consistency
is guaranteed without explicit mechanism available to query whether
the final state is reached yet. However it is fully in the adapter power
to determine this, as OCF executes in context of API calls from the
adapter (like I/O submission, ocf_queue_run, ocf_cleaner_run, management
operations) and I/O completion callbacks. Queue settle is a mechanism to
assure ocf_queue_run is not being executed by the thread associated with
a queue.

With queue settle mechanism it is straightforward for the adapter to
wait for cache statistics to reach fixed values:
1. wait for all I/O to OCF to finish
2. settle all I/O queues
3. make sure background cleaner is not active

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-02-24 14:56:09 +01:00
..
config Add global random seed config 2019-10-03 16:31:05 +02:00
pyocf pyocf: queue settle functionality 2022-02-24 14:56:09 +01:00
tests Use new capabilities in surprise shutdown tests 2022-02-24 12:27:10 +01:00
utils Fix license 2021-10-28 13:08:50 +02:00
__init__.py *.ini files added 2019-04-04 10:29:20 +02:00
.gitignore Added codecov badge to README, added coverage files to .gitignore 2020-01-09 10:54:59 +01:00
Makefile Remove executable bit from Makefile 2021-11-24 17:01:03 +01:00
pytest.ini pyocf: document custom markers in pytest.ini 2022-01-13 17:42:42 +01:00