qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] x86: host-phys-bits-limit option


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH] x86: host-phys-bits-limit option
Date: Mon, 7 Jan 2019 15:23:47 -0200
User-agent: Mutt/1.10.1 (2018-07-13)

On Thu, Dec 13, 2018 at 08:52:31AM +0800, Yu Zhang wrote:
> On Wed, Dec 12, 2018 at 12:12:33PM -0200, Eduardo Habkost wrote:
> > On Wed, Dec 12, 2018 at 05:08:39PM +0800, Yu Zhang wrote:
> > > On Tue, Dec 11, 2018 at 05:25:27PM -0200, Eduardo Habkost wrote:
> > > > Some downstream distributions of QEMU set host-phys-bits=on by
> > > > default.  This worked very well for most use cases, because
> > > > phys-bits really didn't have huge consequences. The only
> > > > difference was on the CPUID data seen by guests, and on the
> > > > handling of reserved bits.
> > > > 
> > > > This changed in KVM commit 855feb673640 ("KVM: MMU: Add 5 level
> > > > EPT & Shadow page table support").  Now choosing a large
> > > > phys-bits value for a VM has bigger impact: it will make KVM use
> > > > 5-level EPT even when it's not really necessary.  This means
> > > > using the host phys-bits value may not be the best choice.
> > > > 
> > > > Management software could address this problem by manually
> > > > configuring phys-bits depending on the size of the VM and the
> > > > amount of MMIO address space required for hotplug.  But this is
> > > > not trivial to implement.
> > > > 
> > > > However, there's another workaround that would work for most
> > > > cases: keep using the host phys-bits value, but only if it's
> > > > smaller than 48.  This patch makes this possible by introducing a
> > > > new "-cpu" option: "host-phys-bits-limit".  Management software
> > > > or users can make sure they will always use 4-level EPT using:
> > > > "host-phys-bits=on,host-phys-bits-limit=48".
> > > > 
> > > > This behavior is still not enabled by default because QEMU
> > > > doesn't enable host-phys-bits=on by default.  But users,
> > > > management software, or downstream distributions may choose to
> > > > change their defaults using the new option.
> > > > 
> > > > Signed-off-by: Eduardo Habkost <address@hidden>
> > > 
> > > Thanks, Eduardo. One question is, should we check host-phys-bits-limit
> > > against 48? If not, how about we just say in the commit message, that
> > > the suggested value of host-phys-bits-limit is no bigger than 48 to
> > > ensure a 4-level EPT? :-)
> > 
> > I'm not sure I understood the question.  I tried to document this
> > at:
> > 
> > |                                      [...]  Management software
> > | or users can make sure they will always use 4-level EPT using:
> > | "host-phys-bits=on,host-phys-bits-limit=48".
> > 
> 
> Oh, I was just saying that host-phys-bits-limit can be of any
> value less than 48, instead of just 48, to ensure a 4-level EPT.
> Not a big deal. I guess readers can get the point in your commit
> message.  
> 
> Another question is, should we check the value of host-phys-bits?
> Shall we accept values greater than 48(may be a useless configuration,
> but still acceptible), or less than 32? 

I'm not sure.  We can do that, but we can't just choose arbitrary
limits: we need to be able to and point to the specific
requirements/specifications behind them.

Setting host-phys-bits-limit > 48, for example, seems reasonable.
It would be useful to guarantee a VM is migratable to smaller
hosts.

Making sure phys-bits it is big enough to fit all RAM + MMIO
regions would be a good idea, though.  We would need the machine
code to ensure the address limits make sense.

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]