summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Yao <ryao@gentoo.org>2013-03-23 23:48:08 +0000
committerRichard Yao <ryao@gentoo.org>2013-03-23 23:48:08 +0000
commitcc1e889baec0d93d172283170197dbcdccee5a4e (patch)
tree384b45d050fecfe0d3390d68bb492c9a69c37cbb /sys-kernel/spl
parentvanilla-3.8.4 + genpatches-3.8-5 + grsecurity-2.9.1-3.8.4-201303221826 (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--sys-kernel/spl/files/spl-0.6.0_rc14-no-cond_resched.patch38
-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.ebuild8
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() {