zpool v28 and -current

Olivier Smedts olivier at gid0.org
Tue Feb 1 11:35:03 UTC 2011


Hello,

2011/1/31 Anonymous <swell.k at gmail.com>:
> 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

Could you send it as an attachment please ? Thanks !

> @@ -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);
>        }
>
> %%
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>

-- 
Olivier Smedts                                                 _
                                        ASCII ribbon campaign ( )
e-mail: olivier at gid0.org        - against HTML email & vCards  X
www: http://www.gid0.org    - against proprietary attachments / \

  "Il y a seulement 10 sortes de gens dans le monde :
  ceux qui comprennent le binaire,
  et ceux qui ne le comprennent pas."


More information about the freebsd-current mailing list