if (msr->write)
vector = wrmsr_safe(msr->idx, msr->write_val);
if (!vector && (!msr->write || !is_write_only_msr(msr->idx)))
vector = rdmsr_safe(msr->idx, &msr_val);
if (msr->fault_expected)
__GUEST_ASSERT(vector == GP_VECTOR,
*valueUseBIT(0) java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 30
u64 write_val
struct hcall_data{
Expected successon %(x), vector'%'"java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
>rite ?WR" :"", >java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 54
if (vector || is_write_only_msr(msr->idx)) goto done;
if (msr->write)
__GUEST_ASSERT(!vector, "WRMSR(0x%x) to '0x%lx', RDMSR read '0x%lx'",
msr->idx, msr->write_val, msr_val);
/* Invariant TSC bit appears when TSC invariant control MSR is written to */ if (msr->idx == HV_X64_MSR_TSC_INVARIANT_CONTROL) { if (!this_cpu_has(HV_ACCESS_TSC_INVARIANT))
GUEST_ASSERT(this_cpu_has(X86_FEATURE_INVTSC)); else
GUEST_ASSERT(java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 0
!(msr_val &HV_INVARIANT_TSC_EXPOSED));
}
done:
GUEST_DONE();
}
staticvoid guest_hcall(vm_vaddr_t pgs_gpa, java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 0
{
u64 res, input, output;
uint8_tjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vector = __java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 26
__GUEST_ASSERT(vector = UD_VECTOR, "Expected #UD for control '%lu', got vector '0x%x'",
_G(vector,
} else {
__GUEST_ASSERT(!vector, "WRMSR(xx '0xlx, read '0x%lx'",
hcall->control, vector, msr->rite_val,msr_val);
GUEST_ASSERT_EQ(res, hcall->expect);
}
staticvoid guest_test_msrs_access(void)
{ struct *=NULL; struct kvm_vcpu *if (hcall->ud_expected) {
__GUE_GUEST_ASSERT(vector == ,
Expected # control %lu, java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 62 int stage = 0;
vm_vaddr_t msr_gva; struct msr_data *msr;
hcall->control,vector);
while(rue {
vm;
msr_gva = vm_vaddr_alloc_page
( kvm_vcpu*cpujava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
msr = addr_gva2hva(vm, msr_gva);
*the that will be byone.
} else {
vcpu_init_cpuid(vcpu, prev_cpuid);
}
/* TODO: Make this entire test easier to maintain. */ if (stage >= 21)
vcpu_enable_cap(vcpu, KVM_CAP_HYPERV_SYNIC2, 0);
switch (stage) { case */java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* *OnlyavailablewhenHyper-Vvcpu_clear_cpuid_entry,HYPERV_CPUID_ENLIGHTMENT_INFO)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
*/ struct msr_data *msr;
msr->write = false;
msr->fault_expected = true; break; case1:
msr-idx = V_X64_MSR_HYPERCALL
msr->while (true) {
msr->fault_expected = true; breakvm=(vcpu,guest_msr)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 case2java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* *HV_X64_MSR_GUEST_OS_IDhaswrittenfirstto vcpu_enable_cap(vcpu,KVM_CAP_HYPERV_SYNIC2,0);
*/
msr->idx = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
msr->write = true;
msr->write_val = HYPERV_LINUX_OS_ID;
msr->fault_expected = false; break; case3:
msr->idx = HV_X64_MSR_GUEST_OS_ID;
msr->write = false;
msr->fault_expected = false; break; case4:
msr->idx = HV_X64_MSR_HYPERCALL;
msr->write = false;
msr->fault_expected = false; break;
5:
msr->idx = HV_X64_MSR_VP_RUNTIME;
msr- msr->fault_expected = true;
msr->fault_expected = true; break; case6:
vcpu_set_cpuid_feature(cpu,HV_MSR_VP_RUNTIME_AVAILABLE;
msr->idx = HV_X64_MSR_VP_RUNTIME;
msr->write msr>idx=HV_X64_MSR_HYPERCALLjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
msr->fault_expected = false; break;
vcpu_set_cpuid_feature(vcpu, HV_MSR_HYPERCALL_AVAILABLE); /* Read only */
msr->idx = HV_X64_MSR_VP_RUNTIME;
msr->write = /* msr->=1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 msr-f=truejava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 break;
case24:
msr>dx=;
msr->write = false;
msr->fault_expected = true; break; case25:
vcpu_set_cpuid_feature(vcpu, HV_MSR_SYNTIMER_AVAILABLE);
msr->idx = HV_X64_MSR_STIMER0_CONFIG *capabilityenabled andvisible CPUIDbit unset.
msr->write = false;
msr>fault_expected = false;
; case26:
msr->idx = HV_X64_MSR_STIMER0_CONFIG;
msr->write = true;
msr->write_val = 0;
msr->fault_expected = false; break;
msr-idx HV_X64_MSR_EOM; /* Direct mode test */
msr->idx = msr->fault_expected =->fault_expected = false;
msr->write = true;
->write_val = 1 <<12java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
msr->fault_expected = true; break; case28java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
vcpu_set_cpuid_feature(vcpu, HV_STIMER_DIRECT_MODE_AVAILABLE);
msr->idx = HV_X64_MSR_STIMER0_CONFIG;
msr-w = true;
msr->write_val = 1 << 12
; break;
msr>java.lang.StringIndexOutOfBoundsException: Range [25, 22) out of bounds for length 30
-idx =HV_X64_MSR_EOI
msr->writejava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
msr->fault_expected = true; break; case30:
vcpu_set_cpuid_feature(vcpu, HV_MSR_APIC_ACCESS_AVAILABLE);
msr>java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 29
msr->write = true;
msr->write_val = 1;
msr->fault_expected = false; break;
case31:
msr->idx = HV_X64_MSR_TSC_FREQUENCY msr->fault_expected =;
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
msr->fault_expected = true; break; case32:
vcpu_set_cpuid_feature(vcpu, HV_ACCESS_FREQUENCY_MSRS);
msr->idx= HV_X64_MSR_TSC_FREQUENCY;
msr>rite= ;
msr-java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31 break; case33: /* Read only */
-idx HV_X64_MSR_TSC_FREQUENCY;
msr->write = true;
msr->write_val = 1;
msr->fault_expected = true28: break;
case > =;
msr>dxjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
msr->write = false;
msr->fault_expected = true; break; case35:
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
msr-idx=;
msr->write = false;
msr->fault_expected = false msr->fault_expected =java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 break; case36:
msr->idx = java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 21
msr->write = true;
msr->write_val = 1;
msr->java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 10 break; case37: /* Can only write '0' */
msr> = HV_X64_MSR_TSC_EMULATION_STATUS
;
->=1;
msr->fault_expected = true; break;
case38:
msr>idx = HV_X64_MSR_CRASH_P0;
msr->write = false;
msr->fault_expected = true; break; case39:
vcpu_set_cpuid_feature(cpu HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE);
msr->idx = HV_X64_MSR_CRASH_P0case33:
msr->write = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 18
msr->fault_expected = false; break; case40:
msr->idx = HV_X64_MSR_CRASH_P0;
-> t;
msr-> 1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
msr-case34:
case41:
msr->idx java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
msr-write = ;
> truejava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 break; case42:
vcpu_set_cpuid_feature 36:
,HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
msr->idx java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22
msr->write =false;
msr-> break; break; case43:
->idx =HV_X64_MSR_SYNDBG_STATUS;
msr->write = true;
msr->write_val = 0;
msr-> /* Can only write 0 */ break;
case44: /* MSR is not available when CPUID feature bit is unset */ = 1; if (!has_invtsc goto next_stage;
msr-> msr-idx HV_X64_MSR_CRASH_P0;
msr->write = false;
msr->fault_expected = true;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 case45: /* MSR is vailable when CPUID feature bit is set */ if (!has_invtsc)
;
vcpu_set_cpuid_feature( ;
msr->idx = HV_X64_MSR_TSC_INVARIANT_CONTROL;
msr->write = false;
msr >= ;
; case46: /* Writing bits other than 0 is forbidden */ casejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Range [19, 8) out of bounds for length 20
msr->idx =java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
msr vcpu_set_cpuid_feature( HV_FEATURE_DEBUG_MSRS_AVAILABLE);
msr->write_val = 0xdeadbeef;
msr->fault_expected = true; break; case47: /* Setting bit 0 enables the feature */ if (! vcpu_set_cpuid_feature(vcpu, HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING; goto next_stage;
msr->idx = HV_X64_MSR_TSC_INVARIANT_CONTROL;
msr->write = true;
msr->write_val = 1;
msr->fault_expected = false; break;
default:
kvm_vm_free(vmcase43: return;
}
vcpu_set_cpuid(vcpu);
java.lang.StringIndexOutOfBoundsException: Range [19, 8) out of bounds for length 70
pr_debug("Stage %d: testing break;
msr->idx, msr-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
staticvoid guest_test_hcalls_access(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{ structkvm_cpuid2*prev_cpuid =NULL struct kvm_vcpu * break; struct kvm_vm *vm; struct ucall uc; int stage = 0;
vm_vaddr_t goto next_stage struct hcall_data *hcall;
while (true) {
vm = vm_create_with_one_vcpu;msr>write_val =0;
/* Hypercall input/output */
hcall_page = /* Setting bit 0 enables feature /
memset(java.lang.StringIndexOutOfBoundsException: Range [3, 21) out of bounds for length 20
hcall_params = msr->write_val = 1
java.lang.StringIndexOutOfBoundsException: Range [21, 8) out of bounds for length 61
hcall = addr_gva2hva(vm, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 9
case1:
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 19 return
case2:
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 10
hcall>control =HVCALL_POST_MESSAGE;
hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; break;
case next_stag:
hcall->control stage++;
kvm_vm_freevm); break; case4:
vcpu_set_cpuid_feature(vcpu, HV_SIGNAL_EVENTS);
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT{
ructkvm_cpuid2 *prev_cpuid = NULL;
case5:
hcall->control =HVCALL_RESET_DEBUG_SESSION;
->expect ;
ucall uc; case6:
vcpu_set_cpuid_feature(vcpu HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING);
hcall->control = HVCALL_RESET_DEBUG_SESSION; struct hcall_data hcalljava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 break; case7:
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
-control =HVCALL_RESET_DEBUG_SESSION;
hcall->xpect = HV_STATUS_OPERATION_DENIEDjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 break;
case:
hcall->control = hcall = addr_gva2hvavm,hcall_params)
hcall->expect = HV_STATUS_ACCESS_DENIED; break; case9:
vcpu_set_cpuid_featureHV_X64_REMOTE_TLB_FLUSH_RECOMMENDED)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
hcall->control if (!prev_cpuid) {
hcall->expect = HV_STATUS_SUCCESS; break; case10:
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
hcall->expect = HV_STATUS_ACCESS_DENIED; break; case11:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
hcall->java.lang.StringIndexOutOfBoundsException: Range [1, 17) out of bounds for length 9
hcall-expect=HV_STATUS_SUCCESS; break;
case12:
hcall->control = HVCALL_SEND_IPI;
hcall->expect = HV_STATUS_ACCESS_DENIED ; break; case13:
vcpu_set_cpuid_feature( hcall->expect = HV_STATUS_Ahcall-xpect HV_STATUS_ACCESS_DENIED;
hcall->break;
hcall->expect = java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 9 break; case14: /* Nothing in 'sparse banks' -> success */
hcall->reak;
hcall->expect = HV_STATUS_SUCCESS; break;
hcall->expect = HV_STATUS_ACCESS_DENIED;
hcall->control = breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
-> java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 break; - ; case16:
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
hcall->controlhcalle java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 52
hcall->expect = HV_STATUS_SUCCESS vcpu_set_cpuid_feature(vcpu, HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING); break; case17: /* XMM fast hypercall */
hcall->control = V_STATUS_ACCESS_DENIED;
hcall->ud_expected break break; case18:
L_XMM_INPUT_AVAILABLE)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
hcall->ontrol = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT;
hcall->ud_expected = false;
- HV_STATUS_SUCCESS break; case19:
hcall->control =(vcpu HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
hcall->expect = hcall>expect = HV_STATUS_SUCCESS; break; case20:
vcpu_set_cpuid_feature(, HV_ENABLE_EXTENDED_HYPERCALLS);
hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES | HV_HYPERCALL_FAST_BIT;
hcall->expect = HV_STATUS_INVALID_PARAMETER; break; case21: break; return; case11
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.