Commit Graph

193 Commits

Author SHA1 Message Date
Jan Musial
db46a9decb Stop using mgmt queue for IO in pyocf
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-10 11:25:39 +02:00
Michal Rakowski
6188f3689e
Merge pull request #107 from imjfckm/master
Fix IO queue validation
2019-04-08 14:51:55 +02:00
Jan Musial
15fb0d04bd Fix IO queue validation
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-08 14:40:20 +02:00
Adam Rutkowski
2a98cf8737
Merge pull request #105 from imjfckm/master
Fix flushing of volatile metadata containers
2019-04-08 07:01:20 -04:00
Jan Musial
5d6277e7cf Fix flushing of volatile metadata containers
Before async metadata we used to return 0 on flushing volatile
containers, this way we didn't have to special-case them.
This change brings back this behavior.

Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-08 12:39:53 +02:00
Jan Musiał
c298aaa5a9
Merge pull request #101 from Deixx/cache_flush
Extract cache.flush() method from cache.stop()
2019-04-08 11:16:11 +02:00
Michał Mielewczyk
f9e5d019df
Merge pull request #103 from arutk/arutk-force-separate-mngmt-io-queue
Do not allow top volume I/O on management queue
2019-04-05 13:22:40 +02:00
Adam Rutkowski
d88a4ac57a Do not allow top volume I/O on management queue
Core volume I/O must not be queued on management queue - this would
break I/O accounting code, resulting in use-after-free type of errors
after cache detach, core remove etc.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-04-05 14:55:28 -04:00
Michal Rakowski
b8ff6e515f
Merge pull request #102 from arutk/ajrutkow-fix-core-flush-interrupt-logic
Reset interrupted flag in core_flush
2019-04-05 12:11:08 +02:00
Adam Rutkowski
0b68e02e9a Reset interrupted flag in core_flush
This line got lost in async flush rework

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-04-05 13:26:55 -04:00
Daniel Madej
1fa52e84a8 Extract cache.flush() method from cache.stop()
Signed-off-by: Daniel Madej <daniel.madej@intel.com>
2019-04-04 11:13:45 +02:00
Katarzyna Łapińska
659a587d04
Merge pull request #100 from imjfckm/master
Add remove_core fcn
2019-04-04 11:12:35 +02:00
Jan Musial
be773a45af Add remove_core fcn
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-04 10:58:29 +02:00
Daniel Madej
d9d4f2fab1
Merge pull request #99 from katlapinka/ini
Ini
2019-04-04 10:50:39 +02:00
Daniel Madej
506279baf9
Merge pull request #98 from imjfckm/master
Fix core_new_io
2019-04-04 10:37:29 +02:00
klapinsk
a8780655e2 *.ini files added 2019-04-04 10:29:20 +02:00
Jan Musial
753ab00331 Fix core_new_io
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-03 15:48:14 +02:00
Michal Rakowski
a8eac88778
Merge pull request #97 from imjfckm/master
Make libocf.so loading CWD independent
2019-04-03 12:57:20 +02:00
Jan Musiał
36690f7e1f
Merge 59178eef01 into 0c6bdaeba4 2019-04-03 10:32:16 +00:00
Jan Musial
59178eef01 Make libocf.so loading CWD independent
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-03 12:28:15 +02:00
Kamil Łepek
0c6bdaeba4
Merge pull request #95 from imjfckm/master
Make pyocf work with async API
2019-04-03 12:26:47 +02:00
Jan Musial
545d5b8aac Make pyocf work with async API
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-04-03 11:13:27 +02:00
Michał Wysoczański
0192f4070d
Merge pull request #96 from micrakow/volume_move_fix
Added original uuid deinitialization without freeing
2019-04-02 11:31:46 +02:00
Michal Rakowski
a6c75b9900 Added original uuid deinitialization without freeing
There is a risk that without uuid.data pointer denitialization it will
be freed during original volume deinit, zeroing uuid.data pointer
prevents that.

Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
2019-04-02 11:02:51 +02:00
Michał Wysoczański
ae63eead0c
Merge pull request #94 from arutk/volume_open_params
Add volume_params argument to bottom volume open
2019-04-02 10:53:12 +02:00
Adam Rutkowski
2aba5a2843 Add volume_params argument to bottom volume open
This pointer is used to provide optional volume specific data
from the user down to bottom volume open callback. volume_params
is provided to OCF in ocf_mngt_cache_device_config.volume_params.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-04-01 19:28:14 -04:00
Michał Mielewczyk
cc30794160
Merge pull request #93 from arutk/test_build_werror
Treat warnings as errors in tests/build/Makefile
2019-04-01 15:28:49 +02:00
Adam Rutkowski
e06082c4a3 Treat warnings as errors in tests/build/Makefile
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-04-01 12:38:43 -04:00
Adam Rutkowski
7e9ff6456d
Merge pull request #92 from mmichal10/fix-preventing-metadata-override
Return error on start when detected old metadata of not flushed cache.
2019-03-29 16:29:22 +01:00
Michal Mielewczyk
a1075f7cf6 Return error on start when detected old metadata of not flushed cache.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-03-29 11:22:49 -04:00
Adam Rutkowski
d34942e7e5
Merge pull request #91 from mmichal10/fix-cleaning-pol-ret-val
Fix inappropriate return value when setting cleaning policy
2019-03-29 15:53:21 +01:00
Michal Mielewczyk
05be94f7e5 Fix inappropriate return value when setting cleaning policy
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-03-29 10:45:45 -04:00
Robert Bałdyga
5f4ce72c4d
Merge pull request #90 from arutk/ioclass-0-lowercase
Rename default IO class to lowercase "unclassified"
2019-03-29 13:29:44 +01:00
Adam Rutkowski
9a3713fe74 Rename default IO class to lowercase "unclassified"
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-29 15:15:44 -04:00
Robert Bałdyga
40f1e9e0d3
Merge pull request #89 from arutk/prv-increase_io_class_name_size
Increase IO class name length limit
2019-03-27 14:11:16 +01:00
Michal Wysoczanski
901bbc5ebf Make ioclass name bigger
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-27 17:09:01 -04:00
Jan Musiał
04c3802717
Merge pull request #88 from robertbaldyga/has-pending-cleaning
Introduce ocf_cache_has_pending_cleaning() function
2019-03-27 11:27:15 +01:00
Robert Baldyga
5699422586 Introduce ocf_cache_has_pending_cleaning() function
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-26 15:09:52 +01:00
Michał Wysoczański
03c95d36f0
Merge pull request #82 from robertbaldyga/asynchronous-metadata
Handle metadata asynchronously
2019-03-26 12:54:26 +01:00
Robert Baldyga
6cd84476f6 Handle metadata asynchronously
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-26 12:49:23 +01:00
Michał Wysoczański
bf9b85150f
Merge pull request #87 from arutk/prv-async_flush
Asynchronous flush and purge - part 2
2019-03-26 12:34:24 +01:00
Adam Rutkowski
54374639b8 Asynchronous wait for dirty requests in flush
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-26 15:23:42 -04:00
Adam Rutkowski
7003d38b44 Encapsulate request reference counting logic in utils_refcnt
In order to synchronize management operations with I/O OCF
maintains in-flight request counters. For example such ref
counters are used during ocf_mngt_detach to drain requests
accessing cache metadata (cache requests counter) and in
ocf_mngt_flush where we wait for outstanding requests sent
in write back mode (dirty requests counter).

Typically I/O threads increment cache/dirty counter when
creating request and decrement counter on request completion.
Management thread sets atomic variable to signal the start of
management operation. I/O threads react to this by changing
I/O requests mode so that the cache/dirty reference counter
is not incremented. As a result reference counter keeps getting
decremented. Management thread waits for the counter to drop to 0
and proceeds with management operation with assumption that no
cache/dirty requests are in progress.

This patch introduces a handy utility for requests reference
counting logic. ocf_refcnt_inc / dec are used to increment/
decrement counter. ocf_refcnt_freeze() makes subsequent
ocf_refcnt_inc() calls to return false, indicating that counter
cannot be incremented at this moment. ocf_refcnt_register_zero_cb
can be used to asynchronously wait for counter to drop to 0.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-26 15:22:31 -04:00
Michał Wysoczański
08a5b9d2a4
Merge pull request #86 from Donaim/delay-put-cache
Put cache after doing pipeline_destroy
2019-03-26 11:38:01 +01:00
Vitaliy Mysak
2f2f004867 Put cache after doing pipeline_destroy
Cache is used during pipeline_destroy which means that
doing put_cache before destroying pipeline may result in
accessing memory that was freed.

Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-03-26 19:30:34 +00:00
Adam Rutkowski
1a234744ef Fix flush cache error handling
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-25 22:26:53 -04:00
Adam Rutkowski
8998e145f2
Merge pull request #84 from Donaim/atomic-dec-return
atomic_dec_return -> env_atomic_dec_return
2019-03-25 19:48:20 +01:00
Vitaliy Mysak
51396bf0e6 atomic_dec_return -> env_atomic_dec_return
Fix usage of undefined function

Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-03-26 02:55:45 +00:00
Robert Bałdyga
a084c1cb1c
Merge pull request #80 from arutk/prv-async_flush
Asynchronous flush and purge operations - part 1
2019-03-22 23:24:10 +01:00
Adam Rutkowski
0d0fd0be75 Asynchronous implementation of flush and purge - part 1
For flush/purge entry points to be fully asynchronous we still
need to rework flush mutex and waiting for outstanding dirty
requests.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2019-03-22 17:04:33 -04:00