Michal Mielewczyk
600bd1d859
Access partition's metadata counters via functions
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
9d80882b00
Remove re_part
field from struct ocf_req_info
...
Since the request carries an explicit information about number of the
cacheliens to be reparted, no need of keeping the boolean information if some
of the request's cachelines are assigned to a wrong partition
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
e26ca30399
Track explicit number of cachelines to be reparted
...
Instead of redunant calculating number of cachlines to be reparted, keep this
information in request's info
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
4329e617cf
env: print format for 64 bits signed int
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
6ca5779057
Update struct ocf_io_class_info
docs
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
4f228317a1
Update docs for space_managment_evict_do()
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
21e98a6dbc
Evict request's target partition in regrular order
...
Instead of evicting target partition as the last one, respect eviction
priorities
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
e999de7232
Don't roundup when evicting single part
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:25 -05:00
Michal Mielewczyk
718dc743c8
Enable particular ioclass eviction
...
If partition's occupancy limit is reached, cachelines should be evicted from
request's target partition.
Information whether particular partition eviction should be triggered is
carried as a flag by request which triggered eviction.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 08:00:23 -05:00
Michal Mielewczyk
e9d7290078
Extend ioclass management logging
...
When setting ioclass, print info about it's max size
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 06:04:16 -05:00
Michal Mielewczyk
c643a41977
Prevent adding ioclass with the same id twice
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 06:04:16 -05:00
Michal Rakowski
ac2effb83d
Fix whitespaces
...
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2020-12-21 06:04:16 -05:00
Adam Rutkowski
822cd7c45a
Introduce metadata superblock & segment structures
...
Refactoring metadata superblock and segment ops code
to make it less tightly coupled.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 16:35:53 +01:00
Adam Rutkowski
3eb5568608
rename segment->segment_id and segemnt_ops->segment
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 16:35:53 +01:00
Adam Rutkowski
b074d77797
Spliting metadata implementation to match header files
...
Moving metadata implementation out of obsolete metadata_hash.c
to .c files corresponding to function declaration header files.
This requires adding shared header for metadata implementation
metadata_internal.h. Some metadata header files did not have
a corresponding .c file - in this case it is added in this
commit.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 16:35:49 +01:00
Adam Rutkowski
02405e989d
Removing 'hash' word from misspelled metadata functions
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
18e35c390b
Remove last references to "hash" metadata implementation
...
Hashed metadata is now default and only implemetation.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
5fb4d68c7f
Remove get and set from metadata raw ifc
...
Memcopy based metadata interface is an unnecessary
overhead and is being removed.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
6dfdd6940b
Remove metadata ifc structure
...
At this point it is not used
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
4d97b1611f
Move metadata layout field outside meteadata ifc
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
b5d6cdb398
Rename metadata iface_priv to priv
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:50 +01:00
Adam Rutkowski
05c0826c0f
Remove metadata bits manipulation abstraction
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:49 +01:00
Adam Rutkowski
98cba1603f
Replace metadata ifc wrappers with direct calls to hash ifc
...
Metadata wrapper functions (calling iface->func) in header
files are changed to be declarations only. Hash interface
implementation functions in metadata_hash.c are given an
external linkage and are renamed to drop "hash" prefix.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:49 +01:00
Adam Rutkowski
d796e1f400
Remove metadata layout abstraction
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:49 +01:00
Adam Rutkowski
d2af0bafda
Remove redundant locks from metadata flush/load all
...
Locks acquired in ocf_metadata_flush(/load)_all are
acquired only for the duration of queueing asynch
service for flush/load, no actual metadata accesses
are performed there.
Also flush/load all are always performed with metadata
marked as deinitialized (metadata reference counter freezed),
so no I/O is reading nor writing the metadata. The only source
of potential concurrent metadata accesses are other management
operations, which should be synchronized using management lock.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-20 15:09:49 +01:00
Robert Baldyga
3acbe657c5
Merge pull request #429 from arutk/multi_lru2
...
Split LRU list
2020-12-18 17:05:45 +01:00
Adam Rutkowski
680074eebc
Add build requirements to unit tests readme
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-17 14:35:28 +01:00
Adam Rutkowski
d52083a445
unit tests for lru iterator
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-17 14:35:27 +01:00
Adam Rutkowski
44efe3e49e
Refactor LRU code to use part rather than part_id
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-17 14:35:27 +01:00
Adam Rutkowski
41a767de97
Multiple LRU lists
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-17 14:35:27 +01:00
Robert Baldyga
ac83c4ecd6
seq_cutoff: Allocate seq cutoff structures dynamically per core
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-12-17 14:35:27 +01:00
Robert Baldyga
dcc4f65acb
Merge pull request #425 from robertbaldyga/seq-cutoff-dynamic-alloc
...
seq_cutoff: Allocate seq cutoff structures dynamically per core
2020-12-09 15:30:53 +01:00
Robert Baldyga
0fd095046c
Merge pull request #426 from arutk/meta_no_memcpy
...
Remove memcpy from collision/eviction policy metadata api
2020-12-09 13:02:49 +01:00
Robert Baldyga
56ece0fac8
seq_cutoff: Allocate seq cutoff structures dynamically per core
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-12-09 12:58:41 +01:00
Adam Rutkowski
fec61528e6
Remove memcpy from collision/eviction policy metadata api
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-12-07 17:58:44 +01:00
Robert Baldyga
7af386681d
Merge pull request #418 from robertbaldyga/inc-dep-env-headers
...
Remove dependency to full ocf_env.h from inc/ headers
2020-11-30 17:16:32 +01:00
Robert Baldyga
242e70a868
Merge pull request #424 from robertbaldyga/rbtree-fix-swap-with-root
...
rbtree: Fix swapping out-of-tree node with root
2020-11-30 17:16:11 +01:00
Robert Baldyga
9bcafb5bfb
seq_cutoff: Initialize each stream with different LBA
...
Initializing each stream with unique LBA ensures there are no initial
rbtree collisions, and thus helps to avoid clustering of all the streams
into one big linked list instead of forming performance friendly proper
tree structure.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-30 15:58:18 +01:00
Robert Baldyga
b8735f6517
rbtree: Fix swapping out-of-tree node with root
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-30 15:58:18 +01:00
Robert Baldyga
0a57a3a58f
Merge pull request #423 from robertbaldyga/examples-add-missing-includes
...
examples: Add missing includes
2020-11-26 10:12:52 +01:00
Robert Baldyga
dce49048d5
examples: Add missing includes
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-25 12:48:23 +01:00
Robert Baldyga
c8e7e0053c
Remove dependency to full ocf_env.h from inc/ headers
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-19 13:07:16 +01:00
Robert Baldyga
ec723e15e1
Merge pull request #414 from robertbaldyga/seq-cutoff-biggest-stream
...
seq_cutoff: Always continue the biggest stream
2020-11-13 15:48:29 +01:00
Robert Baldyga
a54d4461f0
seq_cutoff: Always continue the biggest stream
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-10 13:21:14 +01:00
Robert Baldyga
8b03271626
rbtree: Introduce list find callback
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-10 13:21:14 +01:00
Robert Baldyga
0ae4f4b5b2
rbtree: Add equal nodes to linked list
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-10 13:21:14 +01:00
Robert Baldyga
50c4de0495
rbtree: Make swap resistant to nodes outside the tree
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-10 13:20:45 +01:00
Robert Baldyga
694224971c
rbtree: Replace spaces with tabs
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2020-11-09 17:32:03 +01:00
Robert Baldyga
3684a2cc32
Merge pull request #412 from robertbaldyga/fix-status-badges-urls
...
Fix status badges URLs
2020-11-09 10:08:39 +01:00
root
934ea045fe
Cover all read paths with read data integrity test logic
...
Extending read test to run in all cachemodes.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2020-11-06 14:43:53 -06:00