Home
last modified time | relevance | path

Searched refs:vcpu (Results 1 – 25 of 91) sorted by relevance

1234

/illumos-gate/usr/src/lib/libvmmapi/common/
H A Dvmmapi.h59 struct vcpu;
158 struct vcpu *vm_vcpu_open(struct vmctx *ctx, int vcpuid);
159 void vm_vcpu_close(struct vcpu *vcpu);
160 int vcpu_id(struct vcpu *vcpu);
162 struct vmctx *vcpu_ctx(struct vcpu *vcpu);
172 int vm_gla2gpa(struct vcpu *vcpu, struct vm_guest_paging *paging,
174 int vm_gla2gpa_nofault(struct vcpu *vcpu,
185 int vm_set_desc(struct vcpu *vcpu, int reg,
187 int vm_get_desc(struct vcpu *vcpu, int reg,
189 int vm_get_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *seg_desc);
[all …]
H A Dvmmapi.c249 struct vcpu *
252 struct vcpu *vcpu; in vm_vcpu_open() local
254 vcpu = malloc(sizeof(*vcpu)); in vm_vcpu_open()
256 if (vcpu == NULL) in vm_vcpu_open()
257 return (vcpu); in vm_vcpu_open()
259 vcpu->ctx = ctx; in vm_vcpu_open()
260 vcpu->vcpuid = vcpuid; in vm_vcpu_open()
261 return (vcpu); in vm_vcpu_open()
265 vm_vcpu_close(struct vcpu *vcpu) in vm_vcpu_close() argument
267 free(vcpu); in vm_vcpu_close()
[all …]
/illumos-gate/usr/src/uts/intel/io/vmm/
H A Dvmm.c128 struct vcpu { struct
212 struct vcpu vcpu[VM_MAXCPU]; /* (i) guest vcpus */ member
276 #define VMRUN(vmi, vcpu, rip) ((*ops->vmrun)(vmi, vcpu, rip)) argument
279 #define VMGETREG(vmi, vcpu, num, rv) ((*ops->vmgetreg)(vmi, vcpu, num, rv)) argument
280 #define VMSETREG(vmi, vcpu, num, val) ((*ops->vmsetreg)(vmi, vcpu, num, val)) argument
281 #define VMGETDESC(vmi, vcpu, num, dsc) ((*ops->vmgetdesc)(vmi, vcpu, num, dsc)) argument
282 #define VMSETDESC(vmi, vcpu, num, dsc) ((*ops->vmsetdesc)(vmi, vcpu, num, dsc)) argument
283 #define VMGETCAP(vmi, vcpu, num, rv) ((*ops->vmgetcap)(vmi, vcpu, num, rv)) argument
284 #define VMSETCAP(vmi, vcpu, num, val) ((*ops->vmsetcap)(vmi, vcpu, num, val)) argument
285 #define VLAPIC_INIT(vmi, vcpu) ((*ops->vlapic_init)(vmi, vcpu)) argument
[all …]
/illumos-gate/usr/src/cmd/bhyve/amd64/
H A Dtask_switch.c113 GETREG(struct vcpu *vcpu, int reg) in GETREG() argument
118 error = vm_get_register(vcpu, reg, &val); in GETREG()
124 SETREG(struct vcpu *vcpu, int reg, uint64_t val) in SETREG() argument
128 error = vm_set_register(vcpu, reg, val); in SETREG()
164 sel_exception(struct vcpu *vcpu, int vector, uint16_t sel, int ext) in sel_exception() argument
178 vm_inject_fault(vcpu, vector, 1, sel); in sel_exception()
186 desc_table_limit_check(struct vcpu *vcpu, uint16_t sel) in desc_table_limit_check() argument
193 error = vm_get_desc(vcpu, reg, &base, &limit, &access); in desc_table_limit_check()
216 desc_table_rw(struct vcpu *vcpu, struct vm_guest_paging *paging, in desc_table_rw() argument
226 error = vm_get_desc(vcpu, reg, &base, &limit, &access); in desc_table_rw()
[all …]
H A Dvmexit.c100 vmentry_mmio_read(struct vcpu *vcpu, uint64_t gpa, uint8_t bytes, uint64_t data) in vmentry_mmio_read() argument
102 struct vm_entry *entry = &vmentry[vcpu_id(vcpu)]; in vmentry_mmio_read()
115 vmentry_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint8_t bytes) in vmentry_mmio_write() argument
117 struct vm_entry *entry = &vmentry[vcpu_id(vcpu)]; in vmentry_mmio_write()
130 vmentry_inout_read(struct vcpu *vcpu, uint16_t port, uint8_t bytes, in vmentry_inout_read() argument
133 struct vm_entry *entry = &vmentry[vcpu_id(vcpu)]; in vmentry_inout_read()
146 vmentry_inout_write(struct vcpu *vcpu, uint16_t port, uint8_t bytes) in vmentry_inout_write() argument
148 struct vm_entry *entry = &vmentry[vcpu_id(vcpu)]; in vmentry_inout_write()
163 vm_inject_fault(struct vcpu *vcpu, int vector, int errcode_valid, in vm_inject_fault() argument
170 error = vm_inject_exception(vcpu, vector, errcode_valid, errcode, in vm_inject_fault()
[all …]
H A Dbhyverun_machdep.c299 bhyve_init_vcpu(struct vcpu *vcpu) in bhyve_init_vcpu() argument
305 err = vm_get_capability(vcpu, VM_CAP_HALT_EXIT, &tmp); in bhyve_init_vcpu()
310 vm_set_capability(vcpu, VM_CAP_HALT_EXIT, 1); in bhyve_init_vcpu()
319 err = vm_set_capability(vcpu, VM_CAP_HALT_EXIT, tmp); in bhyve_init_vcpu()
330 err = vm_get_capability(vcpu, VM_CAP_PAUSE_EXIT, &tmp); in bhyve_init_vcpu()
335 vm_set_capability(vcpu, VM_CAP_PAUSE_EXIT, 1); in bhyve_init_vcpu()
339 err = vm_set_x2apic_state(vcpu, X2APIC_ENABLED); in bhyve_init_vcpu()
341 err = vm_set_x2apic_state(vcpu, X2APIC_DISABLED); in bhyve_init_vcpu()
349 vm_set_capability(vcpu, VM_CAP_ENABLE_INVPCID, 1); in bhyve_init_vcpu()
351 err = vm_set_capability(vcpu, VM_CAP_IPI_EXIT, 1); in bhyve_init_vcpu()
[all …]
/illumos-gate/usr/src/uts/intel/io/vmm/amd/
H A Dsvm.c105 static int svm_setreg(void *arg, int vcpu, int ident, uint64_t val);
106 static int svm_getreg(void *arg, int vcpu, int ident, uint64_t *val);
249 svm_get_intercept(struct svm_softc *sc, int vcpu, int idx, uint32_t bitmask) in svm_get_intercept() argument
255 ctrl = svm_get_vmcb_ctrl(sc, vcpu); in svm_get_intercept()
260 svm_set_intercept(struct svm_softc *sc, int vcpu, int idx, uint32_t bitmask, in svm_set_intercept() argument
268 ctrl = svm_get_vmcb_ctrl(sc, vcpu); in svm_set_intercept()
277 svm_set_dirty(sc, vcpu, VMCB_CACHE_I); in svm_set_intercept()
282 vmcb_init(struct svm_softc *sc, int vcpu, uint64_t iopm_base_pa, in vmcb_init() argument
290 ctrl = svm_get_vmcb_ctrl(sc, vcpu); in vmcb_init()
291 state = svm_get_vmcb_state(sc, vcpu); in vmcb_init()
[all …]
H A Dsvm_softc.h65 struct svm_vcpu vcpu[VM_MAXCPU]; member
82 svm_get_vcpu(struct svm_softc *sc, int vcpu) in svm_get_vcpu() argument
84 return (&(sc->vcpu[vcpu])); in svm_get_vcpu()
88 svm_get_vmcb(struct svm_softc *sc, int vcpu) in svm_get_vmcb() argument
90 return (&(sc->vcpu[vcpu].vmcb)); in svm_get_vmcb()
94 svm_get_vmcb_state(struct svm_softc *sc, int vcpu) in svm_get_vmcb_state() argument
96 return (&(sc->vcpu[vcpu].vmcb.state)); in svm_get_vmcb_state()
100 svm_get_vmcb_ctrl(struct svm_softc *sc, int vcpu) in svm_get_vmcb_ctrl() argument
102 return (&(sc->vcpu[vcpu].vmcb.ctrl)); in svm_get_vmcb_ctrl()
106 svm_get_guest_regctx(struct svm_softc *sc, int vcpu) in svm_get_guest_regctx() argument
[all …]
/illumos-gate/usr/src/test/bhyve-tests/tests/inst_emul/
H A Dsuspend_info.c43 struct vcpu *vcpu; member
52 struct vcpu *vcpu = vtc->vcpu; in vcpu0_thread() local
60 test_run_vcpu(vcpu, &ventry, &vexit); in vcpu0_thread()
78 vcpu0_setup(struct vcpu *vcpu) in vcpu0_setup() argument
82 err = test_setup_vcpu(vcpu, MEM_LOC_PAYLOAD, VCPU0_STACK); in vcpu0_setup()
86 err = vm_set_register(vcpu, VM_REG_GUEST_RDI, 0); in vcpu0_setup()
114 test_plain_suspend(struct vmctx *ctx, struct vcpu *vcpu, in test_plain_suspend() argument
120 .vcpu = vcpu, in test_plain_suspend()
127 vcpu0_setup(vcpu); in test_plain_suspend()
149 test_emitted_triplefault(struct vmctx *ctx, struct vcpu *vcpu) in test_emitted_triplefault() argument
[all …]
H A Dexit_consistent.c34 run_until_unhandled(struct vcpu *vcpu, struct vm_entry *ventry, in run_until_unhandled() argument
39 test_run_vcpu(vcpu, ventry, vexit); in run_until_unhandled()
57 repeat_consistent_exit(struct vcpu *vcpu, struct vm_entry *ventry, in repeat_consistent_exit() argument
61 if (vm_run(vcpu, ventry, vexit) != 0) { in repeat_consistent_exit()
75 struct vcpu *vcpu; in main() local
80 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
83 err = test_setup_vcpu(vcpu, MEM_LOC_PAYLOAD, MEM_LOC_STACK); in main()
95 run_until_unhandled(vcpu, &ventry, &vexit); in main()
100 if (vm_get_register(vcpu, VM_REG_GUEST_RCX, &rcx) != 0) { in main()
103 if (vm_get_register(vcpu, VM_REG_GUEST_RIP, &rip) != 0) { in main()
[all …]
H A Dvcpu_barrier.c44 struct vcpu *vcpu = arg; in vcpu0_thread() local
50 int err = vm_run(vcpu, &ventry, &vexit); in vcpu0_thread()
92 struct vcpu *vcpu; in main() local
98 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
103 err = vm_activate_cpu(vcpu); in main()
114 err = vm_set_run_state(vcpu, VRS_INIT, 0); in main()
120 if (pthread_create(&vcpu0_tid, NULL, vcpu0_thread, (void *)vcpu) != 0) { in main()
128 err = vm_vcpu_barrier(vcpu); in main()
H A Dinout.c43 struct vcpu *vcpu, enum vm_exit_kind kind, enum test_state *state, in advance_test_state() argument
81 int err = vm_set_register(vcpu, 0, vexit->rip + 2); in advance_test_state()
118 int err = vm_set_register(vcpu, 0, vexit->rip + 2); in advance_test_state()
143 struct vcpu *vcpu; in main() local
176 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
180 err = test_setup_vcpu(vcpu, MEM_LOC_PAYLOAD, MEM_LOC_STACK); in main()
192 test_run_vcpu(vcpu, &ventry, &vexit); in main()
194 const bool exit_ok = advance_test_state(&vexit, &ventry, vcpu, in main()
/illumos-gate/usr/src/cmd/bhyvectl/
H A Dbhyvectl.c171 dump_vm_run_exitcode(struct vm_exit *vmexit, int vcpu) in dump_vm_run_exitcode() argument
173 printf("vm exit[%d]\n", vcpu); in dump_vm_run_exitcode()
224 vm_get_vmcs_field(struct vcpu *vcpu, int field, uint64_t *ret_val) in vm_get_vmcs_field() argument
231 vm_set_vmcs_field(struct vcpu *vcpu, int field, uint64_t val) in vm_set_vmcs_field() argument
238 vm_get_vmcb_field(struct vcpu *vcpu, int off, int bytes, in vm_get_vmcb_field() argument
246 vm_set_vmcb_field(struct vcpu *vcpu, int off, int bytes, in vm_set_vmcb_field() argument
365 get_all_registers(struct vcpu *vcpu) in get_all_registers() argument
371 int vcpuid = vcpu_id(vcpu); in get_all_registers()
375 error = vm_get_register(vcpu, VM_REG_GUEST_EFER, &efer); in get_all_registers()
381 error = vm_get_register(vcpu, VM_REG_GUEST_CR0, &cr0); in get_all_registers()
[all …]
/illumos-gate/usr/src/uts/intel/io/vmm/intel/
H A Dvmx.c304 static int vmx_getdesc(void *arg, int vcpu, int reg, struct seg_desc *desc);
305 static int vmx_getreg(void *arg, int vcpu, int reg, uint64_t *retval);
947 vmx_invvpid(struct vmx *vmx, int vcpu, int running) in vmx_invvpid() argument
952 vmxstate = &vmx->state[vcpu]; in vmx_invvpid()
985 vmm_stat_incr(vmx->vm, vcpu, VCPU_INVVPID_DONE, 1); in vmx_invvpid()
993 vmm_stat_incr(vmx->vm, vcpu, VCPU_INVVPID_SAVED, 1); in vmx_invvpid()
1020 vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu) in vmx_set_pcpu_defaults() argument
1036 vmx_apply_tsc_adjust(vmx, vcpu); in vmx_set_pcpu_defaults()
1038 vmxstate = &vmx->state[vcpu]; in vmx_set_pcpu_defaults()
1044 vmm_stat_incr(vmx->vm, vcpu, VCPU_MIGRATIONS, 1); in vmx_set_pcpu_defaults()
[all …]
/illumos-gate/usr/src/cmd/bhyve/common/
H A Dbhyverun.c120 static void vm_loop(struct vmctx *ctx, struct vcpu *vcpu);
124 struct vcpu *vcpu; member
255 int vcpu, pcpu; in bhyve_pincpu_parse() local
260 if (sscanf(opt, "%d:%d", &vcpu, &pcpu) != 2) { in bhyve_pincpu_parse()
265 if (vcpu < 0) { in bhyve_pincpu_parse()
266 fprintf(stderr, "invalid vcpu '%d'\n", vcpu); in bhyve_pincpu_parse()
276 snprintf(key, sizeof(key), "vcpu.%d.cpuset", vcpu); in bhyve_pincpu_parse()
291 parse_cpuset(int vcpu, const char *list, cpuset_t *set) in parse_cpuset() argument
302 errx(4, "invalid cpuset for vcpu %d: '%s'", vcpu, list); in parse_cpuset()
324 vcpu, list); in parse_cpuset()
[all …]
H A Dmem.c153 typedef int (mem_cb_t)(struct vcpu *vcpu, uint64_t gpa, struct mem_range *mr,
157 mem_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) in mem_read() argument
162 error = (*mr->handler)(vcpu, MEM_F_READ, gpa, size, rval, mr->arg1, in mem_read()
168 mem_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) in mem_write() argument
173 error = (*mr->handler)(vcpu, MEM_F_WRITE, gpa, size, &wval, mr->arg1, in mem_write()
179 access_memory(struct vcpu *vcpu, uint64_t paddr, mem_cb_t *cb, void *arg) in access_memory() argument
184 vcpuid = vcpu_id(vcpu); in access_memory()
226 err = cb(vcpu, paddr, &entry->mr_param, arg); in access_memory()
237 emulate_mem_cb(struct vcpu *vcpu, uint64_t paddr, struct mem_range *mr, in emulate_mem_cb() argument
246 err = mem_read(vcpu, paddr, &mmio->data, mmio->bytes, mr); in emulate_mem_cb()
[all …]
H A Dbhyverun.h52 struct vcpu;
58 struct vcpu *fbsdrun_vcpu(int vcpuid);
64 typedef int (*vmexit_handler_t)(struct vmctx *, struct vcpu *,
67 extern int vmexit_task_switch(struct vmctx *, struct vcpu *, struct vm_exit *);
71 void bhyve_init_vcpu(struct vcpu *vcpu);
72 void bhyve_start_vcpu(struct vcpu *vcpu, bool bsp, bool suspend);
73 int bhyve_init_platform(struct vmctx *ctx, struct vcpu *bsp);
74 int bhyve_init_platform_late(struct vmctx *ctx, struct vcpu *bsp);
H A Dgdb.h31 void gdb_cpu_add(struct vcpu *vcpu);
32 void gdb_cpu_breakpoint(struct vcpu *vcpu, struct vm_exit *vmexit);
33 void gdb_cpu_mtrap(struct vcpu *vcpu);
34 void gdb_cpu_suspend(struct vcpu *vcpu);
H A Dmem.h34 struct vcpu;
36 typedef int (*mem_func_t)(struct vcpu *vcpu, int dir, uint64_t addr,
55 int emulate_mem(struct vcpu *vcpu, struct vm_mmio *mmio);
57 int read_mem(struct vcpu *vpu, uint64_t gpa, uint64_t *rval, int size);
61 int write_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size);
/illumos-gate/usr/src/test/bhyve-tests/tests/vmm/
H A Dmaxcpu.c54 struct vcpu *vcpu; in main() local
57 if ((vcpu = vm_vcpu_open(ctx, i)) == NULL) { in main()
62 if (vm_activate_cpu(vcpu) != 0) { in main()
67 if (vm_get_register(vcpu, VM_REG_GUEST_RAX, &val) != 0) { in main()
71 vm_vcpu_close(vcpu); in main()
84 struct vcpu *vcpu = vm_vcpu_open(ctx, vcpuid); in main() local
85 if (vcpu == NULL) { in main()
90 if (vm_activate_cpu(vcpu) == 0) { in main()
95 vm_vcpu_close(vcpu); in main()
H A Dimport_vlapic.c41 test_ccr_clamp(int vmfd, struct vcpu *vcpu) in test_ccr_clamp() argument
91 int error = vm_readwrite_kernemu_device(vcpu, APIC_ADDR_TIMER_CCR, in test_ccr_clamp()
103 test_timer_icr_constraints(int vmfd, struct vcpu *vcpu) in test_timer_icr_constraints() argument
112 int error = vm_readwrite_kernemu_device(vcpu, APIC_ADDR_TIMER_CCR, in test_timer_icr_constraints()
140 if (vcpu_reset(vcpu) != 0) { in test_timer_icr_constraints()
173 struct vcpu *vcpu; in main() local
180 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
184 if (vm_activate_cpu(vcpu) != 0) { in main()
190 test_ccr_clamp(vmfd, vcpu); in main()
191 test_timer_icr_constraints(vmfd, vcpu); in main()
H A Ddefault_capabs.c36 check_caps(struct vcpu *vcpu) in check_caps() argument
50 if (vm_get_capability(vcpu, checks[i].cap, &val) != 0) { in check_caps()
66 struct vcpu *vcpu; in main() local
73 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
78 check_caps(vcpu); in main()
84 check_caps(vcpu); in main()
86 vm_vcpu_close(vcpu); in main()
/illumos-gate/usr/src/test/bhyve-tests/tests/kdev/
H A Dtsc_freq_ctrl.c80 const int vmfd, struct vcpu *vcpu, struct vdi_time_info_v1 *src) in do_freq_test() argument
145 test_run_vcpu(vcpu, &ventry, &vexit); in do_freq_test()
194 struct vcpu *vcpu; in main() local
199 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
203 err = test_setup_vcpu(vcpu, MEM_LOC_PAYLOAD, MEM_LOC_STACK); in main()
237 do_freq_test(guest_freq, per_sec, seconds, vmfd, vcpu, &time_info); in main()
240 vm_vcpu_close(vcpu); in main()
243 if ((vcpu = vm_vcpu_open(ctx, 0)) == NULL) { in main()
246 err = test_setup_vcpu(vcpu, MEM_LOC_PAYLOAD, MEM_LOC_STACK); in main()
256 do_freq_test(guest_freq, per_sec, seconds, vmfd, vcpu, &time_info); in main()
[all …]
/illumos-gate/usr/src/uts/intel/io/vmm/sys/
H A Dvmm_kernel.h82 typedef int (*vmi_run_func_t)(void *vmi, int vcpu, uint64_t rip);
84 typedef int (*vmi_get_register_t)(void *vmi, int vcpu, int num,
86 typedef int (*vmi_set_register_t)(void *vmi, int vcpu, int num,
88 typedef int (*vmi_get_desc_t)(void *vmi, int vcpu, int num,
90 typedef int (*vmi_set_desc_t)(void *vmi, int vcpu, int num,
92 typedef int (*vmi_get_cap_t)(void *vmi, int vcpu, int num, int *retval);
93 typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val);
94 typedef struct vlapic *(*vmi_vlapic_init)(void *vmi, int vcpu);
96 typedef void (*vmi_savectx)(void *vmi, int vcpu);
97 typedef void (*vmi_restorectx)(void *vmi, int vcpu);
[all …]
/illumos-gate/usr/src/cmd/psrinfo/
H A Dpsrinfo.c91 struct vcpu { struct
246 struct vcpu *vcpu; in print_vp() local
256 vcpu = chip->p_vcpus->l_ptr; in print_vp()
283 if (strlen(vcpu->v_impl)) { in print_vp()
284 (void) printf(" %s\n", vcpu->v_impl); in print_vp()
286 if (((len = strlen(vcpu->v_brand)) != 0) && in print_vp()
287 (strncmp(vcpu->v_brand, vcpu->v_impl, len) != 0)) in print_vp()
288 (void) printf("\t%s", vcpu->v_brand); in print_vp()
300 if (strlen(vcpu->v_impl)) { in print_vp()
301 (void) printf(" %s\n", vcpu->v_impl); in print_vp()
[all …]

1234