Robert Baldyga
d1c2fc0c67
discard: Make max_length aligned to sector size
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2020-01-21 12:44:04 +01:00
Robert Baldyga
e06832426d
cleaner: Retrieve core object properly
...
Cleaner doesn't set core object in req as it works in domain of cache
lines, which may belong to various cores. It this case should retrieve
core object not from the req, but from the map instead.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-12-19 14:44:04 +01:00
Michal Mielewczyk
db06783d56
Fix cache stats updating.
...
When single request to cache was issued, stats updating function was called with
0 bytes as value to update. In case of many request issued to cache, stats were
updated only in case of error.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-10-08 08:49:24 -04:00
Robert Baldyga
f51f7f7e1e
Update stats before calling completion callback
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-10-02 18:49:59 +02:00
Michal Rakowski
2575be83fa
Error handling for env_rwsem_init added
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com >
2019-09-30 17:16:37 +02:00
Michal Rakowski
b78557a2cc
Change env_spinlock_init to non-void function
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com >
2019-09-30 17:15:27 +02:00
Michał Wysoczański
aafe870e44
Merge pull request #280 from arutk/metadata_sync_2
...
Additional metadata synchronization
2019-09-25 14:11:59 +02:00
Adam Rutkowski
be3b402162
Synchronization of collision table
...
Adding synchronization around metadata collision segment pages.
This part of metadata is modified when cacheline is mapped/unmapped
and when dirty status changes.
Synchronization on page level is required on top of cacheline
and hash bucket locks to assure metadata flush always reads
consistent state when copying entire collision table memory
page.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-09-25 00:26:29 -04:00
Robert Baldyga
b8f5f135fe
ocf_async_lock: Replace mutex with spinlocks
...
The ocf_async_lock may be used in atomic context, thus we need
to replace synchronization primitives to non-sleeping variants.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-09-23 15:54:25 +02:00
Adam Rutkowski
d2bd807e49
Remove calls to OCF_METADATA_(UN)LOCK_WR(RD)
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-09-20 17:21:00 -04:00
Adam Rutkowski
f34cacf150
Move resume callback to async lock function params (refactoring)
...
This is a step towards common async lock interface in OCF.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-09-20 17:21:00 -04:00
Michał Mielewczyk
f86287ef06
Merge pull request #261 from micrakow/coverity_19_9
...
Fixed some bugs found by the coverity tool
2019-09-17 09:25:18 +02:00
Michal Rakowski
83e23c5593
Fixed some bugs found by the coverity tool
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com >
2019-09-16 15:49:37 +02:00
Michal Mielewczyk
c5edc60345
Fix stats update in cleaner.
...
Core is not assigned to request in cleaner, so to increase it's stats it has to
be retrieved from mapping.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-09-16 05:59:28 -04:00
Michal Mielewczyk
494a1ccc79
Extract stats builder utils to separate file.
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-09-12 05:21:17 -04:00
Michal Mielewczyk
01ce586e6a
Use API instead of raw variables to update block stats.
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-09-10 08:01:09 -04:00
Michal Mielewczyk
b4c384eb2d
Use API instead of raw variables to update error stats.
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-09-10 08:01:09 -04:00
Michal Mielewczyk
2450d3da4b
Move block stats counters to ioclass section.
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2019-09-09 02:46:45 -04:00
Firas Medini
1f979f630b
Adding synchronization primitives destroyers
...
Environment should provide calls for destroying primitives (i.e. env_mutex_destroy()) and OCF should call these functions in its cleanup paths.
Signed-off-by: Firas Medini <mdnfiras@yahoo.com >
2019-08-13 05:13:11 -07:00
Kamil Łepek
05be67a72b
Merge pull request #220 from arutk/metadata_offset_hash
...
New hash function formula
2019-07-29 13:03:04 +02:00
Adam Rutkowski
494861c994
Rename cache_concurrency to cache_line_concurrency
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-07-24 15:32:12 -04:00
Adam Rutkowski
7184f7787c
Cleanup map_info struct
...
1. Rename hash_key -> hash
2. Better comments for hash and coll_idx
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-07-24 13:12:05 -04:00
Jan Musiał
232f0cd8d7
Merge pull request #216 from robertbaldyga/io-and-req-in-single-allocation
...
Allocate io and req in single allocation
2019-07-23 11:40:30 +02:00
Jan Musial
917cbd859a
Add promotion policy API and use it in I/O path
...
Promotion policy is supposed to perform ALRU noise filtering by
eliminating one-hit wonders being added to cache and polluting it.
Signed-off-by: Jan Musial <jan.musial@intel.com >
2019-07-19 13:52:00 +02:00
Robert Baldyga
e64bb50a4b
Allocate io and request in single allocation
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-07-17 10:31:23 +02:00
Robert Baldyga
61414f889e
Introduce OCF IO allocator
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-07-17 10:31:23 +02:00
Robert Baldyga
e254c9b587
Merge new_io and configure into one function
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-07-17 10:31:23 +02:00
Adam Rutkowski
9dc1381b77
Refactor ocf_submit_cache_reqs map indexing
...
Refactoring ocf_submit_cache_reqs to make it clear that
req->map is accessed at index derived from offset argument,
not necesarily starting at 0.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-06-12 18:56:40 -04:00
Adam Rutkowski
82e8c55f4a
Write-only cache mode
...
Write-only cache mode is similar to writeback, however read
operations do not promote data to cache. Reads are mostly serviced
by the core device, only dirty sectors are fetched from the cache.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-06-12 12:07:02 -04:00
Adam Rutkowski
ae6164a49c
Helper functions to get request start/end sector in cacheline
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-06-12 12:07:02 -04:00
Michal Mielewczyk
6cdbac82bc
Check for valid core_id value
2019-06-11 12:12:07 +02:00
Michal Rakowski
b1cf6c4642
Changed always returning 0 to void foo
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com >
2019-06-11 09:53:40 +02:00
Michal Rakowski
9f4536c6e3
Error codes in IO path changed to OCF-specific
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com >
2019-06-05 09:10:54 +02:00
Robert Baldyga
f240f81641
Make request structure more compressed
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-06-03 19:19:29 +02:00
Robert Baldyga
711de86bff
Associate core metadata with core object
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-28 14:49:59 +02:00
Robert Baldyga
8a82be339f
Introduce asynchronous cache lock
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-28 11:20:48 +02:00
Robert Baldyga
f9447fda75
Remove all the trailing whitespaces
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-27 17:00:39 +02:00
Robert Baldyga
bdcd4df0ef
Remove utils_device.h
...
Move core mngt related code to ocf_mngt_core.c
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-27 17:00:39 +02:00
Robert Baldyga
7de56940a4
Move ocf_request from utils
...
ocf_request has always been first class citizen in OCF,
so lets place it along with another essential objects.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-27 15:51:27 +02:00
Robert Baldyga
ab2fc6d3c3
Rename utils_allocator to utils_realloc
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-27 13:10:17 +02:00
Robert Baldyga
cda536a14a
Remove mpool from OCF utils
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-27 13:04:40 +02:00
Robert Baldyga
7ff4a349ec
Use enum cache line values when validating config
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-23 13:29:49 +02:00
Michal Rakowski
4216ff78f1
Merge pull request #163 from robertbaldyga/put-queue-after-deallocating-req
...
Put queue after deallocating request
2019-05-23 10:38:13 +02:00
Robert Baldyga
dbef4b721c
Put queue after deallocating request
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-21 16:09:58 +02:00
Robert Baldyga
0490dd8bd4
ocf_reqest: Store core handle instead of core_id
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2019-05-21 12:30:29 +02:00
Adam Rutkowski
348b0f9ab8
Async wait for cleaner completion
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-05-06 19:37:49 -04:00
Adam Rutkowski
0e15c693fd
Return post modification value from ocf_refcnt_inc/dec
...
If counter is frozen then increment returns 0.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-05-06 19:23:11 -04:00
Adam Rutkowski
962f9d17d1
Remove functions to wait for cache pending requests
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-05-06 19:23:11 -04:00
Adam Rutkowski
dc716d6a08
Use ref counter to track attach state
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-05-06 19:23:10 -04:00
Adam Rutkowski
555f477248
Do not increment attached metadata counter on behalf of mngt requests
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2019-05-06 19:22:29 -04:00