Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Aug 2010 05:03:42 -0400
From:      jhell <jhell@DataIX.net>
To:        Andriy Gapon <avg@icyb.net.ua>
Cc:        freebsd-current@freebsd.org, Artem Belevich <fbsdlist@src.cx>, Martin Matuska <mm@freebsd.org>
Subject:   Re: [CFT] Improved ZFS metaslab code (faster write speed)
Message-ID:  <4C78D0EE.6040708@DataIX.net>
In-Reply-To: <4C78C6C3.1010005@icyb.net.ua>
References:  <4C713EF5.8080402@FreeBSD.org>	<AANLkTi=8x1EenWyqGz6AQWKDUq5JiMJbX_jbVbX43DKx@mail.gmail.com>	<4C714FC0.90005@FreeBSD.org>	<AANLkTim_BH4WrQUY-X491c%2BfLaP2FKMcS1k-DN5tLG-9@mail.gmail.com>	<20100828081917.ee931f7f.nork@FreeBSD.org>	<AANLkTi=hbL3wfTvmfBhPkpJ7orh_WuhagGPoXaS_hcTW@mail.gmail.com> <4C78655C.3010200@DataIX.net> <4C78C6C3.1010005@icyb.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
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.


Regards,

-- 

 jhell,v



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C78D0EE.6040708>