svn commit: r270759 - in head/sys: cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs vm

Steven Hartland killing at multiplay.co.uk
Tue Sep 2 17:43:20 UTC 2014


----- Original Message ----- 
From: "Andriy Gapon" <avg at FreeBSD.org>

> on 02/09/2014 19:01 John Baldwin said the following:
>> I know Steven has since committed a fix, but if there are still 
>> concerns, I
>> think it would be best to not just revert this entirely but to spend 
>> some time
>> fixing the remaining issues.  Clearly this issue affects a lot of 
>> users and
>> the earlier fixes to pagedaemon were not sufficient to fix their 
>> issues alone.
>
> I am not sure that that is the case.  I could have very well missed an 
> evidence
> of that, but then I'd appreciate a pointer or two to such reports.
> I am certainly sure that a large number of reports about "ZFS vs 
> swapping" issue
> appeared after the pagedaemon problem was introduced.
>
> I have also missed any "theoretical" justification for the patch. 
> That is, an
> explanation of how the patch interacts with the pagedaemon and 
> improves things.
> The empirical evidence could be insufficient, because it's easy to 
> tilt the
> balance such that the ARC gives in too easily.  But people who were 
> affected by
> the opposite problem could be different from people who would be 
> affected by the
> new problem, because of differences in system characteristics such as 
> amount of
> RAM, workload patterns, working set sizes, etc.
>
> Having said that, I do not ask for the changes to be reverted, but 
> I'll probably
> get back after I have sufficient time to look at the patch and also to 
> test its
> effect on my systems.  This might not be very soon though.
>
> P.S. I think that there was no technical reason to initialize the 
> newly
> introduced parameters via SYSINIT mechanism.

I created the SYSINT as the values are not available early enough
for the sysctl.

> I think that the initialization could be just done in arc_init.

I thought I'd tested this when doing the initial implementation
but it was a long week so I just did a quick re-test and confirmed
arc_init is called before the pagedaemon is initialised so
it can't be used in this case.

On a side note it would be nice if ARC sysctls, which are currently
done via arc_init, where cleaned up as currently the limits aren't
enforced correctly when manually changed, as well as being split
up into two locations making them hard to follow. Something I intend
to look at when I get some free time.

> And the newly added kmem_foo() functions probably do not belong in
> cddl/compat/opensolaris as Solaris / illumos does not have those 
> functions.

They could be moved but their current location keeps all the kmem
related functions neatly in one place. Spreading them around IMO
would just make things hard to find.

> I think that in this case e.g. vm_cnt.v_free_target can just be
> used directly by the FreeBSD-specific ARC code.

It could but as above keeping everything in one place makes it to
find and hence MFC as this area has seen changes which will require
all those fields renamed. It also means if the logic for free pages
changes in the future there's only one place it needs to be changed.

For those interested there's also an open review on additional
changes in this area: https://reviews.freebsd.org/D702

    Regards
    Steve 



More information about the svn-src-head mailing list