[Devel] [PATCH VZ9 v3 11/13] dm-ploop: add delay for metadata writeback

2024-10-25 Thread Andrey Zhadchenko
Revert llist conversion for metadata writeback. Create new list for priority metadata updates, which are triggered by FUA requests. Write metadata for all other requests in batch after some delay. Add new parameter to specify delay time. Always submit COW and discard io to prio list. https://virtu

[Devel] [PATCH VZ9 v3 02/13] dm-ploop: set IOCB_DSYNC on all FUA requests

2024-10-25 Thread Andrey Zhadchenko
When mapping request, save all flags, rather then only operation type. Use it later to check if the request is FUA or not. Unfortunately there is no REQ_FUA equivalent on IOCB layer, but IOCB_DSYNC is usually translated to it, as can be seen in __iomap_dio_rw(). https://virtuozzo.atlassian.net/bro

[Devel] [PATCH VZ9 v3 13/13] dm-ploop: handle REQ_PREFLUSH

2024-10-25 Thread Andrey Zhadchenko
Create new flush pio when we see REQ_PREFLUSH flag. Call original pio after the flush is done. https://virtuozzo.atlassian.net/browse/VSTOR-91817 Signed-off-by: Andrey Zhadchenko --- drivers/md/dm-ploop-map.c | 39 ++- 1 file changed, 34 insertions(+), 5 delet

[Devel] [PATCH VZ9 v3 07/13] dm-ploop: speed up ploop_prepare_bat_update()

2024-10-25 Thread Andrey Zhadchenko
Drop ploop_cluster_is_in_top_delta(), because - it internally searches md on every call - it takes read lock every time https://virtuozzo.atlassian.net/browse/VSTOR-91817 Signed-off-by: Andrey Zhadchenko --- drivers/md/dm-ploop-map.c | 15 +++ 1 file changed, 11 insertions(+), 4 de

[Devel] [PATCH VZ9 v3 05/13] dm-ploop: reduce BAT accesses on discard completion

2024-10-25 Thread 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 deletions(-) diff --git a/

[Devel] [PATCH RHEL9 COMMIT] fs/fuse: kio: one more overflow

2024-10-25 Thread Konstantin Khorenko
The commit is pushed to "branch-rh9-5.14.0-427.37.1.vz9.78.x-ovz" and will appear at g...@bitbucket.org:openvz/vzkernel.git after rh9-5.14.0-427.37.1.vz9.78.1 --> commit f5c8ab1a9c6222df1bfae5dd5946bc046940fc73 Author: Alexey Kuznetsov Date: Fri Oct 25 22:24:11 2024 +0800 fs/fuse: kio:

[Devel] [PATCH RHEL9 COMMIT] fs/fuse: relax serialization of fallocate

2024-10-25 Thread Konstantin Khorenko
The commit is pushed to "branch-rh9-5.14.0-427.37.1.vz9.78.x-ovz" and will appear at g...@bitbucket.org:openvz/vzkernel.git after rh9-5.14.0-427.37.1.vz9.78.1 --> commit cfdd1dfd9bfbf5eff20798cc994b8f66321e3a86 Author: Alexey Kuznetsov Date: Fri Oct 25 22:25:34 2024 +0800 fs/fuse: rela

[Devel] [PATCH vz9 v2 1/3] fs/fuse: kio: WRITE_HOLE/ZERO should not be chunked

2024-10-25 Thread Konstantin Khorenko
From: Alexey Kuznetsov No actual impact on performance as all the chunks are sent in parallel, yet it is huge resource overconsumption. Affects: #VSTOR-94452 https://virtuozzo.atlassian.net/browse/VSTOR-94452 Signed-off-by: Alexey Kuznetsov Feature: vStorage --- fs/fuse/kio/pcs/pcs_map.c | 2

[Devel] [PATCH vz9 v2 2/3] fs/fuse: kio: one more overflow

2024-10-25 Thread Konstantin Khorenko
From: Alexey Kuznetsov Ancient bug, which was not caught only because nobody tried to do a thing like: fallocate -p -l 4g FILE It is noop! Pretends to succeed but actually does nothing. https://virtuozzo.atlassian.net/browse/VSTOR-94452 Signed-off-by: Alexey Kuznetsov Feature: vStorage ---

[Devel] [PATCH RHEL9 COMMIT] fs/fuse: kio: WRITE_HOLE/ZERO should not be chunked

2024-10-25 Thread Konstantin Khorenko
The commit is pushed to "branch-rh9-5.14.0-427.37.1.vz9.78.x-ovz" and will appear at g...@bitbucket.org:openvz/vzkernel.git after rh9-5.14.0-427.37.1.vz9.78.1 --> commit 2b184a76c68b0b0d558cde0b4c56bd7c99f50f13 Author: Alexey Kuznetsov Date: Fri Oct 25 22:23:01 2024 +0800 fs/fuse: kio:

[Devel] [PATCH VZ9 1/3] fs: fuse: kio: WRITE_HOLE/ZERO should not be chunked

2024-10-25 Thread Alexey Kuznetsov
No actual impact on performance as all the chunks are sent in parallel, yet it is huge resource overconsumption. Affects: #VSTOR-94452 Signed-off-by: Alexey Kuznetsov --- fs/fuse/kio/pcs/pcs_map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fuse/kio/pcs/pcs_map.c b/fs

[Devel] [PATCH VZ9 3/3] fs: fuse: relax serialization of fallocate

2024-10-25 Thread Alexey Kuznetsov
Drop inode_lock while executing fallocate. This is a kludge. Why this cannot be a genuine thing. Traditionally all synchchronous linux file operations are strictly serialized. The axiom is that file modifications are to be atomic in the sense that if two writes are issued from different threads s

[Devel] [PATCH VZ9 2/3] fs: fuse: kio: one more overflow

2024-10-25 Thread Alexey Kuznetsov
Ancient bug, which was not caught only because nobody tried to do a thing like: fallocate -p -l 4g FILE It is noop! Pretends to succeed but actually does nothing. Signed-off-by: Alexey Kuznetsov --- fs/fuse/kio/pcs/pcs_cluster.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff

[Devel] [PATCH vz9 v2 3/3] fs/fuse: relax serialization of fallocate

2024-10-25 Thread Konstantin Khorenko
From: Alexey Kuznetsov Drop inode_lock while executing fallocate. This is a kludge. Why this cannot be a genuine thing. Traditionally all synchchronous linux file operations are strictly serialized. The axiom is that file modifications are to be atomic in the sense that if two writes are issued

Re: [Devel] [RFC PATCH vz9 v3 07/11] ploop: convert wait_list and wb_batch_llist to use lockless lists

2024-10-25 Thread Alexander Atanasov
On 24.10.24 11:04, Andrey Zhadchenko wrote: On 10/21/24 12:13, Alexander Atanasov wrote: @@ -775,7 +775,6 @@ static void ploop_advance_local_after_bat_wb(struct ploop *ploop,   i = PLOOP_MAP_OFFSET;   dst_clu = piwb->kmpage; -    write_lock_irqsave(&ploop->bat_rwlock, flags);