From owner-freebsd-current@FreeBSD.ORG Mon Jan 31 21:07:27 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 D2DAD106566C for ; Mon, 31 Jan 2011 21:07:27 +0000 (UTC) (envelope-from lattera@gmail.com) Received: from mail-wy0-f182.google.com (mail-wy0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3C1968FC0C for ; Mon, 31 Jan 2011 21:07:26 +0000 (UTC) Received: by wyf19 with SMTP id 19so6183022wyf.13 for ; Mon, 31 Jan 2011 13:07:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=t89pHqLZRbJ+GDZiOp0qzw4eiLZ/5d+nwToS7D2OLG8=; b=iv7l1J0l20R3geiQuGe/4AP1a5kpb/2jDVSpX43/KjFPjB3NuLpt86LtsnsLznGNZr XfOXJcIDQSVAAm2mH/Utl38jGLhb17LnTcaotzmQIqeZ6XrrjScIITwSUSjGiobcpjNo sp/1+tURYg/voALxyfCzNQjQMu0dP5jwdFAhY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=oKHZHUvtIlmreDqjWqQNJrVZYqY/EykgVNVRfuZPAz8lpALSQ5uJ6CV7eSnsqP3R2K oWG1dIYFZ3oMjWTYnuq0Is0QjAkbzC/STFdC63KgsBAw+1wrcezcKVM/wo4OHq/yVNtz fXD6A4MGgTSUCwoBD0+oby7EBOQNPzTSoGRwA= MIME-Version: 1.0 Received: by 10.227.196.71 with SMTP id ef7mr6672551wbb.162.1296508045852; Mon, 31 Jan 2011 13:07:25 -0800 (PST) Received: by 10.227.135.66 with HTTP; Mon, 31 Jan 2011 13:07:25 -0800 (PST) In-Reply-To: <86k4hkiyr1.fsf@gmail.com> References: <86k4hkiyr1.fsf@gmail.com> Date: Mon, 31 Jan 2011 14:07:25 -0700 Message-ID: From: Shawn Webb To: Anonymous Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 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 21:07:27 -0000 Thanks for the patch. Applying the patch provides the following output: patch < zfs.patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- zfs_20101212.patch pjd's original |+++ zfs_20101212.patch sync with r218058 -------------------------- Patching file zfs_20101212.patch using Plan A... Hunk #1 failed at 34851. Hunk #2 failed at 38451. Hunk #3 succeeded at 56068. Hunk #4 failed at 75751. Hunk #5 failed at 75760. Hunk #6 succeeded at 76379. Hunk #7 failed at 103165. Hunk #8 failed at 103175. Hunk #9 failed at 104205. 7 out of 9 hunks failed--saving rejects to zfs_20101212.patch.rej done On Mon, Jan 31, 2011 at 1:50 PM, Anonymous wrote: > 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); > } > > %% >