Re: [CFT] Improved ZFS metaslab code (faster write speed)

From: Andriy Gapon <avg_at_icyb.net.ua>
Date: Sat, 28 Aug 2010 11:20:19 +0300
on 28/08/2010 04:24 jhell said the following:
> The modified patch from avg_at_ (portion patch) is:
> 
> #ifdef _KERNEL
>                 if (arc_reclaim_needed()) {
>                         needfree = 0;
>                         wakeup(&needfree);
>                 }
> #endif
> 
> 	I still moved that down to below _KERNEL for the obvious reasons.  But
> when I was using the original patch with if (needfree) I noticed a
> performance degradation after ~12 hours of use with and without UMA
> turned on. So far with ~48 hours of testing with the top half of that
> being with the above change, I have not seen more degradation of

This is quite unexpected.
needfree should be checked as the very first thing in arc_reclaim_needed()
[unless you have patched it locally].  So if needfree is 1 then
arc_reclaim_needed() should also return 1.  But the converse is not true,
arc_reclaim_needed() may return 1 even if needfree is zero.

So if your testing results are conclusive then it must mean that some extra
wakeups on needfree are needed.  I.e. needfree is zero, so there shouldn't be
anything waiting on it (see arc_lowmem) and no notification should be needed,
but issuing somehow does make difference,
Hmm...

-- 
Andriy Gapon
Received on Sat Aug 28 2010 - 06:20:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:06 UTC