Date: Wed, 10 Jun 2009 21:05:37 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r193953 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <200906102105.n5AL5bPH026001@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Wed Jun 10 21:05:37 2009 New Revision: 193953 URL: http://svn.freebsd.org/changeset/base/193953 Log: use default policy for enabling prefetching unless the TUNABLE is set Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Wed Jun 10 21:03:57 2009 (r193952) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Wed Jun 10 21:05:37 2009 (r193953) @@ -158,7 +158,6 @@ static int arc_grow_retry = 60; */ static int arc_min_prefetch_lifespan; -extern int zfs_prefetch_disable; extern int zfs_prefetch_enable; static int arc_dead; @@ -3423,6 +3422,8 @@ arc_lowmem(void *arg __unused, int howto void arc_init(void) { + int prefetch_tunable_set = 0; + mutex_init(&arc_reclaim_thr_lock, NULL, MUTEX_DEFAULT, NULL); cv_init(&arc_reclaim_thr_cv, NULL, CV_DEFAULT, NULL); mutex_init(&arc_lowmem_lock, NULL, MUTEX_DEFAULT, NULL); @@ -3551,19 +3552,23 @@ arc_init(void) mutex_init(&zfs_write_limit_lock, NULL, MUTEX_DEFAULT, NULL); #ifdef _KERNEL + if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_enable", &zfs_prefetch_enable)) + prefetch_tunable_set = 1; + #ifdef __i386__ - if (zfs_prefetch_enable != 1) { + if (prefetch_tunable_set == 0) { printf("ZFS NOTICE: prefetch is disabled by default on i386" " - add enable to tunable to change.\n" ); - zfs_prefetch_disable=1; + zfs_prefetch_enable=0; } -#endif +#else if ((((uint64_t)physmem * PAGESIZE) < (1ULL << 32)) && - (zfs_prefetch_enable != 1) && (zfs_prefetch_disable != 1)) { + prefetch_tunable_set == 0) { printf("ZFS NOTICE: system has less than 4GB and prefetch enable is not set" "... disabling.\n"); - zfs_prefetch_disable=1; + zfs_prefetch_enable=0; } +#endif /* Warn about ZFS memory and address space requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Wed Jun 10 21:03:57 2009 (r193952) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Wed Jun 10 21:05:37 2009 (r193953) @@ -37,8 +37,7 @@ * until we can get this working the way we want it to. */ -int zfs_prefetch_disable = 0; -int zfs_prefetch_enable = 0; +int zfs_prefetch_enable = 1; /* max # of streams per zfetch */ uint32_t zfetch_max_streams = 8; @@ -50,10 +49,6 @@ uint32_t zfetch_block_cap = 256; uint64_t zfetch_array_rd_sz = 1024 * 1024; SYSCTL_DECL(_vfs_zfs); -TUNABLE_INT("vfs.zfs.prefetch_disable", &zfs_prefetch_disable); -SYSCTL_INT(_vfs_zfs, OID_AUTO, prefetch_disable, CTLFLAG_RDTUN, - &zfs_prefetch_disable, 0, "Disable prefetch"); -TUNABLE_INT("vfs.zfs.prefetch_enable", &zfs_prefetch_enable); SYSCTL_INT(_vfs_zfs, OID_AUTO, prefetch_enable, CTLFLAG_RDTUN, &zfs_prefetch_enable, 0, "Enable prefetch for systems with less than 4GB"); SYSCTL_NODE(_vfs_zfs, OID_AUTO, zfetch, CTLFLAG_RW, 0, "ZFS ZFETCH");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906102105.n5AL5bPH026001>