aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2020-07-14 20:37:50 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2020-07-14 20:37:50 +0000
commitdc43978aa57835b1d9cab54dafdf28b02a9440ea (patch)
treec8a506d800ef1471e82ea6aec05c61280c3163c1 /sys/amd64/include
parent504ee6a001c499c5cc1695b3f75f2548a6835c41 (diff)
Notes
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/pcpu.h9
-rw-r--r--sys/amd64/include/smp.h26
2 files changed, 10 insertions, 25 deletions
diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h
index b7b546ed2b6de..22c6ed40aa20e 100644
--- a/sys/amd64/include/pcpu.h
+++ b/sys/amd64/include/pcpu.h
@@ -85,7 +85,7 @@ _Static_assert(sizeof(struct monitorbuf) == 128, "2x cache line");
u_int pc_vcpu_id; /* Xen vCPU ID */ \
uint32_t pc_pcid_next; \
uint32_t pc_pcid_gen; \
- uint32_t pc_smp_tlb_done; /* TLB op acknowledgement */ \
+ uint32_t pc_unused; \
uint32_t pc_ibpb_set; \
void *pc_mds_buf; \
void *pc_mds_buf64; \
@@ -94,7 +94,12 @@ _Static_assert(sizeof(struct monitorbuf) == 128, "2x cache line");
u_int pc_ipi_bitmap; \
struct amd64tss pc_common_tss; \
struct user_segment_descriptor pc_gdt[NGDT]; \
- char __pad[2956] /* pad to UMA_PCPU_ALLOC_SIZE */
+ void *pc_smp_tlb_pmap; \
+ uint64_t pc_smp_tlb_addr1; \
+ uint64_t pc_smp_tlb_addr2; \
+ uint32_t pc_smp_tlb_gen; \
+ u_int pc_smp_tlb_op; \
+ char __pad[2924] /* pad to UMA_PCPU_ALLOC_SIZE */
#define PC_DBREG_CMD_NONE 0
#define PC_DBREG_CMD_LOAD 1
diff --git a/sys/amd64/include/smp.h b/sys/amd64/include/smp.h
index 2ecfe62cf9fbf..d5b5fa9c5b815 100644
--- a/sys/amd64/include/smp.h
+++ b/sys/amd64/include/smp.h
@@ -29,34 +29,14 @@ extern u_int32_t mptramp_pagetables;
inthand_t
IDTVEC(justreturn), /* interrupt CPU with minimum overhead */
IDTVEC(justreturn1_pti),
- IDTVEC(invltlb_pti),
- IDTVEC(invltlb_pcid_pti),
- IDTVEC(invltlb_pcid), /* TLB shootdowns - global, pcid */
- IDTVEC(invltlb_invpcid_pti_pti),
- IDTVEC(invltlb_invpcid_nopti),
- IDTVEC(invlpg_pti),
- IDTVEC(invlpg_invpcid_pti),
- IDTVEC(invlpg_invpcid),
- IDTVEC(invlpg_pcid_pti),
- IDTVEC(invlpg_pcid),
- IDTVEC(invlrng_pti),
- IDTVEC(invlrng_invpcid_pti),
- IDTVEC(invlrng_invpcid),
- IDTVEC(invlrng_pcid_pti),
- IDTVEC(invlrng_pcid),
- IDTVEC(invlcache_pti),
+ IDTVEC(invlop_pti),
+ IDTVEC(invlop),
IDTVEC(ipi_intr_bitmap_handler_pti),
IDTVEC(cpustop_pti),
IDTVEC(cpususpend_pti),
IDTVEC(rendezvous_pti);
-void invltlb_pcid_handler(void);
-void invltlb_invpcid_handler(void);
-void invltlb_invpcid_pti_handler(void);
-void invlpg_invpcid_handler(void);
-void invlpg_pcid_handler(void);
-void invlrng_invpcid_handler(void);
-void invlrng_pcid_handler(void);
+void invlop_handler(void);
int native_start_all_aps(void);
void mp_bootaddress(vm_paddr_t *, unsigned int *);