diff mbox series

dm-writecache: commit just one block, not a full page

Message ID alpine.LRH.2.02.2106061610240.27406@file01.intranet.prod.int.rdu2.redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Mike Snitzer
Headers show
Series dm-writecache: commit just one block, not a full page | expand

Commit Message

Mikulas Patocka June 6, 2021, 8:13 p.m. UTC
When comitting superblock, we need to write just one block, we don't need
to write full page. Some architectures have pages larger than 4k and
committing full page is needless overhead.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>


--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

Comments

Heinz Mauelshagen June 7, 2021, 6:57 p.m. UTC | #1
On Sun, Jun 6, 2021 at 10:14 PM Mikulas Patocka <mpatocka@redhat.com> wrote:

> When comitting superblock, we need to write just one block, we don't need
> to write full page. Some architectures have pages larger than 4k and
> committing full page is needless overhead.
>
> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
>
> Index: linux-2.6/drivers/md/dm-writecache.c
> ===================================================================
> --- linux-2.6.orig/drivers/md/dm-writecache.c
> +++ linux-2.6/drivers/md/dm-writecache.c
> @@ -532,11 +532,7 @@ static void ssd_commit_superblock(struct
>
>         region.bdev = wc->ssd_dev->bdev;
>         region.sector = 0;
> -       region.count = PAGE_SIZE >> SECTOR_SHIFT;
> -
> -       if (unlikely(region.sector + region.count > wc->metadata_sectors))
> -               region.count = wc->metadata_sectors - region.sector;
> -
> +       region.count = wc->block_size >> SECTOR_SHIFT;
>

You can use to_sector() here.


>         region.sector += wc->start_sector;
>
>         req.bi_op = REQ_OP_WRITE;
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://listman.redhat.com/mailman/listinfo/dm-devel
>
>
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
diff mbox series

Patch

Index: linux-2.6/drivers/md/dm-writecache.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-writecache.c
+++ linux-2.6/drivers/md/dm-writecache.c
@@ -532,11 +532,7 @@  static void ssd_commit_superblock(struct
 
 	region.bdev = wc->ssd_dev->bdev;
 	region.sector = 0;
-	region.count = PAGE_SIZE >> SECTOR_SHIFT;
-
-	if (unlikely(region.sector + region.count > wc->metadata_sectors))
-		region.count = wc->metadata_sectors - region.sector;
-
+	region.count = wc->block_size >> SECTOR_SHIFT;
 	region.sector += wc->start_sector;
 
 	req.bi_op = REQ_OP_WRITE;