svn commit: r357658 - head/sys/amd64/include
Mateusz Guzik
mjg at FreeBSD.org
Fri Feb 7 16:22:02 UTC 2020
Author: mjg
Date: Fri Feb 7 16:22:02 2020
New Revision: 357658
URL: https://svnweb.freebsd.org/changeset/base/357658
Log:
amd64: clean up counter(9)
- stop open-coding access to per-cpu data, use common macros instead
- consistently use counter_t type where appropriate
Modified:
head/sys/amd64/include/counter.h
Modified: head/sys/amd64/include/counter.h
==============================================================================
--- head/sys/amd64/include/counter.h Fri Feb 7 15:50:47 2020 (r357657)
+++ head/sys/amd64/include/counter.h Fri Feb 7 16:22:02 2020 (r357658)
@@ -40,21 +40,21 @@
#ifdef IN_SUBR_COUNTER_C
static inline uint64_t
-counter_u64_read_one(uint64_t *p, int cpu)
+counter_u64_read_one(counter_u64_t c, int cpu)
{
- return (*(uint64_t *)((char *)p + UMA_PCPU_ALLOC_SIZE * cpu));
+ return (*zpcpu_get_cpu(c, cpu));
}
static inline uint64_t
-counter_u64_fetch_inline(uint64_t *p)
+counter_u64_fetch_inline(uint64_t *c)
{
uint64_t r;
- int i;
+ int cpu;
r = 0;
- CPU_FOREACH(i)
- r += counter_u64_read_one((uint64_t *)p, i);
+ CPU_FOREACH(cpu)
+ r += counter_u64_read_one(c, cpu);
return (r);
}
@@ -62,9 +62,10 @@ counter_u64_fetch_inline(uint64_t *p)
static void
counter_u64_zero_one_cpu(void *arg)
{
+ counter_u64_t c;
- *((uint64_t *)((char *)arg + UMA_PCPU_ALLOC_SIZE *
- PCPU_GET(cpuid))) = 0;
+ c = arg;
+ *(zpcpu_get(c)) = 0;
}
static inline void
More information about the svn-src-head
mailing list