xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Tamas K Lengyel <tamas.k.lengyel@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: vm_event regression in 4.7
Date: Fri, 5 Feb 2016 14:08:27 -0700	[thread overview]
Message-ID: <CABfawhm8nY-M7fVTe3ARXSae2S2VeMYJ3aoNv3A8qsdeZQQktQ@mail.gmail.com> (raw)
In-Reply-To: <CABfawhnykYsuJxvUk-jsKSBP9=KGp6uOVf1Gh7JHGAF9m+roug@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2619 bytes --]

On Fri, Feb 5, 2016 at 1:34 PM, Tamas K Lengyel <tamas.k.lengyel@gmail.com>
wrote:

>
>
>
> On Wed, Feb 3, 2016 at 3:35 AM, Andrew Cooper <andrew.cooper3@citrix.com>
> wrote:
>
>> On 03/02/16 01:32, Tamas K Lengyel wrote:
>>
>>
>>
>> On Tue, Feb 2, 2016 at 6:00 PM, Andrew Cooper <andrew.cooper3@citrix.com>
>> wrote:
>>
>>> On 03/02/2016 00:51, Tamas K Lengyel wrote:
>>>
>>> Hello all,
>>> with the latest master branch of Xen there is a regression enabling
>>> vm_event on a domain. If an event listener was previously active on the
>>> domain it is now not possible to reenable events as the domctl returns
>>> -EINVAL. The problem seems to stem from activating the magic page for
>>> vm_event using prepare_ring_for_helper as it returns NULL. Further looking
>>> into where things go wrong within that function it seems the page type
>>> returned by __get_gfn_type_access is p2m_ram_logdirty with an invalid mfn
>>> (0xffffffffffffffff) and then it hits "Error path: not a suitable GFN at
>>> all".
>>>
>>> Can anyone point me to which change or what may be causing this?
>>>
>>>
>>> Did the previous event listener replace the page it stole from guest
>>> physmap for ring purposes when it exited?
>>>
>>
>> Ah, here is what seems to be the problem. Previously it was not required
>> to do this during teardown. What we had was libxc would check if it can map
>> the ring page with xc_map_foreign_pages, and it would repopulate the page
>> if it failed before running xc_vm_event_enable. However, now it seems
>> xc_map_foreign_pages return non-NULL the second time around as well, either
>> though the page is not in the physmap.
>>
>>
>> This is the bug then.  If there isn't a page in the physmap,
>> xc_map_foreign_pages() should indicate an error.
>>
>> If I enforce libxc to run populate_physmap then I can get vm_event to
>> initialize properly again. So the change seems to relate somehow the
>> behavior of xc_map_foreign_pages.
>>
>>
>> This seems likely due to the splitting out of libxenforeignmem from
>> libxc, which included the the merging of 4? almost identical
>> map_foreign_$FOO() functions into one.  It is likely that there is a subtle
>> change in behaviour on an error path.
>>
>
> I've added a bunch of debug messages and it gets all the way down to
> IOCTL_PRIVCMD_MMAPBATCH_V2 without an error in
> tools/libs/foreignmemory/linux.c. That ioctl returns 0 too, so I'm not sure
> where the error comes from. Compared to the flow in Xen 4.6 I don't really
> see what changed..
>
>
Never mind, found it. The commit "b701ccc8 tools: Remove
xc_map_foreign_batch" caused the regression.

Tamas

[-- Attachment #1.2: Type: text/html, Size: 5449 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

      reply	other threads:[~2016-02-05 21:08 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03  0:51 vm_event regression in 4.7 Tamas K Lengyel
2016-02-03  1:00 ` Andrew Cooper
2016-02-03  1:32   ` Tamas K Lengyel
2016-02-03 10:35     ` Andrew Cooper
2016-02-05 20:34       ` Tamas K Lengyel
2016-02-05 21:08         ` Tamas K Lengyel [this message]

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=CABfawhm8nY-M7fVTe3ARXSae2S2VeMYJ3aoNv3A8qsdeZQQktQ@mail.gmail.com \
    --to=tamas.k.lengyel@gmail.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=andrew.cooper3@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).