aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/boot/zfs/zfsimpl.h10
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c36
-rw-r--r--sys/cddl/dev/dtrace/aarch64/dtrace_subr.c27
-rw-r--r--sys/cddl/dev/dtrace/amd64/dtrace_subr.c25
-rw-r--r--sys/cddl/dev/dtrace/arm/dtrace_subr.c25
-rw-r--r--sys/cddl/dev/dtrace/i386/dtrace_subr.c25
-rw-r--r--sys/cddl/dev/dtrace/powerpc/dtrace_subr.c25
-rw-r--r--sys/cddl/dev/dtrace/riscv/dtrace_subr.c27
8 files changed, 39 insertions, 161 deletions
diff --git a/sys/cddl/boot/zfs/zfsimpl.h b/sys/cddl/boot/zfs/zfsimpl.h
index 83d964360343..c9de1fe4c391 100644
--- a/sys/cddl/boot/zfs/zfsimpl.h
+++ b/sys/cddl/boot/zfs/zfsimpl.h
@@ -536,6 +536,12 @@ typedef struct zio_gbh {
offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)])
#define VDEV_UBERBLOCK_SIZE(vd) (1ULL << VDEV_UBERBLOCK_SHIFT(vd))
+#define ASHIFT_UBERBLOCK_SHIFT(ashift) \
+ MIN(MAX(ashift, UBERBLOCK_SHIFT), \
+ MAX_UBERBLOCK_SHIFT)
+#define ASHIFT_UBERBLOCK_SIZE(ashift) \
+ (1ULL << ASHIFT_UBERBLOCK_SHIFT(ashift))
+
typedef struct vdev_phys {
char vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_eck_t)];
zio_eck_t vp_zbt;
@@ -2015,11 +2021,11 @@ typedef struct vdev_indirect_config {
typedef struct vdev {
STAILQ_ENTRY(vdev) v_childlink; /* link in parent's child list */
- STAILQ_ENTRY(vdev) v_alllink; /* link in global vdev list */
vdev_list_t v_children; /* children of this vdev */
const char *v_name; /* vdev name */
uint64_t v_guid; /* vdev guid */
- uint64_t v_txg; /* most recent transaction */
+ uint64_t v_label; /* label instantiated from (top vdev) */
+ uint64_t v_txg; /* most recent transaction (top vdev) */
uint64_t v_id; /* index in parent */
uint64_t v_psize; /* physical device capacity */
int v_ashift; /* offset to block shift */
diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
index 7192df200ae2..853cfb845878 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
@@ -707,6 +707,31 @@ dtrace_error(uint32_t *counter)
} while (dtrace_cas32(counter, oval, nval) != oval);
}
+void
+dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
+{
+ cpuset_t cpus;
+
+ if (cpu == DTRACE_CPUALL)
+ cpus = all_cpus;
+ else
+ CPU_SETOF(cpu, &cpus);
+
+ smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
+ smp_no_rendezvous_barrier, arg);
+}
+
+static void
+dtrace_sync_func(void)
+{
+}
+
+void
+dtrace_sync(void)
+{
+ dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
+}
+
/*
* Use the DTRACE_LOADFUNC macro to define functions for each of loading a
* uint8_t, a uint16_t, a uint32_t and a uint64_t.
@@ -7761,7 +7786,8 @@ dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
uintptr_t *memref = (uintptr_t *)(uintptr_t) val;
if (!DTRACE_INSCRATCHPTR(&mstate,
- (uintptr_t)memref, 2 * sizeof(uintptr_t))) {
+ (uintptr_t) memref,
+ sizeof (uintptr_t) + sizeof (size_t))) {
*flags |= CPU_DTRACE_BADADDR;
continue;
}
@@ -7773,21 +7799,21 @@ dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
* Check if the size exceeds the allocated
* buffer size.
*/
- if (size + sizeof(uintptr_t) > dp->dtdo_rtype.dtdt_size) {
+ if (size + sizeof (size_t) >
+ dp->dtdo_rtype.dtdt_size) {
/* Flag a drop! */
*flags |= CPU_DTRACE_DROP;
continue;
}
/* Store the size in the buffer first. */
- DTRACE_STORE(uintptr_t, tomax,
- valoffs, size);
+ DTRACE_STORE(size_t, tomax, valoffs, size);
/*
* Offset the buffer address to the start
* of the data.
*/
- valoffs += sizeof(uintptr_t);
+ valoffs += sizeof(size_t);
/*
* Reset to the memory address rather than
diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c b/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c
index 32e84d8fbfe9..ff880e804770 100644
--- a/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c
@@ -124,33 +124,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
(*func)(0, (uintptr_t)VM_MIN_KERNEL_ADDRESS);
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-
-}
-
-void
-dtrace_sync(void)
-{
-
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
static uint64_t nsec_scale;
#define SCALE_SHIFT 25
diff --git a/sys/cddl/dev/dtrace/amd64/dtrace_subr.c b/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
index 81aa53d00bd8..877d52fe18a7 100644
--- a/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
@@ -142,31 +142,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
(*func)(0, la57 ? (uintptr_t)addr_P5Tmap : (uintptr_t)addr_P4Tmap);
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-}
-
-void
-dtrace_sync(void)
-{
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
#ifdef notyet
void
dtrace_safe_synchronous_signal(void)
diff --git a/sys/cddl/dev/dtrace/arm/dtrace_subr.c b/sys/cddl/dev/dtrace/arm/dtrace_subr.c
index bb42044aa477..10e9281709b6 100644
--- a/sys/cddl/dev/dtrace/arm/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/arm/dtrace_subr.c
@@ -138,31 +138,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
*/
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-}
-
-void
-dtrace_sync(void)
-{
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
/*
* DTrace needs a high resolution time function which can
* be called from a probe context and guaranteed not to have
diff --git a/sys/cddl/dev/dtrace/i386/dtrace_subr.c b/sys/cddl/dev/dtrace/i386/dtrace_subr.c
index 026581f5a899..ebe2194a4b2f 100644
--- a/sys/cddl/dev/dtrace/i386/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/i386/dtrace_subr.c
@@ -139,31 +139,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
(*func)(0, kernelbase);
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-}
-
-void
-dtrace_sync(void)
-{
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
#ifdef notyet
void
dtrace_safe_synchronous_signal(void)
diff --git a/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c b/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c
index 5dd083310e6f..ee8be8da642f 100644
--- a/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c
@@ -123,31 +123,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
*/
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-}
-
-void
-dtrace_sync(void)
-{
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
static int64_t tgt_cpu_tsc;
static int64_t hst_cpu_tsc;
static int64_t timebase_skew[MAXCPU];
diff --git a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
index 3a6aacd86fcd..ed2c0bdba7e2 100644
--- a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
@@ -127,33 +127,6 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
(*func)(0, (uintptr_t)VM_MIN_KERNEL_ADDRESS);
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
-{
- cpuset_t cpus;
-
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- CPU_SETOF(cpu, &cpus);
-
- smp_rendezvous_cpus(cpus, smp_no_rendezvous_barrier, func,
- smp_no_rendezvous_barrier, arg);
-}
-
-static void
-dtrace_sync_func(void)
-{
-
-}
-
-void
-dtrace_sync(void)
-{
-
- dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL);
-}
-
/*
* DTrace needs a high resolution time function which can
* be called from a probe context and guaranteed not to have