----- 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"