···3403or if no page table is present for the addresses (e.g. when using3404hugepages).3405000000000000000000000000000000000000000000000034065. The kvm_run structure3407------------------------3408
···3403or if no page table is present for the addresses (e.g. when using3404hugepages).34053406+4.108 KVM_PPC_GET_CPU_CHAR3407+3408+Capability: KVM_CAP_PPC_GET_CPU_CHAR3409+Architectures: powerpc3410+Type: vm ioctl3411+Parameters: struct kvm_ppc_cpu_char (out)3412+Returns: 0 on successful completion3413+ -EFAULT if struct kvm_ppc_cpu_char cannot be written3414+3415+This ioctl gives userspace information about certain characteristics3416+of the CPU relating to speculative execution of instructions and3417+possible information leakage resulting from speculative execution (see3418+CVE-2017-5715, CVE-2017-5753 and CVE-2017-5754). The information is3419+returned in struct kvm_ppc_cpu_char, which looks like this:3420+3421+struct kvm_ppc_cpu_char {3422+ __u64 character; /* characteristics of the CPU */3423+ __u64 behaviour; /* recommended software behaviour */3424+ __u64 character_mask; /* valid bits in character */3425+ __u64 behaviour_mask; /* valid bits in behaviour */3426+};3427+3428+For extensibility, the character_mask and behaviour_mask fields3429+indicate which bits of character and behaviour have been filled in by3430+the kernel. If the set of defined bits is extended in future then3431+userspace will be able to tell whether it is running on a kernel that3432+knows about the new bits.3433+3434+The character field describes attributes of the CPU which can help3435+with preventing inadvertent information disclosure - specifically,3436+whether there is an instruction to flash-invalidate the L1 data cache3437+(ori 30,30,0 or mtspr SPRN_TRIG2,rN), whether the L1 data cache is set3438+to a mode where entries can only be used by the thread that created3439+them, whether the bcctr[l] instruction prevents speculation, and3440+whether a speculation barrier instruction (ori 31,31,0) is provided.3441+3442+The behaviour field describes actions that software should take to3443+prevent inadvertent information disclosure, and thus describes which3444+vulnerabilities the hardware is subject to; specifically whether the3445+L1 data cache should be flushed when returning to user mode from the3446+kernel, and whether a speculation barrier should be placed between an3447+array bounds check and the array access.3448+3449+These fields use the same bit definitions as the new3450+H_GET_CPU_CHARACTERISTICS hypercall.3451+34525. The kvm_run structure3453------------------------3454