Date: Tue, 31 Aug 2010 11:19:27 -0400 From: jhell <jhell@DataIX.net> To: Giulio Ferro <auryn@zirakzigil.org> Cc: freebsd-stable@freebsd.org Subject: Re: About zfs + nfs stability Message-ID: <4C7D1D7F.709@DataIX.net> In-Reply-To: <4C7D01F7.4010003@zirakzigil.org> References: <4C7D01F7.4010003@zirakzigil.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------040408020704020505010009 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 08/31/2010 09:21, Giulio Ferro wrote: > 1) Is it a good idea to upgrade this production system to the latest 8 > stable (8.1 stable I believe)? Is it really stable? For this question alone, I can verify that it is stable to upgrade to the stable branch. Though on one hand it might be reasonable for you to locally merge changes from the two points of CDDL into your source tree. Example: (Tested here) cd /usr/src svn merge svn://svn.freebsd.org/base/stable/8/cddl cddl svn merge svn://svn.freebsd.org/base/stable/8/sys/cddl sys/cddl If you do not have any local changes to your source tree for those parts of the branch then you should not have any problems or conflicts upon merge & this will bring your system up-to-date with ZFSv14 in stable/8. Another route if you use CVS would be to checkout the source tree using Subversion and diff it locally but you should still end up with the same result. There are a few patches that I can recommend but they are for stable/8 that has been patched with ZFSv15 that is due to be committed some time in September - November. Patches and descriptions below. And attached is a UMA patch for the VFS subsystem that helps a little with performance but not near as much as the patches below. http://people.freebsd.org/~mm/patches/zfs/v15/stable-8-v15.patch http://people.freebsd.org/~mm/patches/zfs/zfs_metaslab.patch http://people.freebsd.org/~mm/patches/zfs/zfs_abe_stat_rrwlock.patch And for the better performance question by upgrading... that is a real hard question to answer not knowing your hardware implementation. There really has not been that much of a performance increase that I can account for regarding stable/8 vs. releng/8.1, or at least not yet. PS: I have done minimal testing for V4: /nfs either my understanding of it or the way it is setup to work is somewhat confusing but this is only with very little knowledge of NFSv4 so please only take this as opinion but I would not upgrade a production system to use V4: /nfs quite yet unless the need demands it. Regards & Good Luck, -- jhell,v --------------040408020704020505010009 Content-Type: text/plain; name="uma.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="uma.patch" diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 2dcd14f..ed07ecb 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -2727,14 +2727,26 @@ zone_free_item(uma_zone_t zone, void *item, void *udata, } MPASS(keg == slab->us_keg); - /* Do we need to remove from any lists? */ + /* Move to the appropriate list or re-queue further from the head. */ if (slab->us_freecount+1 == keg->uk_ipers) { + /* Partial -> free. */ LIST_REMOVE(slab, us_link); LIST_INSERT_HEAD(&keg->uk_free_slab, slab, us_link); } else if (slab->us_freecount == 0) { + /* Full -> partial. */ LIST_REMOVE(slab, us_link); LIST_INSERT_HEAD(&keg->uk_part_slab, slab, us_link); } + else { + /* Partial -> partial. */ + uma_slab_t tmp; + + tmp = LIST_NEXT(slab, us_link); + if (tmp != NULL && slab->us_freecount > tmp->us_freecount) { + LIST_REMOVE(slab, us_link); + LIST_INSERT_AFTER(tmp, slab, us_link); + } + } /* Slab management stuff */ freei = ((unsigned long)item - (unsigned long)slab->us_data) --------------040408020704020505010009--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C7D1D7F.709>