Commit Graph

1465 Commits

Author SHA1 Message Date
Michal Mielewczyk
92fa8f7e59 Remove redundant standby check
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-04-08 15:34:14 +02:00
Michal Mielewczyk
bc30d2665b Prevent sending io to volume if it not opened
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-04-08 15:34:14 +02:00
Michal Mielewczyk
9734980be2 Free memory when failed to open core volume
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-04-08 15:34:14 +02:00
Robert Baldyga
a0bf8587a0
Merge pull request #697 from arutk/deinit_pio_in_stop
Add missing pio deinitialization in standby stop pipeline
2022-04-07 13:02:06 +02:00
Adam Rutkowski
8f24556cec Add missing pio deinitialization in standby stop pipeline
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-04-07 12:23:03 +02:00
Adam Rutkowski
550a479cde fix typo in cache mngmt
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-04-07 12:23:03 +02:00
Robert Baldyga
bbaffd96a3
Merge pull request #696 from robertbaldyga/remove-spaces-from-vol-names
Remove space from names of internal volumes
2022-04-06 14:00:21 +02:00
Robert Baldyga
dc9c076ef3 Remove space from names of internal volumes
Those names are used for creating allocators. In Linux kernel environment
starting from version 5.12 there is a kernel warning if allocator name
contains spaces. This patch resolves this problem by replacing spaces with
underscores.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-04-06 13:23:02 +02:00
Robert Baldyga
744c5d4164
Merge pull request #694 from robertbaldyga/fix-double-clp-init
Avoid double initialization of cleaning policy in standby mode
2022-04-04 12:55:50 +02:00
Robert Baldyga
c677f65212 Avoid double initialization of cleaning policy in standby mode
Cleaning policy is initialized on standby activate, after all the metadata
from primary cache is flushed and the actual recovery is being performed.
Thus initializing it earlier on standby attach is incorrect.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-04-04 12:08:27 +02:00
Robert Baldyga
65918344c0
Merge pull request #691 from arutk/fix_core_load_err
Fix core load cleanup loop
2022-04-01 14:57:58 +02:00
Adam Rutkowski
77380d6579 Fix core load cleanup loop
conf_meta->core_count is not modified during load/recovery in the latest
version. Thus in case of error in cores initialization, in order to
iterate over the initialized cores we must depend on core->added only,
regardles of conf_meta->core_count value. for_each_core() macro does
exactly this.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-04-01 13:53:25 +02:00
Robert Baldyga
fdb32541cb
Merge pull request #690 from kmajzero/fix_error_1155
Fix error code for superblock checksum mismatch
2022-04-01 13:15:15 +02:00
Krzysztof Majzerowicz-Jaszcz
1b3f0d44a8 Fix error code for superblock checksum mismatch
Fix error code for superblock checksum mismatch.
Superblock validation now returns a proper error on checksum check fail.

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-04-01 07:23:49 +00:00
Robert Baldyga
48fb745686
Merge pull request #688 from robertbaldyga/manage-valid-core-bitmap
Manage valid_core_bitmap properly
2022-03-31 14:32:34 +02:00
Adam Rutkowski
09b73461b4 Always modify valid_core_map together with core_count
.. to assure that superblock config state on drive is consistent

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-31 13:37:42 +02:00
Adam Rutkowski
77a709c086
Merge pull request #689 from mmichal10/security-fix
pyocf: minor security test fixes
2022-03-31 11:32:21 +02:00
Michal Mielewczyk
09d2843468 pyocf: minor security test fixes
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-03-31 10:01:05 +02:00
Robert Baldyga
9ebb0de878 Do not modify core_count on cache load / activate
Increment core_count only on core addition, and decrement it only on core
removal.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-31 10:00:24 +02:00
Robert Baldyga
25434cb8d1 Explicitly validate valid_core_bitmap consistency
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-30 23:46:06 +02:00
Robert Baldyga
9c751dd2b8 Manage valid_core_bitmap properly
Set bit only on core addition and clean it on core removal.

This allows to avoid conf metadata modification in load / standby load
paths, which effectively prevents issues with metadata mismatch during
consequent standby activate attempts after initial activate failure.
Previously the first attempt changed the metadata, so on comparison with
metadata on drive failed on any following attempt, leading to inability
to activate the cache.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-30 23:46:06 +02:00
Robert Baldyga
d550c8f4ef Fix minor coding style issues
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-30 22:15:50 +02:00
Robert Baldyga
ca8531a421
Merge pull request #685 from arutk/stats2
Return error from stats API functions in standby
2022-03-30 11:57:10 +02:00
Robert Baldyga
bfd3f5bcba
Merge pull request #686 from jfckm/fix-potential-overflow
Fix potential unsigned overflow in calculations
2022-03-30 08:57:55 +02:00
Jan Musial
d1bd32add9 Fix potential unsigned overflow in calculations
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-03-30 08:24:39 +02:00
Adam Rutkowski
9a1f9d41b8 Return error from stats API functions in standby
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-29 22:20:04 +02:00
Robert Baldyga
a64fc61413
Merge pull request #666 from arutk/pyocf_vol_cleaniup
pyocf: volume changes required for failover tests
2022-03-29 10:02:01 +02:00
Robert Baldyga
cf2d4327a1
Merge pull request #667 from arutk/pyocf_failover_api
pyocf: failover API in Cache
2022-03-29 09:32:00 +02:00
Adam Rutkowski
03df6d3eee
Merge pull request #683 from robertbaldyga/better-error-on-crc-mismatch
Return more specific error on CRC mismatch
2022-03-29 09:24:52 +02:00
Robert Baldyga
af43a240d3 Return more specific error on CRC mismatch
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-28 22:42:59 +02:00
Robert Baldyga
84aa968877 Check for load error before accessing metadata content
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-28 22:08:05 +02:00
Adam Rutkowski
5c39af81ca pyocf: failover api
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 16:24:43 +02:00
Robert Baldyga
174f7b5c2b
Merge pull request #682 from jfckm/zero-cache-volume-priv
Zero cache_volume priv on close
2022-03-28 16:02:02 +02:00
Robert Baldyga
8e7fae110e
Merge pull request #681 from arutk/extra_seek_mio
Add extra data seek before data fill in mio
2022-03-28 16:00:11 +02:00
Jan Musial
43e643873a Zero cache_volume priv on close
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-03-28 14:50:25 +02:00
Adam Rutkowski
6b6300c646 Add extra data seek before data fill in mio
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 14:26:51 +02:00
Robert Baldyga
223ba0b025
Merge pull request #678 from arutk/pes
Verify standby/active cache state in OCF entry points
2022-03-28 12:07:06 +02:00
Adam Rutkowski
0e8d02235a pyocf: Move core/cache md5() logic to volume
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:37:11 +02:00
Adam Rutkowski
16c85c1560 Remove ocf_core_new_io
This function is equivalent to calling ocf_volume_new_io()
on core front volume

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:36:19 +02:00
Adam Rutkowski
05f5d49be9 switch to volume I/O interface in functional tests
... instead of core::new_io()

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:36:19 +02:00
Adam Rutkowski
9e88afad62 pyocf: cache and core exported object volumes
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:35:18 +02:00
Adam Rutkowski
d2164e4ffd pyocf: replicated volume
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
dcf3129ff8 Extract Volume::open() class method
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
d60e48ee26 pyocf: ocf_volume_new_io wrapper
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
e0c762387c pyocf: implement get_(front_)volume() in Cache and Core
This common interface is later going to be used for generic code
implementing cache/core exported object I/O.

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
2672f5460a pyocf: unique volume ops for each volume class
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
7cb9523d8c pyocf: volume offlining
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
33b134242b pyocf: remove trace volume
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
838870fa10 pyocf: Use abstract Volume in generic code paths
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00
Adam Rutkowski
9e13364896 pyocf: Extract generic volume logic from RamVolume
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-03-28 10:29:02 +02:00