From: Nadav Amit <nadav.amit@gmail.com>
To: Tang Chen <tangchen@cn.fujitsu.com>
Cc: Gleb Natapov <gleb@kernel.org>,
mtosatti@redhat.com, kvm@vger.kernel.org, laijs@cn.fujitsu.com,
isimatu.yasuaki@jp.fujitsu.com, guz.fnst@cn.fujitsu.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] kvm, mem-hotplug: Update apic access page when it is migrated.
Date: Tue, 08 Jul 2014 09:46:32 +0300 [thread overview]
Message-ID: <53BB93C8.7000905@gmail.com> (raw)
In-Reply-To: <53BB4CF3.2010908@cn.fujitsu.com>
Tang,
I am sorry if I caused any confusion.
Following Gleb response, there is no apparent need for dealing with the
scenario I mentioned (relocating the APIC base), so you don't need to do
any changes to your patch, and I will post another patch later to warn
if the guest relocates its APIC (from the default address to another
guest physical address). My answers to your questions are below.
On 7/8/14, 4:44 AM, Tang Chen wrote:
> Hi Nadav,
>
> Thanks for the reply, please see below.
>
> On 07/07/2014 08:10 PM, Nadav Amit wrote:
>> On 7/7/14, 2:54 PM, Gleb Natapov wrote:
>>> On Mon, Jul 07, 2014 at 02:42:27PM +0300, Nadav Amit wrote:
>>>> Tang,
>>>>
>>>> Running some (unrelated) tests I see that KVM does not handle APIC base
>>>> relocation correctly. When the base is changed, kvm_lapic_set_base just
>>>> changes lapic->base_address without taking further action (i.e.,
>>>> modifying
>>>> the VMCS apic address in VMX).
>>>>
>>>> This patch follows KVM bad behavior by using the constant
>>>> VMX_APIC_ACCESS_PAGE_ADDR instead of lapic->base_address.
>>> There is no OS out there that relocates APIC base (in fact it was not
>>> always
>>> relocatable on real HW), so there is not point in complicating the
>>> code to support
>>> it. In fact current APIC_ACCESS_ADDR handling relies on the fact that
>>> all vcpus
>>> has apic mapped at the same address.
>>>
>>>>
>>>> Anyhow, I didn't see anything that would make my life (in fixing the
>>>> lapic
>>>> base issue) too difficult. Yet, feel free in making it more
>>>> "fix-friendly".
>>>>
>>> Why would you want to fix it?
>>>
>> If there is no general need, I will not send a fix. However, I think the
>> very least a warning message should be appear if the guest relocates the
>> APIC base.
>
> Maybe I didn't understand you question correctly. If I'm wrong, please
> tell me.
>
> This patch does not relocate APIC base in guest, but in host. Host migrates
> the apic page to somewhere else, and KVM updates ept pagetable to track it.
> In guest, apic base address (gpa) doesn't change.
The last claim is true in practice, according to Gleb, but it is not
necessarily so according to the specifications. Pentium 4, Intel Xeon
and P6 family processors support APIC base relocation. See the Intel SDM
section 10.4.5. Anyhow, Gleb claims it is not used by any OS.
>
> Is this lapic->base_address a hpa ?
No, it is guest physical address.
>
> Is there anywhere I need to update in my patch ?
No. I'll send another patch on top of yours that prints a warning if the
APIC base is relocated (i.e., the guest physical address of the APIC
base is changed). Such relocation is done explicitly by the guest, not
by your patch.
Nadav
next prev parent reply other threads:[~2014-07-08 6:46 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-02 9:00 [PATCH 0/4] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page Tang Chen
2014-07-02 9:00 ` [PATCH 1/4] kvm: Add gfn_to_page_no_pin() Tang Chen
2014-07-02 9:00 ` [PATCH 2/4] kvm: Add macro VMX_APIC_ACCESS_PAGE_ADDR Tang Chen
2014-07-02 16:24 ` Gleb Natapov
2014-07-03 1:19 ` Tang Chen
2014-07-02 9:00 ` [PATCH 3/4] kvm, memory-hotplug: Update ept identity pagetable when it is migrated Tang Chen
2014-07-02 16:34 ` Gleb Natapov
2014-07-03 1:19 ` Tang Chen
2014-07-04 2:36 ` Tang Chen
2014-07-04 9:49 ` Gleb Natapov
2014-07-02 9:00 ` [PATCH 4/4] kvm, mem-hotplug: Update apic access page " Tang Chen
2014-07-03 13:55 ` Gleb Natapov
2014-07-04 2:18 ` Tang Chen
2014-07-04 2:18 ` Tang Chen
2014-07-04 10:13 ` Gleb Natapov
2014-07-07 6:17 ` Tang Chen
2014-07-07 9:52 ` Tang Chen
2014-07-07 11:42 ` Nadav Amit
2014-07-07 11:54 ` Gleb Natapov
2014-07-07 12:10 ` Nadav Amit
2014-07-07 12:15 ` Gleb Natapov
2014-07-08 1:44 ` Tang Chen
2014-07-08 6:46 ` Nadav Amit [this message]
2014-07-07 10:35 ` Wanpeng Li
2014-07-08 9:40 ` Tang Chen
2014-07-03 1:17 ` [PATCH 0/4] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page Tang Chen
2014-07-03 6:04 ` Gleb Natapov
2014-07-04 6:41 ` Tang Chen
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=53BB93C8.7000905@gmail.com \
--to=nadav.amit@gmail.com \
--cc=gleb@kernel.org \
--cc=guz.fnst@cn.fujitsu.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=kvm@vger.kernel.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=tangchen@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).