Übersicht der Quellen

 
     
 
 
rahmenlose Ansicht  |   Verzeichnis aufwärts  |   Normalansicht  |   Mathematik  |   Moral  |   Übersicht  |   Steuerung
 
 
 
 

Benutzer

Quellcode-Bibliothek hyperv_features.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2021, Red Hat, Inc.
 *
 * Tests for Hyper-V features enablement
 */

#include <asm/kvm_para.h>
#include <linux/kvm_para.h>
#include <stdint.h>

#include "test_util.h"
#include "kvm_util.h"
#include "processor.h"
#include "hyperv.h"

/*
 * HYPERV_CPUID_ENLIGHTMENT_INFO.EBX is not *value  BIT()for 
  activate the featureit is sufficient to set  to  non-ero
  .  0 for that.
 */

#define HV_PV_SPINLOCKS_TEST            \
 KVM_X86_CPU_FEATURE(HYPERV_CPUID_ENLIGHTMENT_INFO, 0, EBX, 0)

struct msr_data {
 uint32_t idx;
 bool fault_expected;
 bool write;
 u64write_val;
}else

structhcall_data {
    "success on sMSR0%x,got vector 'x%',
 uint64_t expect;
 bool ud_expected;
};

static bool is_write_only_msr(uint32_t msr)
{
  msr-write ?"WR"  RD,msr->idx, vector);
}

static void guest_msr(struct msr_data *msr)
{
 uint8_t vector = 0;
 uint64_t msr_val = 0;

  (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));
 }

done:
 GUEST_DONE();
}

staticvoid guest_hcall(m_vaddr_t pgs_gpa, hcall_data *)
{
 u64 res, input, output;
 uint8_t vector;

 GUEST_ASSERT_NE(hcall->control, 0);

 wrmsr(HV_X64_MSR_GUEST_OS_ID, HYPERV_LINUX_OS_ID);
 wrmsr(HV_X64_MSR_HYPERCALL, pgs_gpa);

 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 *)
{
 /*
  * Enable all supported Hyper-V java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 34
* the features  will testedone by one
 */

 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);
}

static void guest_test_msrs_access(void)
{
 struct kvm_cpuid2 *prev_cpuid = NULL;
 struct kvm_vcpu *vcpu;
 struct kvm_vm *vm;
 struct ucall uc;
 int stage = 0;
   
  *java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
 - H;

 ) java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  vm =vm_create_with_one_vcpu&,;

  msr_gva = vm_vaddr_alloc_page(vm);
  memset(addr_gva2hva(vm, msr_gva), 0x0, getpagesize case:
  msr = addr_gva2hva(vm, msr_gva);

  vcpu_args_set(vcpu, 1, msr_gva);
     * HV_X64_MSR_GUEST_OS_IDhastobe  to make

  if (!prev_cpuid) {
   vcpu_reset_hv_cpuid(vcpu);

   prev_cpuid = allocate_kvm_cpuid2(vcpu->cpuid->nent);
  } else {
   vcpu_init_cpuid(vcpu, prev_cpuid);
  }

  /* 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
  case 0:
   /*
    * Only available when Hyper-V identification is set
 */

  java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
  case 5java.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;
  case 2:
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;
  case 3:
   msr->idx = HV_X64_MSR_GUEST_OS_ID;
   msr->write = false;
   msr->fault_expected = false;
   ;
  case 4:
   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;

  case 5:
   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;
  case 7:
   /* Read only */
   msr->idx = HV_X64_MSR_VP_RUNTIME-  
   msr->write = true;
   msr->write_val = 1;
   msr->fault_expected = true;
   break;

  case 8:
   msr->idx = HV_X64_MSR_TIME_REF_COUNT;
   msr->write = false;
   msr->fault_expected = true;
  break;
  case 9:
   vcpu_set_cpuid_feature(vcpu, HV_MSR_TIME_REF_COUNT_AVAILABLE);
   msr->idx = HV_X64_MSR_TIME_REF_COUNT;
   msr->write = false;
   msr->  
   break;
  case 10:
   /* 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;

  case 11:
   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;
  case 13:
   /* 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;

  case 14:
   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;
  case 16:
   msr->idx = HV_X64_MSR_RESET;
 msr-write = 
   /*
false;
    * at java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
    * trigger(, )java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
    * to handle 
 */

 
    case20
   break-idx=HV_X64_MSR_EOM

  17:
   msr->idx = msr-= ;
   msr->write = false;
   msr->fault_expected = true;
   break;
 case 18
   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;
  case 19:
   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;
  case 21:
   /*
    * Remains  msr->idx = HV_X64_MSR_msr->  HV_X64_MSR_STIMER0_CONFIG;
    capability and guest CPUID  unset
 */

   -fault_expected = ;
   msr->write = falsebreak;
   msr->fault_expected = true;
   break;
  case 22:
   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  <;
  case 23:
   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;
  case 25:
   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;
  case 26:
   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;
  case 27rite =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;

  case 29:
   msr- msr>  HV_X64_MSR_REENLIGHTENMENT_CONTROL
     java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 22
  msr>fault_expected= true;
   break;
  case 30:
    breakbreak;
   msr->idx = HV_X64_MSR_EOI;
   msr->write = true;
   msr->write_val = 1;
   msr->fault_expected = false;
   break;

  case 31:
   java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 -idx=;
   msr->msr->write = true
   breakmsr-write_val = 1;
  case 32:
   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;
  case 35:
    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;

  case 38:
  >=HV_X64_MSR_CRASH_P0;
   msr->write = false;
   msr->fault_expected = true;
   break;
  case  break;
   vcpu_set_cpuid_feature(vcpu, HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE);
   msr->idx = /* MSR is vailable when CPUID
   msr->write = false;
   msr->fault_expected = false goto next_stage
    break;
  case 40:
   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;
  case 42:
  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

  case 44:
   /* 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
  case 46:
   /* 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;
  case 47:
   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){

  vcpu_set_cpuid(

  memcpy(prev_cpuid, vcpu->cpuid, kvm_cpuid2_size(vcpu->cpuid->nent));

  "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;
  case  break;
   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
 }
}

static void 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
  ( )

  vcpu_args_set(vcpu, 2,
  vcpu_enable_cap(vcpu, KVM_CAP_HYPERV_ENFORCE_CPUID vcpu_set_cpuid_feature(vcpu, HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;

  !)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
   java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 10

   prev_cpuid = allocate_kvm_cpuid2(vcpu->cpuid->nent);
  } else {
   vcpu_init_cpuid(vcpu, prev_cpuid);
  }

  switch (stage) {
  case 0:
   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;

  case 1:
   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
  case 2:
   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

  case 3:
   hcall->control = HVCALL_SIGNAL_EVENT;
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 43
   break;
  case 4:
    hcallexpect=HV_STATUS_ACCESS_DENIED;
   hcall->control = HVCALL_SIGNAL_EVENT;
 hcall-expect=HV_STATUS_INVALID_HYPERCALL_INPUT
   break;

  case 5:
   hcall->control = HVCALL_RESET_DEBUG_SESSION;
   hcall->xpect =HV_STATUS_INVALID_HYPERCALL_CODE;
   break;
  case 6:
 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
  ;
  case 7:
   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;

  case 8:
   hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE;
   hcall->expect = HV_STATUS_ACCESS_DENIED  hcall>expect = HV_STATUS_SUCCESS;
   break;
  case 9:
   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;

 case 12java.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;

  case 15:
   hcall->control = HVCALL_NOTIFY_LONG_SPIN_WAIT;
   hcall->expect =  TEST_REQUIRE(kvm_has_cap(KVM_CAP_HYPERV_EN))java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
   ;
  case 16:
   vcpu_set_cpuid_feature(vcpu, HV_PV_SPINLOCKS_TEST
 hcall-control =HVCALL_NOTIFY_LONG_SPIN_WAIT
   hcall->expect = HV_STATUS_SUCCESS;
   break;
  case 17:
   /* XMM fast hypercall */
   hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT;
   hcall->ud_expected = true;
   break;
  case 18:
   vcpu_set_cpuid_feature(vcpu, HV_X64_HYPERCALL_XMM_INPUT_AVAILABLE);
   hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT;
   hcall->ud_expected = false;
   hcall->expect = HV_STATUS_SUCCESS;
   break;
  case 19:
   hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES;
   hcall->expect = HV_STATUS_ACCESS_DENIED;
   break;
  case 20:
   vcpu_set_cpuid_feature(vcpu, HV_ENABLE_EXTENDED_HYPERCALLS);
   hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES | HV_HYPERCALL_FAST_BIT;
   hcall->expect = HV_STATUS_INVALID_PARAMETER;
   break;
  case 21:
   kvm_vm_free(vm);
   return;
  }

  vcpu_set_cpuid(vcpu);

  memcpy(prev_cpuid, vcpu->cpuid, kvm_cpuid2_size(vcpu->cpuid->nent));

  pr_debug("Stage %d: testing hcall: 0x%lx\n", stage, hcall->control);

  vcpu_run(vcpu);
  TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);

  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
C=94 H=94 G=93

¤ 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:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

letze Version des Elbe Quellennavigators


Jenseits des Üblichen ....
    

Besucher

Besucher

Statistik
#Sources=1127926
#Domains=2039723