Commit Graph

184 Commits

Author SHA1 Message Date
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
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
Adam Rutkowski
6ac6081b25
Merge pull request #83 from robertbaldyga/add-missing-rwsem-up
Add missing env_rwsem_up_write() in ocf_cleaner_run()
2019-03-22 15:58:30 +01:00
Robert Baldyga
ae1f600b57 Add missing env_rwsem_up_write() in ocf_cleaner_run()
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-22 15:51:40 +01:00
Adam Rutkowski
82fe4c04ee
Merge pull request #81 from robertbaldyga/add-missing-context-size
Add missing context size to pipeline properties
2019-03-22 10:37:57 +01:00
Robert Baldyga
9c72aed559 Add missing context size to pipeline properties
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-22 10:27:42 +01:00
Michał Wysoczański
2a2f14ec42
Merge pull request #77 from robertbaldyga/async-save-core-add-remove
Implement asynchronous save, add core and remove core
2019-03-22 10:01:39 +01:00
Robert Bałdyga
70df1d80a1
Merge pull request #79 from Donaim/cleaner-set-queue
Set io_queue for cleaner IOs
2019-03-21 10:08:39 +01:00
Vitaliy Mysak
b9cae8b164 Set io_queue for cleaner IOs
Send cleaner IOs with appropriate queue set
This solves the issue of bottom adapter getting NULL in io->io_queue

Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-03-21 10:03:56 +01:00
Robert Bałdyga
07b2642995
Merge pull request #78 from Donaim/remove-undefined-declaration
Remove undefined declaration: ocf_cleaner_set_io_queue
2019-03-21 09:37:19 +01:00
Vitaliy Mysak
b2b0a56fbd Remove undefined declaration: ocf_cleaner_set_io_queue
Function ocf_cleaner_set_io_queue is not used and not defined
But is declared

This patch removes declaration

Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-03-21 09:17:44 +01:00