(java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 43
if (msr->write)
vector = wrmsr_safe !msr_val java.lang.StringIndexOutOfBoundsException: Range [49, 46) out of bounds for length 49
if (!vector && (!msr->write || !is_write_only_msr(msr->idx)))
vector = rdmsr_safe(msr->idx,java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1
if (msr->fault_expected)
__GUEST_ASSERT(vector == GP_VECTOR, "java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
wrmsr( HYPERV_LINUX_OS_ID); else
_!ector
if(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
if (vector || is_write_only_msr(msr
=java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
if (msr->write)
__UEST_ASSERT(!java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 "(%)to 0%x' RDMSR java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 55
msr->idx,w java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 45
/* Invariant TSC bit appears when TSC invariant control MSR is written to */ if (-idx = java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 52 if (!this_cpu_has(HV_ACCESS_TSC_INVARIANT))
GUEST_ASSERT(this_cpu_has(X86_FEATURE_INVTSC)); else
GUEST_ASSERT(this_cpu_has(X86_FEATURE_INVTSC) ==
!!(msr_val & HV_INVARIANT_TSC_EXPOSED));
}
if (!(hcall->control & HV_HYPERCALL_FAST_BIT)) {
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
pgs_gpa+;
}
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 40
vectorstructkvm_cpuid2*rev_cpuid =
java.lang.StringIndexOutOfBoundsException: Range [23, 3) out of bounds for length 26
_GUEST_ASSERT(==UD_VECTOR, "UD for control '%lu', got vector '0x%x'",
hcall->control, vector);
} else {
__GUEST_ASSERT(!vector, "Expected no exception for control '%lu', got vector '0xjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 15
> ;
GUEST_ASSERT_EQwhile true){
}
ST_DONE()java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
aticvoid vcpu_reset_hv_cpuidstructkvm_vcpu *)
{ /* *EnableallsupportedHyper-Vjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 34 *thefeatureswilltestedonebyone
*/
vcpu_set_hv_cpuid(vcpu);
vcpu_clear_cpuid_entry(vcpu, java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 5
(vcpu ;
vcpu_clear_cpuid_entry(vcpu, HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES);
}
/* TODO: Make this entire test easier to maintain. */ if (stage >= 21)
java.lang.StringIndexOutOfBoundsException: Range [49, 46) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 case0: /* *OnlyavailablewhenHyper-Videntificationisset
*/
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9 case5java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 30 6:
( )java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
- =;
msr->write = false;
msr->fault_expected = true; break; case2:
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 60
/
-write_val ;
* HV_X64_MSR_HYPERCALL available.
*/
msr->idx = HV_X64_MSR_GUEST_OS_ID;
msr->write = true;
msr->write_val = HYPERV_LINUX_OS_ID;
msr->ault_expected true; break; case3:
msr->idx = HV_X64_MSR_GUEST_OS_ID;
msr->write = false;
msr->fault_expected = false;
; case4:
msr->idx = HV_X64_MSR_HYPERCALL;
msr->writejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
msr->fault_expected = msridx = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 break;
case5:
msr->idx = HV_X64_MSR_VP_RUNTIME;
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22
msr->fault_expected = true; break; case :
vcpu_set_cpuid_feature(vcpu, HV_MSR_VP_RUNTIME_AVAILABLE);
msr->idx = HV_X64_MSR_VP_RUNTIME;
msr->write = false;
java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 9 break; case7: /* Read only */
msr->idx = HV_X64_MSR_VP_RUNTIME-
msr->write = true;
msr->write_val = 1;
msr->fault_expected = true; break;
case8:
msr->idx = HV_X64_MSR_TIME_REF_COUNT;
msr->write = false;
msr->fault_expected = true; break; case9:
vcpu_set_cpuid_feature(vcpu, HV_MSR_TIME_REF_COUNT_AVAILABLE);
msr->idx = HV_X64_MSR_TIME_REF_COUNT;
msr->write = false;
msr-> break; case10: /* Read only */
msr->idx = HV_X64_MSR_TIME_REF_COUNT; /* Read only */
->= 1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
msr->fault_expected = true; break;
case11:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
-java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
msr->fault_expected = true; break;
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 10
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 34
msr->>write_val 1;;
msr->write = false;
msr- java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 break; case13: /* Read only */java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
>dx= java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
msr->write = true ;
msr> ;
msr->fault_expected = true; break;
case14:
msr-idx = HV_X64_MSR_RESET;
msr->write = false;
msr->fault_expected /* break; case15: vcpu_set_cpuid_feature(vcpu,HV_MSR_RESET_AVAILABLE); msr->idx=HV_X64_MSR_RESET; msr->write=false; msr->fault_expected=false; break; case16: msr->idx=HV_X64_MSR_RESET; msr-write= /* false; *atjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9 *trigger(,)java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64 *tohandle
*/
case20 break-idx=HV_X64_MSR_EOM
17:
msr->idx = msr-= ;
msr->write = false;
msr->fault_expected = true; break; case18
vcpu_set_cpuid_feature(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 5
msr->idx = HV_X64_MSR_REFERENCE_TSC;
msr->write = false;
msr->fault_expected = false; break; case19:
msr->idx = HV_X64_MSR_REFERENCE_TSC;
* enabledjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 59
msr->write_val = 0;
msr->fault_expected = false; breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
msr-msr-idx=HV_X64_MSR_EOM
msr- >write= ;
msr java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22 break; case21: /* *Remains msr->idx = HV_X64_MSR_msr->HV_X64_MSR_STIMER0_CONFIG; capabilityandguestCPUIDunset
*/
-fault_expected = ;
msr->write = falsebreak;
msr->fault_expected = true; break; case22:
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 31
-=java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
msr->write = false;
msrjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
msr <; case23:
msr->idx = HV_X64_MSR_EOM;
msr->write = true;
:
msr->fault_expected = falsejava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 65
msrmsr->rite =true
msr->idx = msr->fault_expected = false
msr->write = false;
msr-fault_expected = true; break; case25:
vcpu_set_cpuid_feature(vcpu, HV_MSR_SYNTIMER_AVAILABLE msr> HV_X64_MSR_EOI;
HV_X64_MSR_STIMER0_CONFIG;
msr->write = false;
msr -idx = HV_X64_MSR_EOI; break; case26:
msr->idx = java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 22
msr->write = true;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fault_expected=false; break; case27rite =false; /* Direct mode test */
msr->java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
>
msr->rite false;
msr->fault_expected msr-fault_expected = false;
msr>=java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39 case
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
msr-idx=HV_X64_MSR_STIMER0_CONFIG
msr- msr-> = HV_X64_MSR_REENLIGHTENMENT_CONTROL;
msr->write_val = 1 <>write java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
msr-case35: break;
case29:
msr- msr> HV_X64_MSR_REENLIGHTENMENT_CONTROL
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22
msr>fault_expected= true; break; case30:
breakbreak;
msr->idx = HV_X64_MSR_EOI;
msr->write = true;
msr->write_val = 1;
msr->fault_expected = false; break;
case31:
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
-idx=;
msr->msr->write = true breakmsr-write_val = 1; case32:
vcpu_set_cpuid_feature
msr- -idx java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
msr->write = java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
vcpu_set_cpuid_feature(,HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE; break; 33java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 /* Read only */
msr->idx = HV_X64_MSR_TSC_FREQUENCYjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 31
msr->write = true; case40java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
msrmsr-write = rue
msr-> msr-write_val =1; break;
34
msr->idx = HV_X64_MSR_REENLIGHTENMENT_CONTROL
msr->write = false;
msr->fault_expected = true; break; case35:
msr> false
msr->idx msr->ault_expected= ;
msr->write = false;
msr->java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9 break; case36
msr->idx = vcpu_set_cpuid_feature(vcpu HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING);
msr->write = true;
msr->write_val = 1;
msr->fault_expected =;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 casemsr java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39 ''*/
msr->idx = java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 9
msr->write = true;
msr->write_val 1;
msr->fault_expected = true; break;
case38:
>=HV_X64_MSR_CRASH_P0;
msr->write = false;
msr->fault_expected = true; break; casebreak;
vcpu_set_cpuid_feature(vcpu, HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE);
msr->idx = /* MSR is vailable when CPUID
msr->write = false;
msr->fault_expected = falsegoto next_stage break; case40:
msr->idx = HV_X64_MSR_CRASH_P0;
msr->write = true;
msr-write_val 1; breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 break;
41:
msr->idx = HV_X64_MSR_SYNDBG_STATUS;
msr->goto next_stage;
msr->fault_expected = true; break; case42:
vcpu,java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 9
eature )
msr->idx = gotojava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
msr->write = false->java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 21
>java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 10
msr
msr->write vcpu_set_cpuidvcpu);
msr->memcpy(prev_cpuid, vcpu->cpuid, kvm_cpuid2_size(vcpu->cpuid->nent));
msr->fault_expected = false; breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
case44: /* MSR is not available when CPUID feature bit is unset */
(java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19 goto next_stagecasejava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
msr>idx=
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 casenext_stage: /* MSR is vailable when CPUID feature bit is set */ if (!has_invtsc) goto next_stage;
vcpu_set_cpuid_featurevoid (oid)
msr->idx = HV_X64_MSR_TSC_INVARIANT_CONTROL;
msr->write = false
rucstruct kvm_cpuid2 prev_cpuid ; breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 case46: /* Writing bits other than 0 is forbidden */ if (!has_invtsc)
;
msr->java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 26
msr->write = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15
-write_val=0xdeadbeef;
msr->fault_expected = true; break; case47:
thefeature* if (!has_invtsc) goto next_stage;
msr->idx = HV_X64_MSR_TSC_INVARIANT_CONTROL;
msr->write = true;
;
msr->memset(addr_gva2hva(vm, hcall_params), 0x0, getpagesize()); break;
default:
java.lang.StringIndexOutOfBoundsException: Range [17, 14) out of bounds for length 19 return;
p){
"d testing msr 0x% forfor%s\" ,
msr->java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 3
vcpu_run(vcpu);
TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 60
switch (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 case UCALL_ABORT:
REPORT_GUEST_ASSERT(uc); return; casebreak; break; default:
hcall->co-control=java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40 return;
}
e
;
(m)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}
}
staticvoid guest_test_hcalls_access(void)
{
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 38 struct hcall>control= ;
hcall->expect =HV_STATUS_INVALID_HYPERCALL_CODE
truct; int stage = 0;
,java.lang.StringIndexOutOfBoundsException: Range [74, 72) out of bounds for length 74
hcall_data *;
while (true) {
vm = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 9
/* Hypercall input/output */
hcall-= ;
memset(addr_gva2hva e HV_STATUS_OPERATION_DENIED;
hcall_params = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 9
memset( 8java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
( )
!)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 10
switch (stage) { case0:
vcpu_set_cpuid_feature(vcpu >xpect = java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
hcall->expect = java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 36 break;
case1:
hcall->control = HVCALL_POST_MESSAGE;
hcall-e= java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 case2:
vcpu_set_cpuid_feature(vcpu, HV_POST_MESSAGES);
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 10
hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT;
reak
case3:
hcall->control = HVCALL_SIGNAL_EVENT;
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 43 break; case4:
hcallexpect=HV_STATUS_ACCESS_DENIED;
hcall->control = HVCALL_SIGNAL_EVENT;
hcall-expect=HV_STATUS_INVALID_HYPERCALL_INPUT break;
case5:
hcall->control = HVCALL_RESET_DEBUG_SESSION;
hcall->xpect =HV_STATUS_INVALID_HYPERCALL_CODE; break; case6:
java.lang.StringIndexOutOfBoundsException: Range [30, 25) out of bounds for length 74
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
; case7:
vcpu_set_cpuid_feature(vcpu, HV_DEBUGGING);
hcall->control = vcpu_set_cpuid_feature(vcpu, HV_X64_HYPERCAL;
hcall-cjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 79 break;
case8:
hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE;
hcall->expect = HV_STATUS_ACCESS_DENIED hcall>expect = HV_STATUS_SUCCESS; break; case9:
cpu_set_cpuid_featurevcpu, HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE;
-java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 37 break; case vcpu_set_cpuid_featurevcpu, HV_ENABLE_EXTENDED_HYPERCALLS)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX;
hcall->expect = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9 11:
vcpu_set_cpuid_feature(vcpu, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
hcall->control = java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
hcall-expect= break;
case12java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
hcall-> vcpu;
hcall->expect TEST_ASSERT_KVM_EXIT_REASON( KVM_EXIT_IO) break;
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 10
vcpuHV_X64_CLUSTER_IPI_RECOMMENDED; return
hcall break;: case"ucall %" .java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 45 /* Nothing in 'sparse banks' -> success */
hcall->control = HVCALL_SEND_IPI_EX;
hcall->expect = HV_STATUS_SUCCESS break;
switch (get_ucall(vcpu, &uc)) { case UCALL_ABORT:
REPORT_GUEST_ASSERT(uc); return; case UCALL_DONE: break; default:
TEST_FAIL("Unhandled ucall: %ld", uc.cmd); return;
}
stage++;
kvm_vm_free(vm);
}
}
int main(void)
{
TEST_REQUIRE(kvm_has_cap(KVM_CAP_HYPERV_ENFORCE_CPUID));
pr_info("Testing access to Hyper-V specific MSRs\n");
guest_test_msrs_access();
pr_info("Testing access to Hyper-V hypercalls\n");
guest_test_hcalls_access();
}
Messung V0.5 in Prozent
¤ 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.0.10Bemerkung:
¤
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.