diff options
author | Richard Yao <ryao@gentoo.org> | 2013-03-23 23:48:08 +0000 |
---|---|---|
committer | Richard Yao <ryao@gentoo.org> | 2013-03-23 23:48:08 +0000 |
commit | cc1e889baec0d93d172283170197dbcdccee5a4e (patch) | |
tree | 384b45d050fecfe0d3390d68bb492c9a69c37cbb /sys-kernel/spl | |
parent | vanilla-3.8.4 + genpatches-3.8-5 + grsecurity-2.9.1-3.8.4-201303221826 (diff) | |
download | gentoo-2-cc1e889baec0d93d172283170197dbcdccee5a4e.tar.gz gentoo-2-cc1e889baec0d93d172283170197dbcdccee5a4e.tar.bz2 gentoo-2-cc1e889baec0d93d172283170197dbcdccee5a4e.zip |
Free memory more quickly under memory pressure; do not dodoc INSTALL (deprecated upstream); fix /usr/src/spl symlink in 9999 ebuild (thanks likewhoa)
(Portage version: 2.2.0_alpha169/cvs/Linux x86_64, signed Manifest commit with key 0xBEE84C64)
Diffstat (limited to 'sys-kernel/spl')
-rw-r--r-- | sys-kernel/spl/ChangeLog | 11 | ||||
-rw-r--r-- | sys-kernel/spl/files/spl-0.6.0_rc14-no-cond_resched.patch | 38 | ||||
-rw-r--r-- | sys-kernel/spl/spl-0.6.0_rc14-r3.ebuild (renamed from sys-kernel/spl/spl-0.6.0_rc14-r2.ebuild) | 10 | ||||
-rw-r--r-- | sys-kernel/spl/spl-9999.ebuild | 8 |
4 files changed, 59 insertions, 8 deletions
diff --git a/sys-kernel/spl/ChangeLog b/sys-kernel/spl/ChangeLog index eafc85c22ed1..dc419f612977 100644 --- a/sys-kernel/spl/ChangeLog +++ b/sys-kernel/spl/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for sys-kernel/spl # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/ChangeLog,v 1.49 2013/03/20 18:54:04 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/ChangeLog,v 1.50 2013/03/23 23:48:08 ryao Exp $ + +*spl-0.6.0_rc14-r3 (23 Mar 2013) + + 23 Mar 2013; Richard Yao <ryao@gentoo.org> + +files/spl-0.6.0_rc14-no-cond_resched.patch, +spl-0.6.0_rc14-r3.ebuild, + -spl-0.6.0_rc14-r2.ebuild, spl-9999.ebuild: + Free memory more quickly under memory pressure; do not dodoc INSTALL + (deprecated upstream); fix /usr/src/spl symlink in 9999 ebuild (thanks + likewhoa) 20 Mar 2013; Richard Yao <ryao@gentoo.org> spl-9999.ebuild: Remove dodoc INSTALL from 9999 ebuild to reflect upstream change. diff --git a/sys-kernel/spl/files/spl-0.6.0_rc14-no-cond_resched.patch b/sys-kernel/spl/files/spl-0.6.0_rc14-no-cond_resched.patch new file mode 100644 index 000000000000..9f1d692d0371 --- /dev/null +++ b/sys-kernel/spl/files/spl-0.6.0_rc14-no-cond_resched.patch @@ -0,0 +1,38 @@ +From 58a382c73ad3393d7591421950624e75d3c4aea1 Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@cs.stonybrook.edu> +Date: Thu, 21 Mar 2013 13:21:11 -0400 +Subject: [PATCH] Do not call cond_resched() in spl_slab_reclaim() + +Calling cond_resched() after each object is freed and then after each +slab is freed can cause slabs of objects to live for excessive periods +of time following reclaimation. This interferes with the kernel's own +memory management when called from kswapd and can cause direct reclaim +to occur in response to memory pressure that should have been resolved. + +Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> +--- + module/spl/spl-kmem.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c +index f9c1114..a0ca2d2 100644 +--- a/module/spl/spl-kmem.c ++++ b/module/spl/spl-kmem.c +@@ -1112,14 +1112,11 @@ char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap) + + if (skc->skc_flags & KMC_OFFSLAB) + kv_free(skc, sko->sko_addr, size); +- +- cond_resched(); + } + + list_for_each_entry_safe(sks, m, &sks_list, sks_list) { + ASSERT(sks->sks_magic == SKS_MAGIC); + kv_free(skc, sks, skc->skc_slab_size); +- cond_resched(); + } + + SEXIT; +-- +1.8.1.5 + diff --git a/sys-kernel/spl/spl-0.6.0_rc14-r2.ebuild b/sys-kernel/spl/spl-0.6.0_rc14-r3.ebuild index f6e9b030d58a..56165d9cbcd3 100644 --- a/sys-kernel/spl/spl-0.6.0_rc14-r2.ebuild +++ b/sys-kernel/spl/spl-0.6.0_rc14-r3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-0.6.0_rc14-r2.ebuild,v 1.3 2013/03/16 18:05:53 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-0.6.0_rc14-r3.ebuild,v 1.1 2013/03/23 23:48:08 ryao Exp $ EAPI="4" AUTOTOOLS_AUTORECONF="1" @@ -9,7 +9,6 @@ inherit flag-o-matic linux-info linux-mod autotools-utils if [[ ${PV} == "9999" ]] ; then inherit git-2 - MY_PV=9999 EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git" else inherit eutils versionator @@ -71,6 +70,9 @@ src_prepare() { # Linux 3.9 Support epatch "${FILESDIR}/${P}-linux-3.9-compat.patch" + + # Free memory under load quickly + epatch "${FILESDIR}/${P}-no-cond_resched.patch" fi # splat is unnecessary unless we are debugging @@ -98,10 +100,10 @@ src_configure() { src_install() { autotools-utils_src_install - dodoc AUTHORS DISCLAIMER INSTALL README.markdown + dodoc AUTHORS DISCLAIMER README.markdown # Provide /usr/src/spl symlink for lustre - dosym "spl-${MY_PV}/${KV_FULL}" /usr/src/spl + dosym "$(basename $(echo "${ED}/usr/src/spl-"*))/${KV_FULL}" /usr/src/spl } src_test() { diff --git a/sys-kernel/spl/spl-9999.ebuild b/sys-kernel/spl/spl-9999.ebuild index f37d2457c55b..2230fa05a75a 100644 --- a/sys-kernel/spl/spl-9999.ebuild +++ b/sys-kernel/spl/spl-9999.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-9999.ebuild,v 1.32 2013/03/20 18:54:04 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-9999.ebuild,v 1.33 2013/03/23 23:48:08 ryao Exp $ EAPI="4" AUTOTOOLS_AUTORECONF="1" @@ -9,7 +9,6 @@ inherit flag-o-matic linux-info linux-mod autotools-utils if [[ ${PV} == "9999" ]] ; then inherit git-2 - MY_PV=9999 EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git" else inherit eutils versionator @@ -71,6 +70,9 @@ src_prepare() { # Linux 3.9 Support epatch "${FILESDIR}/${P}-linux-3.9-compat.patch" + + # Free memory under load quickly + epatch "${FILESDIR}/${P}-no-cond_resched.patch" fi # splat is unnecessary unless we are debugging @@ -101,7 +103,7 @@ src_install() { dodoc AUTHORS DISCLAIMER README.markdown # Provide /usr/src/spl symlink for lustre - dosym "spl-${MY_PV}/${KV_FULL}" /usr/src/spl + dosym "$(basename $(echo "${ED}/usr/src/spl-"*))/${KV_FULL}" /usr/src/spl } src_test() { |