Revert to recommit with the proper message.

This commit is contained in:
Konstantin Belousov 2018-07-06 19:50:25 +00:00
parent 1614716655
commit fb0a281196
4 changed files with 19 additions and 16 deletions

View File

@ -83,11 +83,18 @@ counter_u64_zero_inline(counter_u64_t c)
static inline void
counter_u64_add(counter_u64_t c, int64_t inc)
{
int64_t *p;
#ifdef notyet
__asm __volatile("addq\t%1,%%gs:(%0)"
:
: "r" ((char *)c - (char *)&__pcpu[0]), "ri" (inc)
: "memory", "cc");
#endif
/* temporary */
critical_enter();
p = zpcpu_get(c);
*p += inc;
critical_exit();
}
#endif /* ! __MACHINE_COUNTER_H__ */

View File

@ -76,7 +76,8 @@
uint32_t pc_pcid_gen; \
uint32_t pc_smp_tlb_done; /* TLB op acknowledgement */ \
uint32_t pc_ibpb_set; \
char __pad[3288] /* pad to UMA_PCPU_ALLOC_SIZE */
char __pad[216] /* be divisor of PAGE_SIZE \
after cache alignment */
#define PC_DBREG_CMD_NONE 0
#define PC_DBREG_CMD_LOAD 1

View File

@ -80,7 +80,7 @@
caddr_t pc_pmap_eh_ptep; \
uint32_t pc_smp_tlb_done; /* TLB op acknowledgement */ \
uint32_t pc_ibpb_set; \
char __pad[3610]
char __pad[538]
#ifdef _KERNEL

View File

@ -185,6 +185,14 @@ struct pcpu {
PCPU_MD_FIELDS;
} __aligned(CACHE_LINE_SIZE);
#ifdef CTASSERT
/*
* To minimize memory waste in per-cpu UMA zones, size of struct pcpu
* should be denominator of PAGE_SIZE.
*/
CTASSERT((PAGE_SIZE / sizeof(struct pcpu)) * sizeof(struct pcpu) == PAGE_SIZE);
#endif
#ifdef _KERNEL
STAILQ_HEAD(cpuhead, pcpu);
@ -201,19 +209,6 @@ extern struct pcpu *cpuid_to_pcpu[];
#define UMA_PCPU_ALLOC_SIZE PAGE_SIZE
#ifdef CTASSERT
#if defined(__i386__) || defined(__amd64__)
/* Required for counters(9) to work on x86. */
CTASSERT(sizeof(struct pcpu) == UMA_PCPU_ALLOC_SIZE);
#else
/*
* To minimize memory waste in per-cpu UMA zones, size of struct pcpu
* should be denominator of PAGE_SIZE.
*/
CTASSERT((PAGE_SIZE / sizeof(struct pcpu)) * sizeof(struct pcpu) == PAGE_SIZE);
#endif /* UMA_PCPU_ALLOC_SIZE && x86 */
#endif /* CTASSERT */
/* Accessor to elements allocated via UMA_ZONE_PCPU zone. */
static inline void *
zpcpu_get(void *base)