Message ID | 20200527062225.72849-1-hare@suse.de (mailing list archive) |
---|---|
Headers | show |
Series | dm-zoned: multi-device support | expand |
On Wed, May 27 2020 at 2:22am -0400, Hannes Reinecke <hare@suse.de> wrote: > Hi all, > > here's the second version of my patchset to support multiple zoned > drives with dm-zoned. > This patchset: > - Converts the zone array to using xarray for better scalability > - Separates out shared structures into per-device structure > - Enforce drive-locality for allocating and reclaiming zones > - Lifts the restriction of 2 devices to handle an arbitrary number > of drives. > > This gives me a near-perfect scalability by increasing the write > speed from 150MB/s (for a cache and one zoned drive) to 300MB/s > (for a cache and two zoned drives). > > Changes to v1: > - Include reviews from Damien > - Reshuffle patches > > Hannes Reinecke (15): > dm-zoned: add debugging message for reading superblocks > dm-zoned: secondary superblock must reside on the same devices than > primary superblock > dm-zoned: improve logging messages for reclaim > dm-zoned: add a 'reserved' zone flag > dm-zoned: convert to xarray > dm-zoned: temporary superblock for tertiary devices > dm-zoned: add device pointer to struct dm_zone > dm-zoned: add metadata pointer to struct dmz_dev > dm-zoned: allocate dm devices dynamically > dm-zoned: per-device reclaim > dm-zoned: move random and sequential zones into struct dmz_dev > dm-zoned: support arbitrary number of devices > dm-zoned: allocate zone by device index > dm-zoned: select reclaim zone based on device index > dm-zoned: prefer full zones for reclaim > > drivers/md/dm-zoned-metadata.c | 448 ++++++++++++++++++++++++----------------- > drivers/md/dm-zoned-reclaim.c | 95 +++++---- > drivers/md/dm-zoned-target.c | 169 ++++++++++------ > drivers/md/dm-zoned.h | 77 ++++--- > 4 files changed, 481 insertions(+), 308 deletions(-) Would you still like to wait until the 5.9 merge window? Or would you prefer to see these changes land for 5.8 so as to limit the variants of related code that needs to be supported? If you and Damien are OK with 5.8 (and testing backs that up) then I should be able to get it to land. Let me know, thanks. Mike -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
On Wed, 2020-05-27 at 09:41 -0400, Mike Snitzer wrote: > On Wed, May 27 2020 at 2:22am -0400, > Hannes Reinecke <hare@suse.de> wrote: > > > Hi all, > > > > here's the second version of my patchset to support multiple zoned > > drives with dm-zoned. > > This patchset: > > - Converts the zone array to using xarray for better scalability > > - Separates out shared structures into per-device structure > > - Enforce drive-locality for allocating and reclaiming zones > > - Lifts the restriction of 2 devices to handle an arbitrary number > > of drives. > > > > This gives me a near-perfect scalability by increasing the write > > speed from 150MB/s (for a cache and one zoned drive) to 300MB/s > > (for a cache and two zoned drives). > > > > Changes to v1: > > - Include reviews from Damien > > - Reshuffle patches > > > > Hannes Reinecke (15): > > dm-zoned: add debugging message for reading superblocks > > dm-zoned: secondary superblock must reside on the same devices than > > primary superblock > > dm-zoned: improve logging messages for reclaim > > dm-zoned: add a 'reserved' zone flag > > dm-zoned: convert to xarray > > dm-zoned: temporary superblock for tertiary devices > > dm-zoned: add device pointer to struct dm_zone > > dm-zoned: add metadata pointer to struct dmz_dev > > dm-zoned: allocate dm devices dynamically > > dm-zoned: per-device reclaim > > dm-zoned: move random and sequential zones into struct dmz_dev > > dm-zoned: support arbitrary number of devices > > dm-zoned: allocate zone by device index > > dm-zoned: select reclaim zone based on device index > > dm-zoned: prefer full zones for reclaim > > > > drivers/md/dm-zoned-metadata.c | 448 ++++++++++++++++++++++++----------------- > > drivers/md/dm-zoned-reclaim.c | 95 +++++---- > > drivers/md/dm-zoned-target.c | 169 ++++++++++------ > > drivers/md/dm-zoned.h | 77 ++++--- > > 4 files changed, 481 insertions(+), 308 deletions(-) > > Would you still like to wait until the 5.9 merge window? > > Or would you prefer to see these changes land for 5.8 so as to limit the > variants of related code that needs to be supported? > > If you and Damien are OK with 5.8 (and testing backs that up) then I > should be able to get it to land. Yes, it would be nice to have all the recent changes under dm-zoned V2. I just reviewed Hannes V2 series and I am running tests right now. So far so good. Will send results by the end of my day. What is your deadline for a final series to make it to 5.8 ? This end of week ? If Hannes has time to rework another round, we should be good then. Thanks. > > Let me know, thanks. > Mike >
On Wed, 2020-05-27 at 08:22 +0200, Hannes Reinecke wrote: > Hi all, > > here's the second version of my patchset to support multiple zoned > drives with dm-zoned. > This patchset: > - Converts the zone array to using xarray for better scalability > - Separates out shared structures into per-device structure > - Enforce drive-locality for allocating and reclaiming zones > - Lifts the restriction of 2 devices to handle an arbitrary number > of drives. > > This gives me a near-perfect scalability by increasing the write > speed from 150MB/s (for a cache and one zoned drive) to 300MB/s > (for a cache and two zoned drives). Finished running 3 tests (2 hours each) for single drive, Optane SSD + single disk and Optane SSD + 2 disks. No problems detected. See the attached file for a plot of the results. I also get near perfect avergare performance scaling with the cache device from 185 MB/s with ssd+single disk to 367 MB/s with ssd+2 disks. And that is more than 10 times higher than the legacy single drive setup at 34 MB/s in average. > > Changes to v1: > - Include reviews from Damien > - Reshuffle patches > > Hannes Reinecke (15): > dm-zoned: add debugging message for reading superblocks > dm-zoned: secondary superblock must reside on the same devices than > primary superblock > dm-zoned: improve logging messages for reclaim > dm-zoned: add a 'reserved' zone flag > dm-zoned: convert to xarray > dm-zoned: temporary superblock for tertiary devices > dm-zoned: add device pointer to struct dm_zone > dm-zoned: add metadata pointer to struct dmz_dev > dm-zoned: allocate dm devices dynamically > dm-zoned: per-device reclaim > dm-zoned: move random and sequential zones into struct dmz_dev > dm-zoned: support arbitrary number of devices > dm-zoned: allocate zone by device index > dm-zoned: select reclaim zone based on device index > dm-zoned: prefer full zones for reclaim > > drivers/md/dm-zoned-metadata.c | 448 ++++++++++++++++++++++++----------------- > drivers/md/dm-zoned-reclaim.c | 95 +++++---- > drivers/md/dm-zoned-target.c | 169 ++++++++++------ > drivers/md/dm-zoned.h | 77 ++++--- > 4 files changed, 481 insertions(+), 308 deletions(-) >