Date: Sat, 4 Oct 2014 15:44:55 +0100 From: "Steven Hartland" <killing@multiplay.co.uk> To: "Ian Lepore" <ian@FreeBSD.org>, "Xin LI" <delphij@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r272506 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <D120B09D13D2457786E88D755911BF2E@multiplay.co.uk> References: <201410040814.s948EBH0003546@svn.freebsd.org> <1412433165.12052.106.camel@revolution.hippie.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Does the attached patch fix this for your Ian?
Regards
Steve
----- Original Message -----
From: "Ian Lepore" <ian@FreeBSD.org>
To: "Xin LI" <delphij@FreeBSD.org>
Cc: <src-committers@freebsd.org>; <svn-src-all@freebsd.org>; <svn-src-head@freebsd.org>
Sent: Saturday, October 04, 2014 3:32 PM
Subject: Re: svn commit: r272506 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
> On Sat, 2014-10-04 at 08:14 +0000, Xin LI wrote:
>> Author: delphij
>> Date: Sat Oct 4 08:14:10 2014
>> New Revision: 272506
>> URL: https://svnweb.freebsd.org/changeset/base/272506
>>
>> Log:
>> MFV r272495:
>>
>> In arc_kmem_reap_now(), reap range_seg_cache too to reclaim memory in
>> response of memory pressure.
>>
>> Illumos issue:
>> 5163 arc should reap range_seg_cache
>>
>> MFC after: 1 week
>>
>> Modified:
>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c
>> Directory Properties:
>> head/sys/cddl/contrib/opensolaris/ (props changed)
>>
>> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
>> ==============================================================================
>> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sat Oct 4 08:08:56 2014 (r272505)
>> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sat Oct 4 08:14:10 2014 (r272506)
>> @@ -2591,6 +2591,7 @@ arc_kmem_reap_now(arc_reclaim_strategy_t
>> size_t i;
>> kmem_cache_t *prev_cache = NULL;
>> kmem_cache_t *prev_data_cache = NULL;
>> + extern kmem_cache_t *range_seg_cache;
>>
>
> I get this when compiling sparc64 GENERIC, must be different warnings
> enabled...
>
> cc1: warnings being treated as errors
> /local/build/staging/freebsd/head/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c: In function 'arc_kmem_reap_now':
> /local/build/staging/freebsd/head/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:2594: warning: nested extern
> declaration of 'range_seg_cache' [-Wnested-externs]
>
> -- Ian
>
>> DTRACE_PROBE(arc__kmem_reap_start);
>> #ifdef _KERNEL
>> @@ -2628,6 +2629,7 @@ arc_kmem_reap_now(arc_reclaim_strategy_t
>> }
>> kmem_cache_reap_now(buf_cache);
>> kmem_cache_reap_now(hdr_cache);
>> + kmem_cache_reap_now(range_seg_cache);
>>
>> #ifdef sun
>> /*
>>
>> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c
>> ==============================================================================
>> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c Sat Oct 4 08:08:56 2014 (r272505)
>> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c Sat Oct 4 08:14:10 2014 (r272506)
>> @@ -33,7 +33,7 @@
>> #include <sys/zio.h>
>> #include <sys/range_tree.h>
>>
>> -static kmem_cache_t *range_seg_cache;
>> +kmem_cache_t *range_seg_cache;
>>
>> void
>> range_tree_init(void)
>>
>
>
>
>
[-- Attachment #2 --]
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c (revision 272525)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c (working copy)
@@ -2584,6 +2584,7 @@ arc_reclaim_needed(void)
extern kmem_cache_t *zio_buf_cache[];
extern kmem_cache_t *zio_data_buf_cache[];
+extern kmem_cache_t *range_seg_cache;
static void __noinline
arc_kmem_reap_now(arc_reclaim_strategy_t strat)
@@ -2591,7 +2592,6 @@ arc_kmem_reap_now(arc_reclaim_strategy_t strat)
size_t i;
kmem_cache_t *prev_cache = NULL;
kmem_cache_t *prev_data_cache = NULL;
- extern kmem_cache_t *range_seg_cache;
DTRACE_PROBE(arc__kmem_reap_start);
#ifdef _KERNEL
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D120B09D13D2457786E88D755911BF2E>
