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 |
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
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;
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