svn commit: r193878 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Alexey Dokuchaev danfe at FreeBSD.org
Wed Jun 10 08:34:01 UTC 2009


On Wed, Jun 10, 2009 at 12:08:43AM -0700, Kip Macy wrote:
> On Wed, Jun 10, 2009 at 12:00 AM, Dmitry Morozovsky<marck at rinet.ru> wrote:
> > On Tue, 9 Jun 2009, Kip Macy wrote:
> >
> > KM> > KM>   As far as I can tell systems that have less than 4GB are more often hurt
> > KM> > KM>   by prefetched than helped.  On i386 systems and systems with less than 4GB,
> > KM> > KM>   prefetch is now disabled by default. I've added a prefetch enable tunable, to
> > KM> > KM>   enable prefetching for those systems. The prefetch disable tunable will continue
> > KM> > KM>   to unconditionally disable prefetching.
> > KM> > KM>
> > KM> >
> > KM> > [snip]
> > KM> >
> > KM> > KM> +extern int zfs_prefetch_disable;
> > KM> > KM> +extern int zfs_prefetch_enable;
> > KM> >
> > KM> > [snip]
> > KM> >
> > KM> > Before the interface is not settled in stone, don't you think simple bool
> > KM> > zfs_prefetch tunable (defauled to what looks more reasonable to partucilar
> > KM> > arch/memsize) is more clean and straightforward?
> > KM> >
> > KM>
> > KM> Yes. But the semantics I want don't lend themselves well to a boolean.
> > KM> I want it to default to off for i386 and amd64 w/ < 4GB and on for
> > KM> amd64 > 4GB. However, I want it to be possible for users with larger
> > KM> memory systems to disable it and users with smaller memory systems to
> > KM> enable it. The only way a simple boolean would work would be if it
> > KM> were zfs_prefetch_non_default_behavior, which I think is even more
> > KM> confusing than what I have now.
> >
> > Hmm, I failed to see how boolean prevent the usage:
> >
> > if arch==i386 || memsize < 4G
> >        zfs_prefetch=0
> > else
> >        zfs_prefetch=1
> >
> > and admin can flip the switch to non-default position.
> >
> 
> Right, what you're advocating is zfs_prefetch_non_default. Which is
> simpler, but still rather weird.

Having special zfs_prefetch_non_default tunable implies that
zfs_prefetch can be only set once (i.e. at boot time), and cannot be
flipped later.  Is that true?  If not, I fail to see the need for
zfs_prefetch_non_default or original two-sysctl implementation.

./danfe


More information about the svn-src-all mailing list