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
Robert Baldyga
bd91b5b4ce
Merge pull request #515 from jfckm/non-zeroing-allocators
...
Use new non-zeroing allocator APIs
2021-06-14 10:05:57 +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
Robert Baldyga
68fccaf9ae
Merge pull request #506 from jfckm/cache-priv-init
...
Add priv field initialization on cache start
2021-05-26 10:31:21 +02:00
Jan Musial
9f1df6e380
Update pyOCF and tests
...
Signed-off-by: Jan Musial <jan.musial@intel.com>
2021-05-26 07:57:37 +02:00
Kozlowski Mateusz
2b498673f0
Fix OCF example build
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2021-05-26 07:48:00 +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
Robert Baldyga
57dbe0e78c
Merge pull request #492 from Open-CAS/shorten-allocator-name
...
Shorten allocator name
2021-05-12 10:23:11 +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
2d62594165
Merge pull request #491 from mmichal10/tests-seq-cutoff-security
...
pyocf: fix valid seq cutoff threshold range
2021-04-15 11:54:15 +02:00
Michal Mielewczyk
d5ae764175
pyocf: fix valid seq cutoff threshold range
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2021-04-15 11:09:26 +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
Michał Mielewczyk
467dfed51e
Merge pull request #489 from Open-CAS/fix-removing-acp-cores
...
Fix removing cores from cleaning policy
2021-04-14 16:58:46 +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
Michał Mielewczyk
aa5de7342c
Merge pull request #488 from mmichal10/seq-cutoff-security-tests
...
Seq-cutoff promotion count secuity tests
2021-04-14 16:02:22 +02:00
Michal Mielewczyk
0bfa9ed870
pyocf: Seq-cutoff promotion count security tests
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2021-04-14 15:40:29 +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
Robert Baldyga
73415c6349
Merge pull request #445 from arutk/probe
...
probe: return dirty and shutdown status despite metadata mismatch
2021-04-06 13:52:19 +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
215f1d925a
Merge pull request #486 from robertbaldyga/seq-cutoff-ignore-invalid
...
seq_cutoff: Ignore invalid streams
2021-04-02 10:15:58 +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
Robert Baldyga
6603e958bf
Merge pull request #485 from arutk/core_stats_fix
...
Fix eviction occupancy stats decrement
2021-04-01 17:19:11 +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
Michal Mielewczyk
8e0bb49493
functional test for eviction between cores
...
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2021-04-01 18:01:28 -05:00
Michał Mielewczyk
fee4382553
Merge pull request #484 from robertbaldyga/cleaner-dont-check-for-valid-on-skip
...
cleaner: Don't check for valid if cache line is not dirty
2021-04-01 14:21:39 +02: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
Robert Baldyga
0bdc8208e9
Merge pull request #482 from arutk/cleaner
...
Remove dirty check from LRU cleaner getter callback
2021-03-30 21:06:42 +02: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
Michał Mielewczyk
5eab515499
Merge pull request #481 from arutk/map_no_early_exit
...
Remove early return from engine_map()
2021-03-26 11:04:10 +01:00
Adam Rutkowski
9486b7796f
Remove early return from engine_map()
...
Removing conditional early return from engine_map() function
in case of insufficient free cachelines. The reasons are:
1. current implementation does not treat unssufficient free
cachelines condition as an error,
2. the check is based on stale request info, so it is inaccurate,
3. it is easier to hit more paths with functional tests,
4. partially mapping request from the freelist becomes more common
rather than being a corner case dependent on racy timings between
threads
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2021-03-26 07:40:24 -05:00
Kozlowski Mateusz
3f9af8bd82
Update pyocf types to new field order
...
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2021-03-26 08:57:04 +01:00
Kozlowski Mateusz
e054949cbb
Metadata updater mutex alignment
...
Avoids trashing of (mostly) static and often used entries
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2021-03-26 08:57:04 +01:00
Kozlowski Mateusz
e391fc2c13
Queue alignment
...
Metadata reshuffling
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2021-03-26 08:57:04 +01:00
Kozlowski Mateusz
fdd6b88cc4
General packing of structs
...
Get back some memory/cachelines by packing any leftover static fields together.
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2021-03-26 08:57:04 +01:00