All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lai Jiangshan <laijs@cn.fujitsu.com>
To: Lai Jiangshan <laijs@cn.fujitsu.com>, Avi Kivity <avi@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>
Cc: Joerg Roedel <joro@8bytes.org>,
	LKML <linux-kernel@vger.kernel.org>,
	kvm@vger.kernel.org, Gui Jianfeng <guijianfeng@cn.fujitsu.com>
Subject: Re: [RFC PATCH] kvm: calculate correct gfn for small host pages which emulates large guest pages
Date: Fri, 07 May 2010 16:52:18 +0800	[thread overview]
Message-ID: <4BE3D4C2.4070906@cn.fujitsu.com> (raw)
In-Reply-To: <4BDA4342.9070603@cn.fujitsu.com>

Lai Jiangshan wrote:
> Lai Jiangshan wrote:
>> RFC, because maybe I missing something with the old code.
>>
>> Frome: Lai Jiangshan <laijs@cn.fujitsu.com>
>>
>> In Document/kvm/mmu.txt:
>>   gfn:
>>     Either the guest page table containing the translations shadowed by this
>>     page, or the base page frame for linear translations. See role.direct.
>>
>> But in function FNAME(fetch)(), sp->gfn is incorrect when one of following
>> situations occurred:
>>  1) guest is 32bit paging and guest uses pse-36 and the guest PDE maps
>>     a 4-MByte page(backed by 4k host pages) and bits 20:13 of the guest PDE
>>     is not equals to 0.
>>  2) guest is long mode paging and the guest PDPTE maps a 1-GByte page
>>     (backed by 4k or 2M host pages)
>>
> 
> Resend this patch with the changelog changed.
> 
> As Marcelo Tosatti and Gui Jianfeng points out, 
> FNAME(fetch)() miss quadrant on 4mb large page emulation with shadow.
> 
> Subject: [PATCH] kvm: calculate correct gfn for small host pages which emulates large guest pages
> 
> In Document/kvm/mmu.txt:
>   gfn:
>     Either the guest page table containing the translations shadowed by this
>     page, or the base page frame for linear translations. See role.direct.
> 
> But in function FNAME(fetch)(), sp->gfn is incorrect when one of following
> situations occurred:
>  1) guest is 32bit paging and the guest PDE maps a 4-MByte page
>     (backed by 4k host pages), FNAME(fetch)() miss handling the quadrant.
> 
>     And if guest use pse-36, "table_gfn = gpte_to_gfn(gw->ptes[level - delta]);"
>     is incorrect.
>  2) guest is long mode paging and the guest PDPTE maps a 1-GByte page
>     (backed by 4k or 2M host pages).
> 
> So we fix it to suit to the document and suit to the code which
> requires sp->gfn correct when sp->role.direct=1.
> 
> We use the goal mapping gfn(gw->gfn) to calculate the base page frame
> for linear translations, it is simple and easy to be understood.
> 
> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
> ---

Could you add these:

Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
Reported-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>

Thanks.
Lai.

PS.
The whole patches includes:
[PATCH] kvm mmu: reduce 50% memory usage
[PATCH] kvm: calculate correct gfn for small host pages which emulates large guest pages
[PATCH] kvm, tdp: calculate correct base gfn for non-DIR level
[PATCH] kvm: update document of gfns


       reply	other threads:[~2010-05-07  8:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4BD97AC1.8070704@cn.fujitsu.com>
     [not found] ` <4BDA4342.9070603@cn.fujitsu.com>
2010-05-07  8:52   ` Lai Jiangshan [this message]
2010-05-10  8:55   ` [RFC PATCH] kvm: calculate correct gfn for small host pages which emulates large guest pages Avi Kivity
2010-05-26  8:48 ` [RESEND PATCH 1/3] " Lai Jiangshan
2010-05-26 11:23   ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BE3D4C2.4070906@cn.fujitsu.com \
    --to=laijs@cn.fujitsu.com \
    --cc=avi@redhat.com \
    --cc=guijianfeng@cn.fujitsu.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.