Commit Graph

134 Commits

Author SHA1 Message Date
Robert Baldyga
72b6f35f52 Implement asynchronous save, add core and remove core
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-21 09:03:59 +01:00
Adam Rutkowski
f81a7e9d23
Merge pull request #76 from robertbaldyga/utils-pipeline-arg
Parametrize pipeline steps
2019-03-21 09:00:52 +01:00
Robert Baldyga
23b0a32aec Parametrize pipeline steps
This allows to reuse same step functions giving them different parameters
on each step.

Additionally move pipeline to utils, to make it accessible to other
subsystems of OCF (e.g. metadata).

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-20 17:06:56 +01:00
Michał Wysoczański
7a3b3fd84f
Merge pull request #75 from robertbaldyga/asynchronous-cache-attach
Implement asynchronous attach, load and stop
2019-03-19 11:43:40 +01:00
Robert Baldyga
91e0345b78 Implement asynchronous attach, load, detach and stop
NOTE: This is still not the real asynchronism. Metadata interfaces
are still not fully asynchronous.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-03-18 15:06:57 +01:00
Michał Mielewczyk
56f4d34920
Merge pull request #71 from robertbaldyga/asynchronous-api
Make management API asynchronous
2019-03-12 10:51:24 +01:00
Robert Baldyga
c5df82f2cb Make management API asynchronous
NOTE: This patch only changes API that pretends to be asynchronous.
Most of management operations are still performed synchronously.
The real asynchronism will be introduced in the next patches.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-12 10:33:26 +01:00
Michal Rakowski
e21b617841
Merge pull request #69 from mmichal10/alru-clean-improvement
Alru clean improvement
2019-03-11 12:45:26 +01:00
Michal Mielewczyk
d06f376627 Alru cleaning policy improvement
Instead of calling flush separatly for each IO class, it is called after
collecting number of dirty cache lines defined by user or after iterating
through all IO classes.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-03-11 04:08:16 -04:00
Michal Mielewczyk
b611c0e67a Calling completions function in nop cleaning policy.
Unlocking cache and putting queue are perormed in cleaning completion, so all
cleaning policies has to call completion.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-03-11 04:08:16 -04:00
Robert Bałdyga
d86e253fe9
Merge pull request #68 from abysdom/master
Fix incorrect image paths in HOME.md
2019-03-11 09:01:47 +01:00
Katarzyna Łapińska
415230b7bc
Merge pull request #34 from micrakow/test_adapters
Test adapters
2019-03-07 12:57:11 +01:00
Michal Rakowski
e5227cef89 Implement pyocf adapter with sample OCF test
PyOCF is a tool written with testing OCF functionality in mind.
It is a Python3 (3.6 version required) package which wraps OCF
by providing Python objects in place of OCF objects (volumes, queues,
etc). Thin layer of translation between OCF objects and PyOCF objects
enables using customized behaviors for OCF primitives by subclassing
PyOCF classes.

This initial version implements only WT and WI modes and single,
synchronously operating Queue.

TO DO:

  - Queues/Cleaner/MetadataUpdater implemented as Python threads
  - Loading of caches from PyOCF Volumes (fix bugs in OCF)
  - Make sure it works multi-threaded for more sophisticated tests

Co-authored-by: Jan Musial <jan.musial@intel.com>
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
Signed-off-by: Jan Musial <jan.musial@intel.com>
2019-03-07 12:48:40 +01:00
Yang Yuanzhi
f78428193e Fix incorrect image paths in HOME.md
Signed-off-by: Yang Yuanzhi <yangyuanzhi@gmail.com>
2019-03-07 12:39:41 +08:00
Michal Rakowski
794b008127
Merge pull request #66 from robertbaldyga/metadata-probe-asynchronous
Make metadata probe asynchronous
2019-03-04 12:26:34 +01:00
Michal Rakowski
bd19b9c12f
Merge pull request #67 from robertbaldyga/cache-trylock
Add cache locking functions in trylock variant
2019-03-04 11:19:54 +01:00
Robert Baldyga
9b9b965b55 Add cache locking functions in trylock variant
- Add cache trylock and read trylock functions.
- Introduce new error code -OCF_ERR_NO_LOCK.
- Change trylock functions in env to return this code in case of
  lock contention.

[ENV CHANGES REQUIRED]
Following functions should return 0 on success or -OCF_ERR_NO_LOCK
in case of lock contention:
- env_mutex_trylock()
- env_rwsem_up_read_trylock()
- env_rwsem_up_write_trylock()

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-01 17:31:32 +01:00
Robert Baldyga
9c0390a6ce Make metadata probe asynchronous
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-03-01 15:46:16 +01:00
Michal Rakowski
71d30e948d
Merge pull request #65 from Open-CAS/add-set-flush-queue
Add ocf_cache_set_flush_queue() function
2019-02-28 10:53:24 +01:00
Robert Baldyga
c1028b2b89 Add ocf_cache_set_flush_queue() function
This is needed to enable flushing with dynamic queues.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-28 10:51:51 +01:00
Jan Musiał
d5ac3035d7
Merge pull request #64 from robertbaldyga/add-has-pending-reqs-func
Add ocf_cache_has_pending_requests() function
2019-02-27 12:22:16 +01:00
Jan Musiał
e235500472
Merge pull request #63 from robertbaldyga/dynamic-queues
Dynamic queues management
2019-02-27 11:03:36 +01:00
Michal Mielewczyk
e53944d472 Dynamic I/O queue management
- Queue allocation is now separated from starting cache.
- Queue can be created and destroyed in runtime.
- All queue ops accept queue handle instead of queue id.
- Cache stores queues as list instead of array.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-26 17:36:19 +01:00
Robert Baldyga
03bd6d6c49 Add ocf_cache_has_pending_requests() function
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-26 17:23:07 +01:00
Michal Mielewczyk
1771228a46 Removed starting cache from load
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-02-20 17:36:37 -05:00
Michal Rakowski
bdcdd57cf5
Merge pull request #61 from robertbaldyga/wait-io-finish-func
Add API function ocf_cache_wait_for_io_finish()
2019-02-20 12:22:10 +01:00
Robert Baldyga
44ed250d41 Add API function ocf_cache_wait_for_io_finish()
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-20 11:16:06 +01:00
Robert Bałdyga
435cc6209a
Merge pull request #60 from robertbaldyga/make-cleaner-async
Make cleaner asynchronous
2019-02-19 16:18:21 +01:00
Robert Baldyga
404b976109 Make cleaner asynchronous
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-19 16:10:24 +01:00
Robert Bałdyga
163392af0b
Merge pull request #55 from MinneyJohn/metadata_improve
Improvement of metadata flush setting
2019-02-19 15:49:02 +01:00
xqzhou
bbb0e1bbb0 Improvement of metadata flush setting
Signed-off-by: xqzhou <xue.qiang.zhou@intel.com>
2019-02-19 05:14:06 -07:00
Michal Rakowski
276d91fcd7
Merge pull request #59 from mmichal10/run-queue-single-request
Added function to hanlde single request from queue.
2019-02-14 12:58:52 +01:00
Michal Mielewczyk
f8037cb349 Added function to hanlde single request from queue. 2019-02-13 12:02:59 -05:00
Michal Rakowski
a089df00df
Merge pull request #56 from robertbaldyga/readme-examples-build-test
Add examples and build test info to Readme
2019-02-11 09:58:50 +01:00
Michal Rakowski
709c9a872b
Merge pull request #58 from robertbaldyga/rename-data-obj-to-volume
Rename "data object" to "volume"
2019-02-08 14:33:18 +01:00
Robert Baldyga
97300b1137 Rename "data object" to "volume"
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-08 14:13:05 +01:00
Robert Baldyga
62eb5a23a7 Add examples and build test info to Readme
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-02-04 11:59:46 +01:00
Robert Bałdyga
21012df2f8
Merge pull request #47 from mmichal10/task-cache-mode-per-io-class
Mutators for all io classes at once
2019-01-29 10:14:41 +01:00
Michal Mielewczyk
2dfd6248c9 Configure all io classes at once.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-01-28 08:51:26 -05:00
Michal Mielewczyk
5e97795630 Fixed script for generating UT templates
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-01-24 05:16:16 -05:00
Michal Mielewczyk
5c81824a8d Added mechanism for preventing dirty requests.
Instead of switching write policy to pass-through, barrier is rised
by incrementing counter in ocf_cache_t structure.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-01-24 05:16:16 -05:00
Michał Mielewczyk
ec37b2ea9e
Merge pull request #51 from robertbaldyga/add-logger-priv
Enable passing priv to logger during context initialization
2019-01-24 11:13:39 +01:00
Robert Baldyga
3b4a666942 Enable passing priv to logger during context initialization
This may be used in logger implementations that need file
name or descriptor to initialize properly.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-01-24 10:54:50 +01:00
Michał Mielewczyk
e7f672c667
Merge pull request #50 from robertbaldyga/reorganize-context-ops
Reorganize context ops
2019-01-22 13:41:11 +01:00
Robert Baldyga
6860cdbd2c Reorganize context ops
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-01-22 13:14:35 +01:00
Michał Mielewczyk
e5a13ef186
Merge pull request #49 from robertbaldyga/handle-error-in-example
Handle properly error in example
2019-01-22 12:06:11 +01:00
Robert Baldyga
763997bb06 Handle properly error in example
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-01-22 12:03:12 +01:00
Kamil Łepek
e7b5105d60
Merge pull request #45 from robertbaldyga/create-license
Create LICENSE file
2019-01-22 08:00:20 +01:00
Jan Musiał
a6c74818a6
Merge pull request #48 from robertbaldyga/lock-api-cleanup
Cache locking cleanup and API improvements
2019-01-21 13:51:16 +01:00
Robert Baldyga
03c2f142b3 Cache lock cleanup and API improvements
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2019-01-21 13:46:28 +01:00