2020-06-12 15:58:27

by Huaisheng Ye

[permalink] [raw]
Subject: [PATCH] dm writecache: skip writecache_wait when using pmem mode

From: Huaisheng Ye <[email protected]>

The array bio_in_progress is only used with ssd mode. So skip
writecache_wait_for_ios in writecache_discard when pmem mode.

Signed-off-by: Huaisheng Ye <[email protected]>
---
drivers/md/dm-writecache.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index 66f3a3b..4367cc7 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -849,8 +849,10 @@ static void writecache_discard(struct dm_writecache *wc, sector_t start, sector_

if (likely(!e->write_in_progress)) {
if (!discarded_something) {
- writecache_wait_for_ios(wc, READ);
- writecache_wait_for_ios(wc, WRITE);
+ if (!WC_MODE_PMEM(wc)) {
+ writecache_wait_for_ios(wc, READ);
+ writecache_wait_for_ios(wc, WRITE);
+ }
discarded_something = true;
}
writecache_free_entry(wc, e);
--
1.8.3.1


2020-06-13 12:48:39

by Mikulas Patocka

[permalink] [raw]
Subject: Re: [PATCH] dm writecache: skip writecache_wait when using pmem mode



On Fri, 12 Jun 2020, Huaisheng Ye wrote:

> From: Huaisheng Ye <[email protected]>
>
> The array bio_in_progress is only used with ssd mode. So skip
> writecache_wait_for_ios in writecache_discard when pmem mode.
>
> Signed-off-by: Huaisheng Ye <[email protected]>

Acked-by: Mikulas Patocka <[email protected]>

> ---
> drivers/md/dm-writecache.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
> index 66f3a3b..4367cc7 100644
> --- a/drivers/md/dm-writecache.c
> +++ b/drivers/md/dm-writecache.c
> @@ -849,8 +849,10 @@ static void writecache_discard(struct dm_writecache *wc, sector_t start, sector_
>
> if (likely(!e->write_in_progress)) {
> if (!discarded_something) {
> - writecache_wait_for_ios(wc, READ);
> - writecache_wait_for_ios(wc, WRITE);
> + if (!WC_MODE_PMEM(wc)) {
> + writecache_wait_for_ios(wc, READ);
> + writecache_wait_for_ios(wc, WRITE);
> + }
> discarded_something = true;
> }
> writecache_free_entry(wc, e);
> --
> 1.8.3.1
>