Home
last modified time | relevance | path

Searched refs:vm (Results 1 – 21 of 21) sorted by relevance

/kvm-unit-tests/lib/s390x/
H A Dsie.c21 void sie_expect_validity(struct vm *vm) in sie_expect_validity() argument
23 vm->validity_expected = true; in sie_expect_validity()
26 uint16_t sie_get_validity(struct vm *vm) in sie_get_validity() argument
32 if (vm->sblk->icptcode != ICPT_VALIDITY) in sie_get_validity()
35 return vm->sblk->ipb >> 16; in sie_get_validity()
38 void sie_check_validity(struct vm *vm, uint16_t vir_exp) in sie_check_validity() argument
40 uint16_t vir = sie_get_validity(vm); in sie_check_validity()
45 void sie_handle_validity(struct vm *vm) in sie_handle_validity() argument
47 if (vm->sblk->icptcode != ICPT_VALIDITY) in sie_handle_validity()
50 if (!vm->validity_expected) in sie_handle_validity()
[all …]
H A Dsie.h34 struct vm { struct
50 void sie(struct vm *vm); argument
51 void sie_expect_validity(struct vm *vm);
52 uint16_t sie_get_validity(struct vm *vm);
53 void sie_check_validity(struct vm *vm, uint16_t vir_exp);
54 void sie_handle_validity(struct vm *vm);
56 static inline bool sie_is_pv(struct vm *vm) in sie_is_pv() argument
58 return vm->sblk->sdf == 2; in sie_is_pv()
61 void sie_guest_sca_create(struct vm *vm);
62 void sie_guest_create(struct vm *vm, uint64_t guest_mem, uint64_t guest_mem_len);
[all …]
H A Dsnippet-exit.h15 static inline bool snippet_is_force_exit(struct vm *vm) in snippet_is_force_exit() argument
17 return sie_is_diag_icpt(vm, 0x44); in snippet_is_force_exit()
20 static inline bool snippet_is_force_exit_value(struct vm *vm) in snippet_is_force_exit_value() argument
22 return sie_is_diag_icpt(vm, 0x500); in snippet_is_force_exit_value()
25 static inline uint64_t snippet_get_force_exit_value(struct vm *vm) in snippet_get_force_exit_value() argument
27 assert(snippet_is_force_exit_value(vm)); in snippet_get_force_exit_value()
29 return vm->save_area.guest.grs[2]; in snippet_get_force_exit_value()
32 static inline void snippet_check_force_exit_value(struct vm *vm, uint64_t value_exp) in snippet_check_force_exit_value() argument
36 if (snippet_is_force_exit_value(vm)) { in snippet_check_force_exit_value()
37 value = snippet_get_force_exit_value(vm); in snippet_check_force_exit_value()
H A Duv.c133 void uv_create_guest(struct vm *vm) in uv_create_guest() argument
142 .state_origin = (uint64_t)vm->sblk, in uv_create_guest()
148 uvcb_cgc.guest_stor_origin = vm->sblk->mso; in uv_create_guest()
149 uvcb_cgc.guest_stor_len = vm->sblk->msl - vm->sblk->mso + SZ_1M; in uv_create_guest()
155 vm->uv.conf_base_stor = memalign_pages_flags(PAGE_SIZE * 4, uvcb_qui.conf_base_phys_stor_len, 0); in uv_create_guest()
160 vm->uv.conf_var_stor = memalign_pages_flags(PAGE_SIZE, vsize,0); in uv_create_guest()
161 uvcb_cgc.conf_base_stor_origin = (uint64_t)vm->uv.conf_base_stor; in uv_create_guest()
162 uvcb_cgc.conf_var_stor_origin = (uint64_t)vm->uv.conf_var_stor; in uv_create_guest()
165 vm->uv.cpu_stor = memalign_pages_flags(PAGE_SIZE, uvcb_qui.cpu_stor_len, 0); in uv_create_guest()
166 uvcb_csc.stor_origin = (uint64_t)vm->uv.cpu_stor; in uv_create_guest()
[all …]
H A Duv.h16 void uv_create_guest(struct vm *vm);
17 void uv_destroy_guest(struct vm *vm);
18 int uv_unpack(struct vm *vm, uint64_t addr, uint64_t len, uint64_t tweak);
19 void uv_verify_load(struct vm *vm);
40 static inline bool uv_validity_check(struct vm *vm) in uv_validity_check() argument
42 uint16_t vir = sie_get_validity(vm); in uv_validity_check()
44 return vm->sblk->icptcode == ICPT_VALIDITY && (vir & 0xff00) == 0x2000; in uv_validity_check()
H A Dsnippet.h68 static inline void snippet_init(struct vm *vm, const char *gbin, in snippet_init() argument
71 uint64_t mso = vm->sblk->mso; in snippet_init()
77 vm->sblk->gpsw = snippet_psw; in snippet_init()
83 vm->sblk->ictl = ICTL_OPEREXC | ICTL_PINT; in snippet_init()
98 static inline void snippet_pv_init(struct vm *vm, const char *gbin, in snippet_pv_init() argument
103 uint64_t mso = vm->sblk->mso; in snippet_pv_init()
106 snippet_init(vm, gbin, gbin_len, off); in snippet_pv_init()
108 uv_create_guest(vm); in snippet_pv_init()
109 uv_set_se_hdr(vm->uv.vm_handle, (void *)hdr, hdr_len); in snippet_pv_init()
112 uv_unpack(vm, off, gbin_len, tweak[0]); in snippet_pv_init()
[all …]
H A Dsie-icpt.c24 bool sie_is_diag_icpt(struct vm *vm, unsigned int diag) in sie_is_diag_icpt() argument
26 struct diag_itext instr = sblk_ip_as_diag(vm->sblk); in sie_is_diag_icpt()
45 if (sie_is_pv(vm)) { in sie_is_diag_icpt()
53 if (vm->sblk->icptcode != icptcode) in sie_is_diag_icpt()
57 code = instr.r_base ? vm->save_area.guest.grs[instr.r_base] : 0; in sie_is_diag_icpt()
H A Dsie-icpt.h37 bool sie_is_diag_icpt(struct vm *vm, unsigned int diag);
H A Dhardware.c50 if (!memcmp(&stsi_322->vm[0].cpi, kvm_ebcdic, sizeof(kvm_ebcdic))) in do_detect_host()
H A Dstsi.h27 } vm[8]; member
/kvm-unit-tests/s390x/
H A Dpv-diags.c17 static struct vm vm; variable
30 snippet_pv_init(&vm, SNIPPET_NAME_START(asm, pv_diag_500), in test_diag_500()
34 sie(&vm); in test_diag_500()
35 report(sie_is_diag_icpt(&vm, 0x500), "intercept values"); in test_diag_500()
36 report(vm.save_area.guest.grs[1] == 1 && in test_diag_500()
37 vm.save_area.guest.grs[2] == 2 && in test_diag_500()
38 vm.save_area.guest.grs[3] == 3 && in test_diag_500()
39 vm.save_area.guest.grs[4] == 4, in test_diag_500()
45 vm.sblk->iictl = IICTL_CODE_OPERAND; in test_diag_500()
46 sie(&vm); in test_diag_500()
[all …]
H A Dpv-icptcode.c23 static struct vm vm, vm2; variable
45 snippet_pv_init(&vm, SNIPPET_NAME_START(asm, pv_icpt_vir_timing), in test_validity_timing()
49 sie(&vm); in test_validity_timing()
50 report(sie_is_diag_icpt(&vm, 0x44), "spt done"); in test_validity_timing()
52 tmp = vm.sblk->cputm; in test_validity_timing()
56 vm.sblk->cputm += S390_CLOCK_SHIFT_US * 1000; in test_validity_timing()
57 sie_expect_validity(&vm); in test_validity_timing()
58 sie(&vm); in test_validity_timing()
59 report(uv_validity_check(&vm), "validity entry cput > exit cput"); in test_validity_timing()
60 vm.sblk->cputm = tmp; in test_validity_timing()
[all …]
H A Dpv-ipl.c18 static struct vm vm; variable
32 snippet_pv_init(&vm, SNIPPET_NAME_START(asm, pv_diag_308), in test_diag_308()
37 sie(&vm); in test_diag_308()
38 assert(sie_is_diag_icpt(&vm, 0x500)); in test_diag_308()
45 vm.save_area.guest.grs[2] = subcode; in test_diag_308()
48 sie(&vm); in test_diag_308()
49 assert(sie_is_diag_icpt(&vm, 0x308)); in test_diag_308()
50 assert(vm.save_area.guest.grs[2] == subcode); in test_diag_308()
62 sie_expect_validity(&vm); in test_diag_308()
63 sie(&vm); in test_diag_308()
[all …]
H A Dmvpg-sie.c24 static struct vm vm; variable
34 uint64_t **pei_dst = (uint64_t **)((uintptr_t) vm.sblk + 0xc0); in test_mvpg_pei()
35 uint64_t **pei_src = (uint64_t **)((uintptr_t) vm.sblk + 0xc8); in test_mvpg_pei()
42 sie(&vm); in test_mvpg_pei()
43 report(vm.sblk->icptcode == ICPT_PARTEXEC, "Partial execution"); in test_mvpg_pei()
53 sie(&vm); in test_mvpg_pei()
55 assert(vm.sblk->icptcode == ICPT_INST && in test_mvpg_pei()
56 vm.sblk->ipa == 0x8300 && vm.sblk->ipb == 0x440000); in test_mvpg_pei()
61 memset((uint64_t *)((uintptr_t) vm.sblk + 0xc0), 0, 16); in test_mvpg_pei()
64 sie(&vm); in test_mvpg_pei()
[all …]
H A Dsie.c25 static struct vm vm; variable
29 vm.sblk->gpsw.addr = PAGE_SIZE * 2; in test_diag()
30 vm.sblk->gpsw.mask = PSW_MASK_64; in test_diag()
34 sie(&vm); in test_diag()
35 report(vm.sblk->icptcode == ICPT_INST && in test_diag()
36 vm.sblk->ipa == instr >> 16 && vm.sblk->ipb == instr << 16, in test_diag()
76 vm.sblk->gpsw.addr = PAGE_SIZE * 2; in test_epoch_ext()
77 vm.sblk->gpsw.mask = PSW_MASK_64; in test_epoch_ext()
79 vm.sblk->ecd |= ECD_MEF; in test_epoch_ext()
80 vm.sblk->epdx = 0x47; /* Setting the epoch extension here ... */ in test_epoch_ext()
[all …]
H A Dspec_ex-sie.c19 static struct vm vm; variable
29 snippet_setup_guest(&vm, false); in setup_guest()
30 snippet_init(&vm, SNIPPET_NAME_START(c, spec_ex), in setup_guest()
36 vm.sblk->gpsw = snippet_psw; in reset_guest()
37 vm.sblk->icptcode = 0; in reset_guest()
49 sie(&vm); in test_spec_ex_sie()
51 report(vm.sblk->icptcode == ICPT_PROGI in test_spec_ex_sie()
52 && vm.sblk->iprcc == PGM_INT_CODE_SPECIFICATION in test_spec_ex_sie()
53 && vm.sblk->gpsw.addr != 0xdeadbeee, in test_spec_ex_sie()
58 vm.sblk->ecb |= ECB_SPECI; in test_spec_ex_sie()
[all …]
H A Dsie-dat.c23 static struct vm vm; variable
33 sie(&vm); in test_sie_dat()
34 assert(snippet_is_force_exit_value(&vm)); in test_sie_dat()
35 test_page_gpa = snippet_get_force_exit_value(&vm); in test_sie_dat()
41 sie(&vm); in test_sie_dat()
42 assert(snippet_is_force_exit(&vm)); in test_sie_dat()
58 sie(&vm); in test_sie_dat()
74 snippet_setup_guest(&vm, false); in setup_guest()
82 install_page(guest_root, virt_to_pte_phys(root, vm.guest_mem + i), (void *)i); in setup_guest()
85 vm.sblk->cpuflags |= CPUSTAT_SM; in setup_guest()
[all …]
H A Dstsi.c111 if (memcmp(&data->vm[0].cpi, cpi_kvm, sizeof(cpi_kvm))) { in test_3_2_2()
116 report(!memcmp(data->vm[0].uuid, uuid, sizeof(uuid)), "uuid"); in test_3_2_2()
117 report(data->vm[0].conf_cpus == smp_query_num_cpus(), "cpu count configured"); in test_3_2_2()
118 report(data->vm[0].total_cpus == in test_3_2_2()
119 data->vm[0].reserved_cpus + data->vm[0].conf_cpus, in test_3_2_2()
121 report(data->vm[0].standby_cpus == 0, "cpu count standby"); in test_3_2_2()
122 report(!memcmp(data->vm[0].name, vm_name, sizeof(data->vm[0].name)), in test_3_2_2()
125 if (data->vm[0].ext_name_encoding != 2) { in test_3_2_2()
H A Dstfle-sie.c17 static struct vm vm; variable
29 snippet_setup_guest(&vm, false); in setup_guest()
30 snippet_init(&vm, SNIPPET_NAME_START(c, stfle), in setup_guest()
45 sie(&vm); in run_guest()
46 assert(snippet_is_force_exit_value(&vm)); in run_guest()
47 guest_stfle_addr = snippet_get_force_exit_value(&vm); in run_guest()
48 res.mem = &vm.guest_mem[guest_stfle_addr]; in run_guest()
62 vm.sblk->fac = (uint32_t)(uint64_t)fac; in test_stfle_format_0()
/kvm-unit-tests/x86/
H A DMakefile.common16 cflatobjs += lib/x86/vm.o
/kvm-unit-tests/scripts/
H A Darch-run.bash372 for kvmtoolcmd in ${KVMTOOL:-lkvm vm lkvm-static}; do