[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 4/4] target-i386: Add NPT support
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 4/4] target-i386: Add NPT support |
Date: |
Wed, 27 Jun 2018 14:14:14 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 03/04/2018 17:36, Jan Kiszka wrote:
>
> +static hwaddr get_hphys(CPUState *cs, hwaddr gphys, MMUAccessType
> access_type,
> + int *prot)
> +{
> + CPUX86State *env = &X86_CPU(cs)->env;
> + uint64_t rsvd_mask = PG_HI_RSVD_MASK;
> + uint64_t ptep, pte;
> + uint64_t exit_info_1 = 0;
> + target_ulong pde_addr, pte_addr;
> + uint32_t page_offset;
> + int page_size;
> +
> + if (likely(!(env->hflags & HF_NPT_MASK))) {
> + return gphys;
> + }
hflags are a somewhat limited resource. Can this go in hflags2?
>
> +
> + env->nested_pg_mode = 0;
> + if (env->cr[4] & CR4_PAE_MASK) {
> + env->nested_pg_mode |= SVM_NPT_PAE;
> + }
> + if (env->hflags & HF_LMA_MASK) {
> + env->nested_pg_mode |= SVM_NPT_LMA;
> + }
> + if (env->efer & MSR_EFER_NXE) {
> + env->nested_pg_mode |= SVM_NPT_NXE;
> + }
> + }
> +
This needs to be migrated. You can put it in a subsection, conditional
on hflags & HF_SVMI_MASK.
Also, do you need to flush the TLB unconditionally, even if CR0.PG is zero?
Otherwise looks good. I have queued patches 1-3, but hopefully this one
can go in the next release too. Sorry for the delayed review.
Paolo
- Re: [Qemu-devel] [PATCH v2 4/4] target-i386: Add NPT support,
Paolo Bonzini <=