zram: support asynchronous writeback#79
zram: support asynchronous writeback#79blktests-ci[bot] wants to merge 3 commits intolinus-master_basefrom
Conversation
|
Upstream branch: 260f6f4 |
f092a9b to
0b59764
Compare
|
Upstream branch: d6084bb |
1310b16 to
d66cf53
Compare
0b59764 to
aee5bd3
Compare
|
Upstream branch: 831462f |
d66cf53 to
2bb0871
Compare
aee5bd3 to
ef18525
Compare
|
Upstream branch: c93529a |
2bb0871 to
f74a31c
Compare
ef18525 to
3851b3f
Compare
|
Upstream branch: cbbf0a7 |
f74a31c to
91590e9
Compare
3851b3f to
28b3384
Compare
|
Upstream branch: 6a68cec |
91590e9 to
d22cc01
Compare
28b3384 to
8ab9be5
Compare
|
Upstream branch: f2d282e |
d22cc01 to
6b2deab
Compare
8ab9be5 to
5b90760
Compare
|
Upstream branch: 89748ac |
6b2deab to
8aacc2a
Compare
3893da1 to
aeddbbb
Compare
|
Upstream branch: 89748ac |
8aacc2a to
20f0567
Compare
aeddbbb to
f380900
Compare
6767b4d to
8fa0c85
Compare
ae9bce3 to
e263d6e
Compare
|
Upstream branch: 561c803 |
8fa0c85 to
60a366e
Compare
e263d6e to
77110f5
Compare
|
Upstream branch: b96ddbc |
60a366e to
b2225f6
Compare
77110f5 to
a2e0474
Compare
|
Upstream branch: 2b38afc |
b2225f6 to
6569c9d
Compare
a2e0474 to
36a8aec
Compare
|
Upstream branch: 8f5ae30 |
6569c9d to
6e2caf5
Compare
36a8aec to
1a46df6
Compare
|
Upstream branch: 53e760d |
6e2caf5 to
58496ce
Compare
1a46df6 to
404c2ca
Compare
|
Upstream branch: 0e39a73 |
58496ce to
bc302d6
Compare
|
Upstream branch: 8742b2d |
|
Upstream branch: 91325f3 |
|
Upstream branch: 3a4a036 |
|
Upstream branch: dfc0f63 |
|
Upstream branch: 0cc5352 |
|
Upstream branch: 24ea63e |
|
Upstream branch: d7ee5bd |
Move writeback-related functions and data structures from zram_drv.[ch] to a new zram_wb.[ch] file. This is a pure refactoring patch with no functional changes, preparing the ground for the upcoming asynchronous writeback implementation. Signed-off-by: Richard Chang <[email protected]>
Introduce the necessary infrastructure for performing writeback operations asynchronously. It adds a dedicated kernel thread (`zram_wb_thread`), a request queue for managing pending writebacks, and helper functions to deal with the writeback requests. This patch lays the foundation for enabling asynchronous writeback in a subsequent change. Signed-off-by: Richard Chang <[email protected]>
|
Upstream branch: b19a97d |
Replace the synchronous `submit_bio_wait()` with the non-blocking `submit_bio()` to perform writeback operations asynchronously. This leverages the infrastructure added in the previous commit to handle the completion of I/O operations in a dedicated kthread. This change shows 27% speed improvement of idle writeback on Android platform. Test Flow: - mkfs on the zram device, mount it - cp three linux-6.16-rc2.tar.gz tarball files as the data - do idle writeback - check bd_stat writes 185072 pages Test Result: idle writeback for 185072 4k-pages (~723 MiB) $ echo all > /sys/block/zram0/idle $ time echo idle > /sys/block/zram0/writeback Async writeback: 0m02.49s real 0m00.00s user 0m01.19s system 0m02.32s real 0m00.00s user 0m00.89s system 0m02.35s real 0m00.00s user 0m00.93s system 0m02.29s real 0m00.00s user 0m00.88s system Sync writeback: 0m03.09s real 0m00.00s user 0m01.07s system 0m03.18s real 0m00.00s user 0m01.12s system 0m03.47s real 0m00.00s user 0m01.16s system 0m03.36s real 0m00.00s user 0m01.27s system Signed-off-by: Richard Chang <[email protected]>
Pull request for series with
subject: zram: support asynchronous writeback
version: 2
url: https://patchwork.kernel.org/project/linux-block/list/?series=987243