dm space maps: improve performance with inc/dec on ranges of blocks
When we break sharing on btree nodes we typically need to increment the reference counts to every value held in the node. This can cause a lot of repeated calls to the space maps. Fix this by changing the interface to the space map inc/dec methods to take ranges of adjacent blocks to be operated on. For installations that are using a lot of snapshots this will reduce cpu overhead of fundamental operations such as provisioning a new block, or deleting a snapshot, by as much as 10 times. Signed-off-by:Joe Thornber <ejt@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@redhat.com>
Showing
- drivers/md/dm-era-target.c 14 additions, 10 deletionsdrivers/md/dm-era-target.c
- drivers/md/dm-thin-metadata.c 53 additions, 38 deletionsdrivers/md/dm-thin-metadata.c
- drivers/md/persistent-data/dm-array.c 28 additions, 24 deletionsdrivers/md/persistent-data/dm-array.c
- drivers/md/persistent-data/dm-btree-internal.h 13 additions, 0 deletionsdrivers/md/persistent-data/dm-btree-internal.h
- drivers/md/persistent-data/dm-btree-remove.c 2 additions, 2 deletionsdrivers/md/persistent-data/dm-btree-remove.c
- drivers/md/persistent-data/dm-btree-spine.c 4 additions, 12 deletionsdrivers/md/persistent-data/dm-btree-spine.c
- drivers/md/persistent-data/dm-btree.c 78 additions, 13 deletionsdrivers/md/persistent-data/dm-btree.c
- drivers/md/persistent-data/dm-btree.h 5 additions, 5 deletionsdrivers/md/persistent-data/dm-btree.h
- drivers/md/persistent-data/dm-space-map-common.c 422 additions, 26 deletionsdrivers/md/persistent-data/dm-space-map-common.c
- drivers/md/persistent-data/dm-space-map-common.h 9 additions, 9 deletionsdrivers/md/persistent-data/dm-space-map-common.h
- drivers/md/persistent-data/dm-space-map-disk.c 18 additions, 56 deletionsdrivers/md/persistent-data/dm-space-map-disk.c
- drivers/md/persistent-data/dm-space-map-metadata.c 51 additions, 45 deletionsdrivers/md/persistent-data/dm-space-map-metadata.c
- drivers/md/persistent-data/dm-space-map.h 14 additions, 4 deletionsdrivers/md/persistent-data/dm-space-map.h
- drivers/md/persistent-data/dm-transaction-manager.c 52 additions, 0 deletionsdrivers/md/persistent-data/dm-transaction-manager.c
- drivers/md/persistent-data/dm-transaction-manager.h 11 additions, 1 deletiondrivers/md/persistent-data/dm-transaction-manager.h
Loading
Please register or sign in to comment