From owner-freebsd-current@FreeBSD.ORG Tue Feb 1 11:35:03 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 09F1C106564A for ; Tue, 1 Feb 2011 11:35:03 +0000 (UTC) (envelope-from olivier@gid0.org) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id C99148FC0A for ; Tue, 1 Feb 2011 11:35:02 +0000 (UTC) Received: by iyb26 with SMTP id 26so5997569iyb.13 for ; Tue, 01 Feb 2011 03:35:02 -0800 (PST) MIME-Version: 1.0 Received: by 10.231.32.76 with SMTP id b12mr7983889ibd.162.1296560102098; Tue, 01 Feb 2011 03:35:02 -0800 (PST) Received: by 10.231.145.198 with HTTP; Tue, 1 Feb 2011 03:35:02 -0800 (PST) In-Reply-To: <86k4hkiyr1.fsf@gmail.com> References: <86k4hkiyr1.fsf@gmail.com> Date: Tue, 1 Feb 2011 12:35:02 +0100 Message-ID: From: Olivier Smedts To: Anonymous Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: FreeBSD-current , Shawn Webb 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: Tue, 01 Feb 2011 11:35:03 -0000 Hello, 2011/1/31 Anonymous : > 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 o= f >> 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 t= he >> box in question: >> >> FreeBSD beastie 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r218075: Sat Jan 29 >> 15:14:44 MST 2011 =A0 =A0 shawn@beastie:/usr/obj/usr/src/sys/GENERIC =A0= 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 =A0 =A0 =A0 =A0 =A0pjd's original > +++ zfs_20101212.patch =A0 =A0 =A0 =A0 =A0sync with r218058 Could you send it as an attachment please ? Thanks ! > @@ -34850,12 +34851,14 @@ > =A0{ > =A0--- sys/cddl/compat/opensolaris/sys/atomic.h.orig > =A0+++ sys/cddl/compat/opensolaris/sys/atomic.h > -@@ -39,9 +39,10 @@ > - #ifndef __LP64__ > +@@ -39,11 +39,10 @@ > + #if !defined(__LP64__) && !defined(__mips_n32) > =A0extern void atomic_add_64(volatile uint64_t *target, int64_t delta); > =A0extern void atomic_dec_64(volatile uint64_t *target); > --extern void *atomic_cas_ptr(volatile void *target, void *cmp, =A0void *= newval); > =A0#endif > +-#ifndef __LP64__ > +-extern void *atomic_cas_ptr(volatile void *target, void *cmp, =A0void *= newval); > +-#endif > =A0#ifndef __sparc64__ > =A0+extern uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp= , > =A0+ =A0 =A0uint32_t newval); > @@ -38448,9 +38451,9 @@ > =A0TUNABLE_QUAD("vfs.zfs.arc_meta_limit", &zfs_arc_meta_limit); > =A0-TUNABLE_INT("vfs.zfs.mdcomp_disable", &zfs_mdcomp_disable); > =A0SYSCTL_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, > =A0 =A0 =A0"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, > =A0 =A0 =A0"Minimum ARC size"); > =A0-SYSCTL_INT(_vfs_zfs, OID_AUTO, mdcomp_disable, CTLFLAG_RDTUN, > =A0- =A0 =A0&zfs_mdcomp_disable, 0, "Disable metadata compression"); > @@ -56065,16 +56068,16 @@ > =A0+ =A0 =A0&zfs_txg_synctime_ms, 0, "Target milliseconds to sync a txg")= ; > =A0+ > =A0+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, > =A0+ =A0 =A0&zfs_write_limit_min, 0, "Minimum write limit"); > =A0+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, > =A0+ =A0 =A0&zfs_write_limit_max, 0, "Maximum data payload per txg"); > =A0+TUNABLE_QUAD("vfs.zfs.write_limit_inflated", &zfs_write_limit_inflate= d); > -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_inflated, CTLFLAG_RDTUN, > ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_inflated, CTLFLAG_RDTUN, > =A0+ =A0 =A0&zfs_write_limit_inflated, 0, ""); > =A0+TUNABLE_QUAD("vfs.zfs.write_limit_override", &zfs_write_limit_overrid= e); > -+SYSCTL_QUAD(_vfs_zfs, OID_AUTO, write_limit_override, CTLFLAG_RDTUN, > ++SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, write_limit_override, CTLFLAG_RDTUN, > =A0+ =A0 =A0&zfs_write_limit_override, 0, ""); > =A0+ > =A0+int > @@ -75748,7 +75751,7 @@ > =A0 =A0 =A0 =A0uint64_t =A0 =A0 =A0 =A0*io_stall; > =A0 =A0 =A0 =A0zio_t =A0 =A0 =A0 =A0 =A0 *io_gang_leader; > =A0 =A0 =A0 =A0zio_gang_node_t *io_gang_tree; > -@@ -336,56 +416,64 @@ > +@@ -336,57 +416,64 @@ > =A0 =A0 =A0 =A0kcondvar_t =A0 =A0 =A0io_cv; > > =A0 =A0 =A0 =A0/* FMA state */ > @@ -75757,9 +75760,8 @@ > > =A0#ifdef _KERNEL > =A0 =A0 =A0 =A0/* FreeBSD only. */ > -- =A0 =A0 =A0struct ostask =A0 io_task; > -+ =A0 =A0 =A0struct ostask =A0 io_task_issue; > -+ =A0 =A0 =A0struct ostask =A0 io_task_interrupt; > + =A0 =A0 =A0 struct ostask =A0 io_task_issue; > + =A0 =A0 =A0 struct ostask =A0 io_task_interrupt; > =A0#endif > =A0}; > > @@ -76377,7 +76379,7 @@ > =A0-SYSCTL_INT(_vfs_zfs_txg, OID_AUTO, synctime, CTLFLAG_RDTUN, &zfs_txg_= synctime, > =A0- =A0 =A00, "Target seconds to sync a txg"); > =A0-TUNABLE_QUAD("vfs.zfs.txg.write_limit_override", &zfs_write_limit_ove= rride); > --SYSCTL_QUAD(_vfs_zfs_txg, OID_AUTO, write_limit_override, CTLFLAG_RW, > +-SYSCTL_UQUAD(_vfs_zfs_txg, OID_AUTO, write_limit_override, CTLFLAG_RW, > =A0- =A0 =A0&zfs_write_limit_override, 0, > =A0- =A0 =A0"Override maximum size of a txg to this size in bytes, " > =A0- =A0 =A0"value of 0 means don't override"); > @@ -103163,7 +103165,7 @@ > =A0 =A0 =A0 =A0} > > =A0 =A0 =A0 =A0return (ZIO_PIPELINE_CONTINUE); > -@@ -943,10 +1063,23 @@ > +@@ -943,10 +1063,11 @@ > =A0 */ > > =A0static void > @@ -103173,36 +103175,22 @@ > =A0 =A0 =A0 =A0spa_t *spa =3D zio->io_spa; > =A0 =A0 =A0 =A0zio_type_t t =3D zio->io_type; > =A0+ =A0 =A0 =A0int flags =3D TQ_SLEEP | (cutinline ? TQ_FRONT : 0); > -+#ifdef _KERNEL > -+ =A0 =A0 =A0struct ostask *task; > -+#endif > -+ > -+ =A0 =A0 =A0ASSERT(q =3D=3D ZIO_TASKQ_ISSUE || q =3D=3D ZIO_TASKQ_INTER= RUPT); > -+ > -+#ifdef _KERNEL > -+ =A0 =A0 =A0if (q =3D=3D ZIO_TASKQ_ISSUE) > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0task =3D &zio->io_task_issue; > -+ =A0 =A0 =A0else /* if (q =3D=3D ZIO_TASKQ_INTERRUPT) */ > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0task =3D &zio->io_task_interrupt; > -+#endif > - > - =A0 =A0 =A0 /* > - =A0 =A0 =A0 =A0* If we're a config writer or a probe, the normal issue = and > -@@ -970,8 +1103,13 @@ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 q++; > - > + #ifdef _KERNEL > + =A0 =A0 =A0 struct ostask *task; > + #endif > +@@ -972,10 +1105,10 @@ > =A0 =A0 =A0 =A0ASSERT3U(q, <, ZIO_TASKQ_TYPES); > -+#ifdef _KERNEL > + #ifdef _KERNEL > =A0 =A0 =A0 =A0(void) taskq_dispatch_safe(spa->spa_zio_taskq[t][q], > -- =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_execute, zio, &zio->io_task); > +- =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_execute, zio, task); > =A0+ =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_execute, zio, flags, task); > -+#else > -+ =A0 =A0 =A0(void) taskq_dispatch(spa->spa_zio_taskq[t][q], > + #else > + =A0 =A0 =A0 (void) taskq_dispatch(spa->spa_zio_taskq[t][q], > +- =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_execute, zio, TQ_SLEEP); > =A0+ =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_execute, zio, flags); > -+#endif > + #endif > =A0} > > - static boolean_t > =A0@@ -990,7 +1128,7 @@ > =A0static int > =A0zio_issue_async(zio_t *zio) > @@ -104217,22 +104205,16 @@ > > =A0 =A0 =A0 =A0zio_gang_tree_free(&zio->io_gang_tree); > > -@@ -2300,18 +2900,36 @@ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0* Reexecution is potenti= ally a huge amount of work. > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0* Hand it off to the oth= erwise-unused claim taskq. > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0*/ > -+#ifdef _KERNEL > +@@ -2303,7 +2903,7 @@ > + #ifdef _KERNEL > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(void) taskq_dispatch_safe= ( > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0spa->spa_zio_taskq= [ZIO_TYPE_CLAIM][ZIO_TASKQ_ISSUE], > -- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_= reexecute, zio, &zio->io_task); > +- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_= reexecute, zio, > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(task_func_t *)zi= o_reexecute, zio, TQ_SLEEP, > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&zio->io_task_issue= ); > -+#else > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(void) taskq_dispatch( > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0spa->spa_zio_taskq[= ZIO_TYPE_CLAIM][ZIO_TASKQ_ISSUE], > -+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(task_func_t *)zio_= reexecute, zio, TQ_SLEEP); > -+#endif > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 &zio->io_ta= sk_issue); > + #else > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (void) taskq_dispatch( > +@@ -2314,11 +2914,22 @@ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ZIO_PIPELINE_STOP); > =A0 =A0 =A0 =A0} > > %% > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org= " > --=20 Olivier Smedts=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=A0 _ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 ASCII ribbon campaign ( ) e-mail: olivier@gid0.org=A0 =A0 =A0 =A0 - against HTML email & vCards=A0 X www: http://www.gid0.org=A0 =A0 - against proprietary attachments / \ =A0 "Il y a seulement 10 sortes de gens dans le monde : =A0 ceux qui comprennent le binaire, =A0 et ceux qui ne le comprennent pas."