Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
d7b5ba8
module/bdev/raid: Add RAID5 implementation
Arsene-Baitenov Jul 28, 2023
2043b92
module/bdev/raid: Add request async processing.
Arsene-Baitenov Sep 16, 2023
f3c00cf
test/bdev/raid5: Add script to run RAID5 tests.
Arsene-Baitenov Sep 20, 2023
a62ab20
test/bdev/raid5: Add test configs and info files.
Arsene-Baitenov Sep 20, 2023
35e0baa
test/bdev/raid5: Add check for ublk target start.
Arsene-Baitenov Sep 20, 2023
92974f5
test/bdev/raid5: Fix dir sample for test data.
Arsene-Baitenov Sep 20, 2023
e9e0615
test/bdev/raid5: Add line at the end of the file.
Arsene-Baitenov Sep 20, 2023
797f0a5
test/bdev/raid5: Fix test case number.
Arsene-Baitenov Sep 20, 2023
98658dd
test/bdev/raid5: Fix tabs num into json configs.
Arsene-Baitenov Sep 20, 2023
710395c
test/bdev/raid5: Set do_verify flags explicitly.
Arsene-Baitenov Sep 20, 2023
43db5d3
feat: Implement write zeroes req on start RAID5.
Arsene-Baitenov Nov 9, 2023
db4cf9a
fix: Add static to defenition raid5_queue_io_wait.
Arsene-Baitenov Nov 9, 2023
746b681
feat: Add request splitting on stripe.
Arsene-Baitenov Nov 9, 2023
96ca2a2
refactor: Change rw_type name to write_type.
Arsene-Baitenov Nov 23, 2023
bfa3550
feat: Add raid5 stripe request structure.
Arsene-Baitenov Nov 23, 2023
6db2b6a
feat: Add function-helpers for raid5.
Arsene-Baitenov Nov 23, 2023
52a1ad6
feat: Add xor iovs function for RAID5.
Arsene-Baitenov Nov 23, 2023
8dd25a0
feat: Add funs to allocate&free raid5 stripe req.
Arsene-Baitenov Nov 23, 2023
9cd18c3
feat: Add funs to allocate&free raid5 strip buffs.
Arsene-Baitenov Nov 23, 2023
90b0424
feat: Add funs to set&free req strip iovs.
Arsene-Baitenov Nov 23, 2023
ed41e9b
feat: Add set&free strip buffs funs for read req.
Arsene-Baitenov Nov 23, 2023
4533bc7
feat: Add set&free strip buffs funs for read req.
Arsene-Baitenov Nov 23, 2023
d94fdd5
feat: Add raid5 stripe req completion.
Arsene-Baitenov Nov 23, 2023
7f4735c
feat: Add raid5 read complete part final callback.
Arsene-Baitenov Nov 23, 2023
4705978
feat: Add raid5 read complete part callback.
Arsene-Baitenov Nov 23, 2023
76492b8
feat: Add reading required strips for RAID5.
Arsene-Baitenov Nov 23, 2023
8c98007
feat: Add reading with broken required strip case.
Arsene-Baitenov Nov 23, 2023
725f9bd
feat: Change read request logic.
Arsene-Baitenov Nov 23, 2023
11d67e3
fix: Change memory_domains_supported to false.
Arsene-Baitenov Nov 23, 2023
7bb449b
fix: Add stripe request completion.
Arsene-Baitenov Nov 23, 2023
17890bf
fix: Add failed completion on submit write request
Arsene-Baitenov Nov 23, 2023
400e6fc
feat: Add fns of setting&freeing all strip buffs.
Arsene-Baitenov Dec 1, 2023
4d53c4c
refactor: Change setting&freeing strip buffs.
Arsene-Baitenov Dec 1, 2023
984e5d0
feat: Add fn of calculation stripe idx.
Arsene-Baitenov Dec 15, 2023
2f2b5aa
refactor: Rename fn of buffs allocating.
Arsene-Baitenov Dec 15, 2023
56adf6b
feat: Add fn of setting all req strips iovs.
Arsene-Baitenov Dec 15, 2023
90a9a95
fix: Fix comment.
Arsene-Baitenov Dec 15, 2023
0bd2d71
fix: Fix calculation of data length.
Arsene-Baitenov Dec 15, 2023
646bd38
feat: Simplify fn of setting req strips buffs for read req.
Arsene-Baitenov Dec 15, 2023
1b6a06c
feat: Add fn to set/free strips buffs for default writing.
Arsene-Baitenov Dec 15, 2023
cf113b2
feat: Add fn to set/free strips buffs for writing with broken parity.
Arsene-Baitenov Dec 15, 2023
a9a17be
feat: Add fn to set/reset/free strips buffs for read modify write case.
Arsene-Baitenov Dec 15, 2023
a863195
refactor: Rename cb fn for read request.
Arsene-Baitenov Dec 15, 2023
4950b15
refactor: Rename part completion fn for read req.
Arsene-Baitenov Dec 15, 2023
31991af
fix: Delete assert from part completion read request.
Arsene-Baitenov Dec 15, 2023
7adb878
feat: Add cb and part completion fn for default write req writing part.
Arsene-Baitenov Dec 15, 2023
08430cf
feat: Add default write req/writing part.
Arsene-Baitenov Dec 15, 2023
617226c
feat: Add cb and part completion fn for default write req reading part.
Arsene-Baitenov Dec 15, 2023
c6edf68
feat: Add default write req/reading part.
Arsene-Baitenov Dec 15, 2023
290813f
feat: Add cb and part completion fns for write req with broken parity…
Arsene-Baitenov Dec 15, 2023
099910b
feat: Add fn to write req with broken parity strip.
Arsene-Baitenov Dec 15, 2023
fbfd5c1
feat: Add cb and part completion fns for read-modify-write writing part.
Arsene-Baitenov Dec 15, 2023
faa0b22
feat: Add fn for write req/read-modify-write case/writing part.
Arsene-Baitenov Dec 15, 2023
3bb2b10
feat: Add cb and part completion fns for read-modify-write reading part.
Arsene-Baitenov Dec 15, 2023
463fc6d
feat: Add fn for write req/read-modify-write case/reading part.
Arsene-Baitenov Dec 15, 2023
a5912d4
feat: Add fn for submitting write request.
Arsene-Baitenov Dec 15, 2023
7cbae49
refactor: Delete old version of fn for submitting write request.
Arsene-Baitenov Dec 15, 2023
2064f11
feat: Add calling of submitting write request to fn of submitting rw …
Arsene-Baitenov Dec 15, 2023
bffc7fc
fix: Fixed calculation start strip to submit in default write req/rea…
Arsene-Baitenov Dec 15, 2023
a88afe9
fix: Fix fn that xors iovs with iovs.
Arsene-Baitenov Dec 19, 2023
cfee2dc
feat: Add fn to set/reset/free strips buffs for write request with br…
Arsene-Baitenov Dec 19, 2023
658d692
feat: Add cb and part completion fns for write with broken req strip …
Arsene-Baitenov Dec 19, 2023
382508e
feat: Add fn for write req/broken req strip case/writing part.
Arsene-Baitenov Dec 19, 2023
b704607
feat: Add cb and part completion fns for write with broken req strip …
Arsene-Baitenov Dec 19, 2023
4ac4ea7
feat: Add fn for write req/broken req strip case/reading part.
Arsene-Baitenov Dec 19, 2023
5cde888
feat: Add submitting write request with broken parity strip.
Arsene-Baitenov Dec 19, 2023
7715abd
refactor: Remove unused structs and functions.
Arsene-Baitenov Dec 19, 2023
1d542df
refactor: Remove debug logs.
Arsene-Baitenov Dec 19, 2023
73652bf
feat: Change allocating function to use physical addresses.
Arsene-Baitenov Feb 20, 2024
7741651
feat: Add raid_stop fn to free raid5 info struct memory.
Arsene-Baitenov Feb 20, 2024
1024db1
feat: Remove static modifier of raid_bdev_create_cb and raid_bdev_des…
Arsene-Baitenov Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion module/bdev/raid/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SO_VER := 5
SO_MINOR := 0

CFLAGS += -I$(SPDK_ROOT_DIR)/lib/bdev/
C_SRCS = bdev_raid.c bdev_raid_rpc.c raid0.c raid1.c concat.c
C_SRCS = bdev_raid.c bdev_raid_rpc.c raid0.c raid1.c concat.c raid5.c

ifeq ($(CONFIG_RAID5F),y)
C_SRCS += raid5f.c
Expand Down
6 changes: 4 additions & 2 deletions module/bdev/raid/bdev_raid.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ static void raid_bdev_deconfigure(struct raid_bdev *raid_bdev,
* 0 - success
* non zero - failure
*/
static int
int
raid_bdev_create_cb(void *io_device, void *ctx_buf)
{
struct raid_bdev *raid_bdev = io_device;
Expand Down Expand Up @@ -134,7 +134,7 @@ raid_bdev_create_cb(void *io_device, void *ctx_buf)
* returns:
* none
*/
static void
void
raid_bdev_destroy_cb(void *io_device, void *ctx_buf)
{
struct raid_bdev_io_channel *raid_ch = ctx_buf;
Expand Down Expand Up @@ -763,6 +763,8 @@ static struct {
{ "0", RAID0 },
{ "raid1", RAID1 },
{ "1", RAID1 },
{ "raid5", RAID5 },
{ "5", RAID5 },
{ "raid5f", RAID5F },
{ "5f", RAID5F },
{ "concat", CONCAT },
Expand Down
4 changes: 4 additions & 0 deletions module/bdev/raid/bdev_raid.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ enum raid_level {
INVALID_RAID_LEVEL = -1,
RAID0 = 0,
RAID1 = 1,
RAID5 = 5,
RAID5F = 95, /* 0x5f */
CONCAT = 99,
};
Expand Down Expand Up @@ -269,6 +270,9 @@ __RAID_MODULE_REGISTER(__LINE__)(void) \
raid_bdev_module_list_add(_module); \
}

int raid_bdev_create_cb(void *io_device, void *ctx_buf);
void raid_bdev_destroy_cb(void *io_device, void *ctx_buf);

bool raid_bdev_io_complete_part(struct raid_bdev_io *raid_io, uint64_t completed,
enum spdk_bdev_io_status status);
void raid_bdev_queue_io_wait(struct raid_bdev_io *raid_io, struct spdk_bdev *bdev,
Expand Down
Loading