From: Olaf Hering <olaf@aepfle.de>
To: Tim Deegan <tim@xen.org>
Cc: andres@gridcentric.ca, xen-devel@lists.xensource.com,
adin@gridcentric.ca
Subject: Re: [PATCH 5 of 6] [RFC] x86/mm: use wait queues for mem_paging
Date: Mon, 27 Feb 2012 21:18:23 +0100 [thread overview]
Message-ID: <20120227201823.GB6158@aepfle.de> (raw)
In-Reply-To: <20120227192652.GC98737@ocelot.phlegethon.org>
On Mon, Feb 27, Tim Deegan wrote:
> At 14:45 +0100 on 24 Feb (1330094744), Olaf Hering wrote:
> > > #ifdef __x86_64__
> > > + if ( p2m_is_paging(*t) && (q & P2M_ALLOC)
> > > + && p2m->domain == current->domain )
> > > + {
> > > + if ( locked )
> > > + gfn_unlock(p2m, gfn, 0);
> > > +
> > > + /* Ping the pager */
> > > + if ( *t == p2m_ram_paging_out || *t == p2m_ram_paged )
> > > + p2m_mem_paging_populate(p2m->domain, gfn);
> > > +
> > > + /* Wait until the pager finishes paging it in */
> > > + current->arch.mem_paging_gfn = gfn;
> > > + wait_event(current->arch.mem_paging_wq, ({
> > > + int done;
> > > + mfn = p2m->get_entry(p2m, gfn, t, a, 0, page_order);
> > > + done = (*t != p2m_ram_paging_in);
> >
> > I assume p2m_mem_paging_populate() will not return until the state is
> > forwarded to p2m_ram_paging_in. Maybe p2m_is_paging(*t) would make it
> > more obvious what this check is supposed to do.
>
> But it would be wrong. If the type anything other than
> p2m_ram_paging_in, then we can't be sure that the pager is working on
> unblocking us.
Not really wrong. I think it depends what will happen to the p2mt once
it leaves the paging state and once the condition in wait_event() is
executed again. Now I see what its supposed to mean, it enters
wait_event() with p2m_ram_paging_in and it is supposed to leave once the
type changed to something else. It works because the page-in path has
now only one p2mt, not two like a few weeks ago.
Olaf
next prev parent reply other threads:[~2012-02-27 20:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-23 16:34 [PATCH 0 of 6] [RFC] Use wait queues for paging, v2 Tim Deegan
2012-02-23 16:34 ` [PATCH 1 of 6] mm: guest_remove_page() should not populate or unshare Tim Deegan
2012-02-23 16:34 ` [PATCH 2 of 6] x86/mm: remove 'p2m_guest' lookup type Tim Deegan
2012-02-23 16:34 ` [PATCH 3 of 6] x86/mm: make 'query type' argument to get_gfn into a set of flags Tim Deegan
2012-02-23 16:45 ` Andres Lagar-Cavilla
2012-02-23 16:34 ` [PATCH 4 of 6] x86/mm: tidy up get_two_gfns() a little Tim Deegan
2012-02-23 16:34 ` [PATCH 5 of 6] [RFC] x86/mm: use wait queues for mem_paging Tim Deegan
2012-02-24 13:45 ` Olaf Hering
2012-02-27 19:26 ` Tim Deegan
2012-02-27 20:18 ` Olaf Hering [this message]
2012-02-23 16:34 ` [PATCH 6 of 6] x86/mm: Don't claim a slot on the paging ring if we might not need it Tim Deegan
2012-02-23 16:48 ` Andres Lagar-Cavilla
2012-02-23 16:43 ` [PATCH 0 of 6] [RFC] Use wait queues for paging, v2 Tim Deegan
2012-02-23 16:49 ` Andres Lagar-Cavilla
2012-02-26 22:14 ` Olaf Hering
2012-02-27 16:51 ` Olaf Hering
[not found] ` <EC947F02-8448-45B0-A240-8BBD41C3F9B7@gridcentric.ca>
2012-02-28 21:11 ` Andres Lagar-Cavilla
2012-02-29 16:18 ` Olaf Hering
2012-02-29 19:56 ` Olaf Hering
2012-03-15 15:27 ` Tim Deegan
2012-03-15 15:37 ` Olaf Hering
2012-03-15 15:40 ` Tim Deegan
2012-03-15 15:56 ` Andres Lagar-Cavilla
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=20120227201823.GB6158@aepfle.de \
--to=olaf@aepfle.de \
--cc=adin@gridcentric.ca \
--cc=andres@gridcentric.ca \
--cc=tim@xen.org \
--cc=xen-devel@lists.xensource.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.