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

2020-05-20 Thread Damien Le Moal
On 2020/05/21 3:53, Mike Snitzer wrote:
> On Tue, May 19 2020 at  6:36pm -0400,
> Damien Le Moal  wrote:
> 
>> 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 :)
> 
> I've staged this series for 5.8 in linux-next
> 
> Just to make sure no regressions due to all the metadata2 changes: Did
> you happen to verify all worked as expected without using an extra
> drive?

Yes, I did.  Single and dual drive both work fine with v2 metadata.
I will retest the case of a V1 format using V2 code to be extra sure.

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


-- 
Damien Le Moal
Western Digital Research



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



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

2020-05-20 Thread Mike Snitzer
On Tue, May 19 2020 at  6:36pm -0400,
Damien Le Moal  wrote:

> 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 :)

I've staged this series for 5.8 in linux-next

Just to make sure no regressions due to all the metadata2 changes: Did
you happen to verify all worked as expected without using an extra
drive?

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

OK

Thanks,
Mike

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



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

2020-05-19 Thread Mike Snitzer
On Tue, May 19 2020 at  4:14am -0400,
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.
> 
> Changes to v1:
> - Include reviews from Damien

I'll take a look at this series now, but I'm still waiting for formal
Reviewed-by: or Acked-by: from Damien before I'll stage for 5.8 --
current development window is coming to a close though.

> - 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()

FYI I folded the last 6/6 patch back into the original commit that
introduced the unused variable (via rebase).

Thanks,
Mike

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