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

jhell jhell at DataIX.net
Sun Aug 29 09:38:10 UTC 2010


On 08/28/2010 05:26, Pawel Jakub Dawidek wrote:
> On Sat, Aug 28, 2010 at 05:03:42AM -0400, jhell wrote:
>> On 08/28/2010 04:20, Andriy Gapon wrote:
>>> on 28/08/2010 04:24 jhell said the following:
>>>> The modified patch from avg@ (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...
>>>
>>
>> I will look further into this and see if I can throw a counter around it
>> or some printf's so I can at least log what its doing in both instances.
>>
>> I thought the very same thing you said above when I saw your patch for
>> that and was astounded at the results that were returned from it. So in
>> short testing I reverted it back quickly to see if that was the cause of
>> the problem and sure enough everything resumed to the way it was before.
>>
>> Anyway thanks for the reply. I will get back to you if I see anything
>> cool arise from this.
> 
> Could you include the following patch to your testing:
> 
> 	http://people.freebsd.org/~pjd/patches/arc.c.9.patch
> 

Sure thing. Adding it now.

-- 

 jhell,v


More information about the freebsd-current mailing list