Fix direct bitops to use set_bit/clear_bit which
are atomic - this is required since there are
some places in code that do not use locking when
operating on that bits. this is also a preparation
to relax locking.
https://virtuozzo.atlassian.net/browse/VSTOR-91820
Signed-off-by: Alexander Atanasov
Currently there are two workers one to handle pios,
one to handle flush (via vfs_fsync). This workers are
created unbound which means they are run whenever there is a free
CPU. When ploop sends pios (via ploop_dispatch_pios) it checks
if there are data and if there are flush pios. If both are
prese
note: not yet fully tested (waiting for reproduce)
https://virtuozzo.atlassian.net/browse/VSTOR-94596
Signed-off-by: Pavel Tikhomirov
Pavel Tikhomirov (2):
mempool: add kvmalloc/kvfree version
dm-qcow2: add memory pool for compression buffers
drivers/md/dm-qcow2-map.c| 18 +
https://virtuozzo.atlassian.net/browse/VSTOR-91820
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-cmd.c| 13 +++--
drivers/md/dm-ploop-map.c| 2 +-
drivers/md/dm-ploop-target.c | 2 +-
drivers/md/dm-ploop.h| 2 +-
4 files changed, 14 insertions(+), 5 deletion
Prepare to reduce locking by using atomic 32 bit access to the fields.
To ensure this we need to use the _ONCE macros.
https://virtuozzo.atlassian.net/browse/VSTOR-91659
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-bat.c | 20 ++--
drivers/md/dm-ploop-cmd.c | 28
Prepare pios earlier in preparation to try to execute them earlier.
Convert more places to use lock less lists.
https://virtuozzo.atlassian.net/browse/VSTOR-91820
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-map.c | 95 ---
1 file changed, 60 inse
We need it to amke a memory pool for 4M (10-th order) allocations. Due
to big allocation size it seems prudent to do it via vmalloc interface.
https://virtuozzo.atlassian.net/browse/VSTOR-94596
Signed-off-by: Pavel Tikhomirov
---
include/linux/mempool.h | 15 +++
mm/mempool.c
Add specific list ids for writeback and flush pios, and process them
inside the runners.
https://virtuozzo.atlassian.net/browse/VSTOR-91821
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-map.c | 4
drivers/md/dm-ploop.h | 3 +++
2 files changed, 7 insertions(+)
diff --git a/
md_page is always present in memory. In that case
md_page->page could be always be mapped and we would not need to perform
kmap_atomic/kunmap_atomic during each lookup
https://virtuozzo.atlassian.net/browse/VSTOR-91659
Suggested-by: Denis V. Lunev
Signed-off-by: Alexander Atanasov
---
drivers/m
unify how MD_WRITEBACK bit is set across the code -
one of the files is using a wrapper the rest of the code
directly sets the bit. To avoid confusion remove the wrapper.
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-cmd.c | 9 ++
We need to wait for write back to complete to issue pending flushes.
To know if we have to wait return numer of pios submitted.
https://virtuozzo.atlassian.net/browse/VSTOR-91821
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-map.c | 18 ++
1 file changed, 14 insertion
We see high order allocation warnings:
kernel: order 10 >= 10, gfp 0x40c00
kernel: WARNING: CPU: 5 PID: 182 at mm/page_alloc.c:5630
__alloc_pages+0x1d7/0x3f0
kernel: process_compressed_read+0x6f/0x590 [dm_qcow2]
This is because we have 1M clusters and in case of zstd compression the
buffer size
Oh, from the second glance, it looks like I can't use kvmalloc for the
pool allocation as mempool_alloc tries to call mempool_t->alloc directly
first, and only then fallbacks to elements from pool, but kvmalloc is
not good for GFP_NOIO allocations...
Please disregard this series, I will try to
Fix a bug in ploop_data_pio_end.
If piwb is already completed, which can happen if we attach
a flush pio to it, pio is not added to the list and ploop_pio_endio
is never called on it. This results in a hang since pio is never completed.
Avoid this by calling ploop_pio_endio directly in case piwb
From: Andrey Zhadchenko
Flushed should be explicitly called by the writer if he really
wants it.
Drop ploop_md_write_endio() and ploop_md_fsync_endio().
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Andrey Zhadchenko
---
drivers/md/dm-ploop-map.c | 31 +++---
convert bool high prio to status bit - reduce size and gain atomicity
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-bat.c | 1 -
drivers/md/dm-ploop-map.c | 9 -
drivers/md/dm-ploop.h | 2 +-
3 files changed, 5 insertions
remove the wb_batch_list_prio, use only wb_batch_list and
use the md high_prio flag for immediate submission.
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Alexander Atanasov
---
drivers/md/dm-ploop-map.c| 70 +++-
drivers/md/dm-ploop-targe
From: Andrey Zhadchenko
Drop extra ploop_cluster_is_in_top_delta() as we are planning to
access BAT anyway
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Andrey Zhadchenko
---
drivers/md/dm-ploop-map.c | 28
1 file changed, 12 insertions(+), 16 d
From: Andrey Zhadchenko
as all it's users are gone or reworked
https://virtuozzo.atlassian.net/browse/VSTOR-91817
Signed-off-by: Andrey Zhadchenko
---
drivers/md/dm-ploop.h | 14 --
1 file changed, 14 deletions(-)
diff --git a/drivers/md/dm-ploop.h b/drivers/md/dm-ploop.h
index 2f
19 matches
Mail list logo