From owner-freebsd-current@FreeBSD.ORG Mon Jan 31 20:50:53 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E156106566B for ; Mon, 31 Jan 2011 20:50:53 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from mail-ey0-f182.google.com (mail-ey0-f182.google.com [209.85.215.182]) by mx1.freebsd.org (Postfix) with ESMTP id EAC598FC13 for ; Mon, 31 Jan 2011 20:50:52 +0000 (UTC) Received: by eyf6 with SMTP id 6so2931225eyf.13 for ; Mon, 31 Jan 2011 12:50:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=S+ZcLTJEos6nl9oxYKb3MuB1K2Go7G5Za0wJHevHfpI=; b=LjI1SwAJaD/QEiM/y03sAFg1QPh8F8tdq/NlGH0JnX9y+X4G9CqURi83yYH6dvIuGj S2EtG+JQBBa6yFGA9bQV3cXke9LXi2HmXLsZNeQcNDarGTqK9AnvCj5K4o+WD6fwkEF7 iZ59a+/g0tHd5q3TMCYRVSos4tkRoqLR9KNOg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=B0qc6B5ACiQIXN9SGw4ufYHH7fq3ATfzgXuO7e7bsHtNpjspiYcYaO4B3IZuWZFSyN OC+IoISdbA10NNE0X8E+BlkygW5q/OMbOFAV3pCJfQrSt2EV7wkTS/J62wPbZj9bArab 3X4E8B/NtEEMVM36gXcmRMagB5PvCmcoMgTOQ= Received: by 10.14.14.65 with SMTP id c41mr55672eec.16.1296507051886; Mon, 31 Jan 2011 12:50:51 -0800 (PST) Received: from localhost (tor-exit.imjared.com [208.66.135.190]) by mx.google.com with ESMTPS id x54sm16675321eeh.11.2011.01.31.12.50.47 (version=SSLv3 cipher=RC4-MD5); Mon, 31 Jan 2011 12:50:50 -0800 (PST) From: Anonymous To: Shawn Webb References: Date: Mon, 31 Jan 2011 23:50:26 +0300 In-Reply-To: (Shawn Webb's message of "Mon, 31 Jan 2011 13:06:00 -0700") Message-ID: <86k4hkiyr1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Cc: FreeBSD-current Subject: Re: zpool v28 and -current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Jan 2011 20:50:53 -0000 Shawn Webb writes: > I'm having trouble building freebsd-current (sources as of 29 Jan 2011) with > the latest zpool v28 patch. `make buildworld` fails. I'd attach a copy of > the build log, but it's pretty big. I can put it online on my tech blog if > needed. Has anyone else had the same problem? The `uname -a` output of the > box in question: > > FreeBSD beastie 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r218075: Sat Jan 29 > 15:14:44 MST 2011 shawn@beastie:/usr/obj/usr/src/sys/GENERIC amd64 Try below diff-against-diff. I'm using it for weeks with a few p4 commits. inb4 you're encouraged to wait after 7.4/8.2 are out %% --- zfs_20101212.patch pjd's original +++ zfs_20101212.patch sync with r218058 @@ -34850,12 +34851,14 @@ { --- sys/cddl/compat/opensolaris/sys/atomic.h.orig +++ sys/cddl/compat/opensolaris/sys/atomic.h -@@ -39,9 +39,10 @@ - #ifndef __LP64__ +@@ -39,11 +39,10 @@ + #if !defined(__LP64__) && !defined(__mips_n32) extern void atomic_add_64(volatile uint64_t *target, int64_t delta); extern void atomic_dec_64(volatile uint64_t *target); --extern void *atomic_cas_ptr(volatile void *target, void *cmp, void *newval); #endif +-#ifndef __LP64__ +-extern void *atomic_cas_ptr(volatile void *target, void *cmp, void *newval); +-#endif #ifndef __sparc64__ +extern uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, + uint32_t newval); @@ -38448,9 +38451,9 @@ TUNABLE_QUAD("vfs.zfs.arc_meta_limit", &zfs_arc_meta_limit); -TUNABLE_INT("vfs.zfs.mdcomp_disable", &zfs_mdcomp_disable); SYSCTL_DECL(_vfs_zfs); - SYSCTL_QUAD(_vfs_zfs, OID_AUTO, arc_max, CTLFLAG_RDTUN, &zfs_arc_max, 0, + SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, arc_max, CTLFLAG_RDTUN, &zfs_arc_max, 0, "Maximum ARC size"); - SYSCTL_QUAD(_vfs_zfs, OID_AUTO, arc_min, CTLFLAG_RDTUN, &zfs_arc_min, 0, + SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, arc_min, CTLFLAG_RDTUN, &zfs_arc_min, 0, "Minimum ARC size"); -SYSCTL_INT(_vfs_zfs, OID_AUTO, mdcomp_disable, CTLFLAG_RDTUN, - &zfs_mdcomp_disable, 0, "Disable metadata compression"); @@ -56065,16 +56068,16 @@ + &zfs_txg_synctime_ms, 0, "Target milliseconds to sync a txg"); + +TUNABLE_QUAD("vfs.zfs.write_limit_min", &zfs_write_limit_min); -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_min, CTLFLAG_RDTUN, ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_min, CTLFLAG_RDTUN, + &zfs_write_limit_min, 0, "Minimum write limit"); +TUNABLE_QUAD("vfs.zfs.write_limit_max", &zfs_write_limit_max); -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_max, CTLFLAG_RDTUN, ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_max, CTLFLAG_RDTUN, + &zfs_write_limit_max, 0, "Maximum data payload per txg"); +TUNABLE_QUAD("vfs.zfs.write_limit_inflated", &zfs_write_limit_inflated); -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_inflated, CTLFLAG_RDTUN, ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_inflated, CTLFLAG_RDTUN, + &zfs_write_limit_inflated, 0, ""); +TUNABLE_QUAD("vfs.zfs.write_limit_override", &zfs_write_limit_override); -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_override, CTLFLAG_RDTUN, ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_override, CTLFLAG_RDTUN, + &zfs_write_limit_override, 0, ""); + +int @@ -75748,7 +75751,7 @@ uint64_t *io_stall; zio_t *io_gang_leader; zio_gang_node_t *io_gang_tree; -@@ -336,56 +416,64 @@ +@@ -336,57 +416,64 @@ kcondvar_t io_cv; /* FMA state */ @@ -75757,9 +75760,8 @@ #ifdef _KERNEL /* FreeBSD only. */ -- struct ostask io_task; -+ struct ostask io_task_issue; -+ struct ostask io_task_interrupt; + struct ostask io_task_issue; + struct ostask io_task_interrupt; #endif }; @@ -76377,7 +76379,7 @@ -SYSCTL_INT(_vfs_zfs_txg, OID_AUTO, synctime, CTLFLAG_RDTUN, &zfs_txg_synctime, - 0, "Target seconds to sync a txg"); -TUNABLE_QUAD("vfs.zfs.txg.write_limit_override", &zfs_write_limit_override); --SYSCTL_QUAD(_vfs_zfs_txg, OID_AUTO, write_limit_override, CTLFLAG_RW, +-SYSCTL_UQUAD(_vfs_zfs_txg, OID_AUTO, write_limit_override, CTLFLAG_RW, - &zfs_write_limit_override, 0, - "Override maximum size of a txg to this size in bytes, " - "value of 0 means don't override"); @@ -103163,7 +103165,7 @@ } return (ZIO_PIPELINE_CONTINUE); -@@ -943,10 +1063,23 @@ +@@ -943,10 +1063,11 @@ */ static void @@ -103173,36 +103175,22 @@ spa_t *spa = zio->io_spa; zio_type_t t = zio->io_type; + int flags = TQ_SLEEP | (cutinline ? TQ_FRONT : 0); -+#ifdef _KERNEL -+ struct ostask *task; -+#endif -+ -+ ASSERT(q == ZIO_TASKQ_ISSUE || q == ZIO_TASKQ_INTERRUPT); -+ -+#ifdef _KERNEL -+ if (q == ZIO_TASKQ_ISSUE) -+ task = &zio->io_task_issue; -+ else /* if (q == ZIO_TASKQ_INTERRUPT) */ -+ task = &zio->io_task_interrupt; -+#endif - - /* - * If we're a config writer or a probe, the normal issue and -@@ -970,8 +1103,13 @@ - q++; - + #ifdef _KERNEL + struct ostask *task; + #endif +@@ -972,10 +1105,10 @@ ASSERT3U(q, <, ZIO_TASKQ_TYPES); -+#ifdef _KERNEL + #ifdef _KERNEL (void) taskq_dispatch_safe(spa->spa_zio_taskq[t][q], -- (task_func_t *)zio_execute, zio, &zio->io_task); +- (task_func_t *)zio_execute, zio, task); + (task_func_t *)zio_execute, zio, flags, task); -+#else -+ (void) taskq_dispatch(spa->spa_zio_taskq[t][q], + #else + (void) taskq_dispatch(spa->spa_zio_taskq[t][q], +- (task_func_t *)zio_execute, zio, TQ_SLEEP); + (task_func_t *)zio_execute, zio, flags); -+#endif + #endif } - static boolean_t @@ -990,7 +1128,7 @@ static int zio_issue_async(zio_t *zio) @@ -104217,22 +104205,16 @@ zio_gang_tree_free(&zio->io_gang_tree); -@@ -2300,18 +2900,36 @@ - * Reexecution is potentially a huge amount of work. - * Hand it off to the otherwise-unused claim taskq. - */ -+#ifdef _KERNEL +@@ -2303,7 +2903,7 @@ + #ifdef _KERNEL (void) taskq_dispatch_safe( spa->spa_zio_taskq[ZIO_TYPE_CLAIM][ZIO_TASKQ_ISSUE], -- (task_func_t *)zio_reexecute, zio, &zio->io_task); +- (task_func_t *)zio_reexecute, zio, + (task_func_t *)zio_reexecute, zio, TQ_SLEEP, -+ &zio->io_task_issue); -+#else -+ (void) taskq_dispatch( -+ spa->spa_zio_taskq[ZIO_TYPE_CLAIM][ZIO_TASKQ_ISSUE], -+ (task_func_t *)zio_reexecute, zio, TQ_SLEEP); -+#endif - } + &zio->io_task_issue); + #else + (void) taskq_dispatch( +@@ -2314,11 +2914,22 @@ return (ZIO_PIPELINE_STOP); } %%