Commit Graph

1228 Commits

Author SHA1 Message Date
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