2019-08-11 16:28:58

by Huaisheng Ye

[permalink] [raw]
Subject: dm writecache: remove unused member pointer in writeback_struct

From: Huaisheng Ye <[email protected]>

The stucture member pointer page in writeback_struct never has been
used actually. Remove it.

Signed-off-by: Huaisheng Ye <[email protected]>
---
drivers/md/dm-writecache.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index 1cb137f..5c7009d 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -190,7 +190,6 @@ struct writeback_struct {
struct dm_writecache *wc;
struct wc_entry **wc_list;
unsigned wc_list_n;
- struct page *page;
struct wc_entry *wc_list_inline[WB_LIST_INLINE];
struct bio bio;
};
--
1.8.3.1



2019-08-11 16:59:35

by Huaisheng Ye

[permalink] [raw]
Subject: dm writecache: add unlikely for getting two block with same LBA

From: Huaisheng Ye <[email protected]>

In function writecache_writeback, entries g and f has same original
sector only happens at entry f has been committed, but entry g has
NOT yet.

The probability of this happening is very low in the following
256 blocks at most of entry e, so add unlikely for the result.

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

diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index 5c7009d..3643084 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -1628,8 +1628,8 @@ static void writecache_writeback(struct work_struct *work)
if (unlikely(!next_node))
break;
g = container_of(next_node, struct wc_entry, rb_node);
- if (read_original_sector(wc, g) ==
- read_original_sector(wc, f)) {
+ if (unlikely(read_original_sector(wc, g) ==
+ read_original_sector(wc, f))) {
f = g;
continue;
}
--
1.8.3.1


2019-08-11 18:11:18

by Mikulas Patocka

[permalink] [raw]
Subject: Re: dm writecache: remove unused member pointer in writeback_struct



On Mon, 12 Aug 2019, Huaisheng Ye wrote:

> From: Huaisheng Ye <[email protected]>
>
> The stucture member pointer page in writeback_struct never has been
> used actually. Remove it.
>
> Signed-off-by: Huaisheng Ye <[email protected]>

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

> ---
> drivers/md/dm-writecache.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
> index 1cb137f..5c7009d 100644
> --- a/drivers/md/dm-writecache.c
> +++ b/drivers/md/dm-writecache.c
> @@ -190,7 +190,6 @@ struct writeback_struct {
> struct dm_writecache *wc;
> struct wc_entry **wc_list;
> unsigned wc_list_n;
> - struct page *page;
> struct wc_entry *wc_list_inline[WB_LIST_INLINE];
> struct bio bio;
> };
> --
> 1.8.3.1
>
>

2019-08-11 18:12:30

by Mikulas Patocka

[permalink] [raw]
Subject: Re: dm writecache: add unlikely for getting two block with same LBA



On Mon, 12 Aug 2019, Huaisheng Ye wrote:

> From: Huaisheng Ye <[email protected]>
>
> In function writecache_writeback, entries g and f has same original
> sector only happens at entry f has been committed, but entry g has
> NOT yet.
>
> The probability of this happening is very low in the following
> 256 blocks at most of entry e, so add unlikely for the result.
>
> Signed-off-by: Huaisheng Ye <[email protected]>

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

> ---
> drivers/md/dm-writecache.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
> index 5c7009d..3643084 100644
> --- a/drivers/md/dm-writecache.c
> +++ b/drivers/md/dm-writecache.c
> @@ -1628,8 +1628,8 @@ static void writecache_writeback(struct work_struct *work)
> if (unlikely(!next_node))
> break;
> g = container_of(next_node, struct wc_entry, rb_node);
> - if (read_original_sector(wc, g) ==
> - read_original_sector(wc, f)) {
> + if (unlikely(read_original_sector(wc, g) ==
> + read_original_sector(wc, f))) {
> f = g;
> continue;
> }
> --
> 1.8.3.1
>
>