[dm-devel] [PATCHv2 0/6] dm-zoned: improve cache performance

Damien Le Moal Damien.LeMoal at wdc.com
Tue May 19 22:36:10 UTC 2020


On 2020/05/19 17:14, Hannes Reinecke wrote:
> Hi all,
> 
> here's an update to dm-zoned to separate out cache zones.
> In the update to metadata version 2 the regular drive was split
> in emulated zones, which were handled just like 'normal' random
> write zones.
> This causes a performance drop once these emulated zones have
> been mapped, as typicall the random zones from the zoned drive
> will perform noticeably slower than those from the regular drive.
> (After all, that was kinda the idea of using a regular disk in
> the first place ...)
> 
> So in this patchset I've introduced a separate 'cache' zone type,
> allowing us to differentiate between emulated and real zones.
> With that we can switch the allocation mode to use only cache
> zones, and use random zones similar to sequential write zones.
> That avoids the performance issue noted above.
> 
> I've also found that the sequential write zones perform noticeably
> better on writes (which is all we're caching anyway), so I've
> added another patch switching the allocation routine from preferring
> sequential write zones for reclaim.
> 
> This patchset also contains some minor fixes like remving an unused
> variable etc.
> 
> As usual, comments and reviews are welcome.

I ran this overnight with no problems. Throughput results attached.
Reclaim seems to be a little too aggressive as it triggers very early. But we
can tune that later if really needed: the combination of ext4 writing all over
the place and the faster cache zones on SSD may simply result in a percentage of
free cache zones becoming low very quickly, in which case, reclaim is working
exactly as expected :)

Mike,

With the NVMe io_opt fix patch applied, the alignment warning for the target
limits is gone.

For the entire series:

Tested-by: Damien Le Moal <damien.lemoal at wdc.com>


> 
> Changes to v1:
> - Include reviews from Damien
> - Introduce allocation flags
> - Terminate reclaim on contention
> - Rework original patch series
> 
> Hannes Reinecke (6):
>   dm-zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a
>     zone
>   dm-zoned: separate random and cache zones
>   dm-zoned: reclaim random zones when idle
>   dm-zoned: start reclaim with sequential zones
>   dm-zoned: terminate reclaim on congestion
>   dm-zoned: remove unused variable in dmz_do_reclaim()
> 
>  drivers/md/dm-zoned-metadata.c | 140 ++++++++++++++++++++++++++++++-----------
>  drivers/md/dm-zoned-reclaim.c  | 109 ++++++++++++++++++++------------
>  drivers/md/dm-zoned-target.c   |  19 ++++--
>  drivers/md/dm-zoned.h          |  13 +++-
>  4 files changed, 196 insertions(+), 85 deletions(-)
> 


-- 
Damien Le Moal
Western Digital Research
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dm-zoned.png
Type: image/png
Size: 144160 bytes
Desc: dm-zoned.png
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20200519/4d88eabf/attachment.png>


More information about the dm-devel mailing list