Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Feb 2011 12:35:02 +0100
From:      Olivier Smedts <olivier@gid0.org>
To:        Anonymous <swell.k@gmail.com>
Cc:        FreeBSD-current <freebsd-current@freebsd.org>, Shawn Webb <lattera@gmail.com>
Subject:   Re: zpool v28 and -current
Message-ID:  <AANLkTikAhuaeo3Z1O28ihBucafyJnpPiriwqs9v9Hsrv@mail.gmail.com>
In-Reply-To: <86k4hkiyr1.fsf@gmail.com>
References:  <AANLkTikM0S3aovnk0WQikC%2BC130DW7M4Nv6kDp%2BRCfGj@mail.gmail.com> <86k4hkiyr1.fsf@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

2011/1/31 Anonymous <swell.k@gmail.com>:
> Shawn Webb <lattera@gmail.com> 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."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikAhuaeo3Z1O28ihBucafyJnpPiriwqs9v9Hsrv>