----- Original Message ----- From: "Andriy Gapon" <a...@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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to