Adam Rutkowski
fac35d34a2
Rename "evict" to "remap" across the entire repo
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-18 12:19:08 +02:00
Adam Rutkowski
4f217b91a5
Remove partition list
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-18 12:19:08 +02:00
Adam Rutkowski
87f834c793
Move common user and freelist partition data to a new struct
...
New structure ocf_part is added to contain all the data common for both
user partitions and freelist partition: part_runtime and part_id.
ocf_user_part now contains ocf_part structure as well as pointer to
cleaning partition runtime metadata (moved out from part_runtime) and
user partition config (no change here).
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-18 12:07:10 +02:00
Robert Baldyga
c0b76f9e01
Merge pull request #517 from arutk/hit_shortcut
...
Check for hit after upgrading hash bucket lock
2021-06-17 12:16:18 +02:00
Robert Baldyga
73c3e97f43
Merge pull request #509 from Open-CAS/rm-metadata-updater
...
Remove metadata updater
2021-06-17 09:34:18 +02:00
Kozlowski Mateusz
367fcbfe4e
Update debug prints and methods
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com >
2021-06-16 13:48:37 +02:00
Kozlowski Mateusz
c17b587444
Update cache line concurrency unit tests
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com >
2021-06-16 13:48:37 +02:00
Kozlowski Mateusz
ce316cc67c
Change alock API to include slow/fast lock callbacks
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com >
2021-06-16 13:48:35 +02:00
Adam Rutkowski
d5b16c273e
Check for hit after upgrading hash bucket lock
...
Lookup is repeated after request is identified as miss and hash bucket
lock is upgraded (in order to map missing cachelines). At this point
cachelines status might change and the request might turn out to be
a hit after all. Adding check for this condition removes unnecessary
calls to remap logic.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 23:11:02 +02:00
Kozlowski Mateusz
f49e9d2d6a
Save alock callbacks during initialization
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
f589341c9a
remove metadata updater
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
953e0f25d7
replace metadata updater with metadata I/O concurrency
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
06f3c937c3
mio concurrency
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
69c3c6761b
Add alock ptr to callbacks params
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
fae620a070
Add entry abstraction
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:05 +02:00
Adam Rutkowski
9746df0b1a
rename line to entry
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-15 10:25:04 +02:00
Robert Baldyga
6c617fa688
Merge pull request #514 from jfckm/minor-perf
...
Small performance improvements
2021-06-14 13:32:27 +02:00
Adam Rutkowski
9a1646c8a1
Move alock implementation to separate file
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 13:22:29 +02:00
Adam Rutkowski
2cb7270f63
Finish separating cacheline conc and alock
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:17:06 +02:00
Adam Rutkowski
d22a3ad0e0
Rename cacheline concurrency struct to alock
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:15:43 +02:00
Adam Rutkowski
927bc805fe
Rename generic cacheline cocncurrency to alock
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:14:40 +02:00
Adam Rutkowski
3845da1de8
Rename entry_idx to idx
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:12:42 +02:00
Adam Rutkowski
9d94c0b213
Make cacheline concurrency lock implementation more generic
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:12:42 +02:00
Adam Rutkowski
fdbdcbb4a6
Rename cb to cmpl in cacheline concurrency
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:12:42 +02:00
Adam Rutkowski
4634885111
Use request in instead of opaque ctx in cacheline concurrency
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-06-14 12:12:42 +02:00
Rafal Stefanowski
5486e159f4
Fix seq-cutoff promotion count message typo
...
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@intel.com >
2021-06-11 06:02:01 +02:00
Jan Musial
f25d9a8e40
Use new non-zeroing allocator APIs
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-06-10 15:38:44 +02:00
Jan Musial
a52a3b75e5
Mark unlikely conditionals in hot code paths in metadata_raw
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-06-10 15:20:33 +02:00
Jan Musial
4031b4b2ae
Delete metadata self-test
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-06-10 15:20:25 +02:00
Kozlowski Mateusz
4aff637e57
Add priv field initialization on cache start
...
This allows access to it in ctx_metadata_updater_init, which is
done in the same call stack during initalization.
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com >
2021-05-25 15:51:00 +02:00
Michal Mielewczyk
1d9776481c
Shorten allocator name
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2021-04-27 08:40:51 +02:00
Michał Mielewczyk
5b3a9606d3
Merge pull request #490 from mmichal10/check-core-uuid
...
Prevent adding core with the same UUID twice
2021-04-14 20:05:22 +02:00
Michal Mielewczyk
19276570b8
Prevent adding core with the same UUID twice
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com >
2021-04-14 16:56:09 +02:00
Jan Musial
6ced60471d
Additional safeguard in acp_remove_core
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-04-14 14:57:08 +02:00
Jan Musial
51455330ad
Fix removing cores from cleaning policy
...
After detaching a core if user wanted to remove inactive cores the
cleaning policy data would not be initialized and would bug-out on next
core add.
This check was incorrect, as cleaning policy core metadata lifetime is
not bound to core volume being open or not.
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-04-14 14:31:51 +02:00
Robert Baldyga
7dcf90ef6a
Merge pull request #487 from Open-CAS/fix-io-put
...
Avoid nullptr dereference in ocf_io_put
2021-04-06 14:09:09 +02:00
Adam Rutkowski
0476511c00
probe: return dirty and shutdown status despite metadata mismatch
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-04-06 14:07:42 -05:00
Adam Rutkowski
ff4842482e
Fix setting cache dirty flag during stop
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-04-06 14:07:42 -05:00
Jan Musial
67f80d813c
Avoid nullptr dereference in ocf_io_put
...
Signed-off-by: Jan Musial <jan.musial@intel.com >
2021-04-06 13:38:34 +02:00
Robert Baldyga
9a3f64df28
seq_cutoff: Ignore invalid streams
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2021-04-01 18:46:28 +02:00
Adam Rutkowski
2fadd5a22a
Fix eviction occupancy stats decrement
...
Eviction should decrement occupancy statistics for the
core from which a cacheline is being evicted rather than
from the I/O target core.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-04-01 18:01:28 -05:00
Robert Baldyga
49b9b36d13
cleaner: Don't check for valid if cache line is not dirty
...
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com >
2021-04-01 13:28:19 +02:00
Michał Mielewczyk
642794dcd7
Merge pull request #483 from arutk/repart_fix
...
Fix repartitioning in request refresh path
2021-03-31 11:32:28 +02:00
Adam Rutkowski
719676c444
Fix repartitioning in request refresh path
...
update_req_info() should include REMAPPED cachelines
in repart stats (number of cachelines within request
belonging to other than the target partition).
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-03-31 12:13:48 -05:00
Adam Rutkowski
521258bcc8
Remove dirty check from LRU cleaner getter callback
...
This check is incorrect as cacheline status may change
from dirty to clean at any point during cleaning, except for
when the hash bucket is locked.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-03-30 13:10:28 -05:00
Michał Mielewczyk
c2e588be9d
Merge pull request #476 from mmkayPL/cacheline-alignment
...
Cacheline alignment
2021-03-26 12:01:55 +01:00
Michał Mielewczyk
2aa8922fea
Merge pull request #478 from Open-CAS/fix-freeing-discard-reqs
...
Fix freeing oversized discard requests
2021-03-26 11:33:40 +01:00
Michał Mielewczyk
a6c8cbb1ac
Merge pull request #479 from arutk/lru_fix3
...
Always call LRU_set_hot() under hash bucket lock
2021-03-26 11:04:59 +01:00
Michał Mielewczyk
78d7e5294f
Merge pull request #480 from arutk/lru_fix4
...
Clear hot flag when removing node from LRU list
2021-03-26 11:04:47 +01:00
Adam Rutkowski
b87008dc67
Clear hot flag when removing node from LRU list
...
This isn't strictly required in current implementation as
nodes are always re-initialized before inserting to LRU list.
However it seems to make sense to zero the flag anyway to
make the code easier to reason about.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com >
2021-03-26 10:25:03 -05:00