From: David Vrabel <david.vrabel@citrix.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: boris.ostrovsky@oracle.com, Wei Liu <wei.liu2@citrix.com>,
ian.campbell@citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH] xen: set P2M entry to INVALID_P2M_ENTRY for ballooned out pages
Date: Tue, 27 Aug 2013 14:42:26 +0100 [thread overview]
Message-ID: <521CACC2.2060801@citrix.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1308271422510.6397@kaball.uk.xensource.com>
On 27/08/13 14:34, Stefano Stabellini wrote:
> On Mon, 26 Aug 2013, Wei Liu wrote:
>> On Thu, Aug 22, 2013 at 02:00:05PM +0100, David Vrabel wrote:
>>> On 22/08/13 13:57, Wei Liu wrote:
>>>> In commit cd9151e2: xen/balloon: set a mapping for ballooned out pages
>>>> we have the ballooned out page's mapping set to a scratch page. That commit
>>>> also set the P2M entry of ballooned out page to the scratch, which is
>>>> not necessary. That triggers BUG_ONs in __set_phys_to_machine when the
>>>> page is ballooned in again.
>>>>
>>>> We only need to ensure that the ballooned out pages have valid mapping.
>>>> P2M entries of those pages should still be set to INVALID_P2M_ENTRY.
>>>
>>> I know I suggested this but I would like to get Stefano's acked-by or
>>> reviewed-by for this.
>>>
>>
>> Stefano, what do you think?
>
> I think it is wrong: if the page has a valid mapping it should also have
> a valid p2m entry. It's easier to think about and it's going to avoid
> bugs when generic linux code ends up calling a pvop that on Xen looks
> into the p2m.
But in the auto_translated physmap case it does /not/ have a valid p2m
entry -- only the virtual mappping....
> Which one of the BUG_ON in __set_phys_to_machine are hit? We could
> avoid calling set_phys_to_machine in decrease_reservation on
> XENFEAT_auto_translated_physmap guests, that would avoid the first
> BUG_ON in __set_phys_to_machine. Arguably it's the right thing to do
> anyway.
... which makes the suggestion to avoid the __set_phys_to_machine()
calls sensible to me.
> Regarding the second BUG_ON:
>
> if (unlikely(pfn >= MAX_P2M_PFN)) {
> BUG_ON(mfn != INVALID_P2M_ENTRY);
> return true;
> }
>
> We shouldn't really be hitting it, right? Why is pfn >= MAX_P2M_PFN?
I believe it was the check for pfn == mfn.
David
next prev parent reply other threads:[~2013-08-27 13:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-22 12:57 [PATCH] xen: set P2M entry to INVALID_P2M_ENTRY for ballooned out pages Wei Liu
2013-08-22 13:00 ` David Vrabel
2013-08-26 16:08 ` Wei Liu
2013-08-27 13:34 ` Stefano Stabellini
2013-08-27 13:42 ` David Vrabel [this message]
2013-08-27 13:44 ` Wei Liu
2013-08-27 14:05 ` Stefano Stabellini
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=521CACC2.2060801@citrix.com \
--to=david.vrabel@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/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).