xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Tamas K Lengyel <tamas.k.lengyel@gmail.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: vm_event regression in 4.7
Date: Wed, 3 Feb 2016 10:35:11 +0000	[thread overview]
Message-ID: <56B1D7DF.6050201@citrix.com> (raw)
In-Reply-To: <CABfawhmxZs6yQH8wqZeeCjTLQS7ahb8NoRmOsU994Oi1Ugxe-Q@mail.gmail.com>


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

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 <mailto: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.

~Andrew

[-- Attachment #1.2: Type: text/html, Size: 4474 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-03 10:35 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 [this message]
2016-02-05 20:34       ` Tamas K Lengyel
2016-02-05 21:08         ` Tamas K Lengyel

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