zpool v28 and -current
Anonymous
swell.k at gmail.com
Mon Jan 31 20:50:53 UTC 2011
Shawn Webb <lattera at 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 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 at 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);
}
%%
More information about the freebsd-current
mailing list