diff options
author | John Sonnenschein <johns@joyent.com> | 2012-01-13 00:09:27 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2012-01-13 00:09:27 +0000 |
commit | 00341ec52ce9bb65ac947b3d426990ef631e5884 (patch) | |
tree | 500de85e0492d4d0dbcf53b940e4ee13ccb40862 /usr/src | |
parent | ffd3d51cda0d52ac103aaa51865ea8b99ce2bc39 (diff) | |
parent | 4ec159e93280851f8200f5f32558ae1ba82fd1dd (diff) | |
download | illumos-joyent-00341ec52ce9bb65ac947b3d426990ef631e5884.tar.gz |
Merge branch 'master' into gcc4
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/zfs/arc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/usr/src/uts/common/fs/zfs/arc.c b/usr/src/uts/common/fs/zfs/arc.c index a4adb09e16..98aad58025 100644 --- a/usr/src/uts/common/fs/zfs/arc.c +++ b/usr/src/uts/common/fs/zfs/arc.c @@ -22,6 +22,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012, Joyent, Inc. All rights reserved. */ /* @@ -2018,6 +2019,16 @@ arc_reclaim_needed(void) if (availrmem < swapfs_minfree + swapfs_reserve + extra) return (1); + /* + * Check that we have enough availrmem that memory locking (e.g., via + * mlock(3C) or memcntl(2)) can still succeed. (pages_pp_maximum + * stores the number of pages that cannot be locked; when availrmem + * drops below pages_pp_maximum, page locking mechanisms such as + * page_pp_lock() will fail.) + */ + if (availrmem <= pages_pp_maximum) + return (1); + #if defined(__i386) /* * If we're on an i386 platform, it's possible that we'll exhaust the |