From: "Jan Beulich" <jbeulich@novell.com>
To: Keir Fraser <keir@xensource.com>
Cc: xen-devel@lists.xensource.com
Subject: Re: Fwd: Re: struct page field arrangement
Date: Fri, 16 Mar 2007 12:54:08 +0000 [thread overview]
Message-ID: <45FAA180.76E4.0078.0@novell.com> (raw)
In-Reply-To: <C2203D35.BA7D%keir@xensource.com>
>>> Keir Fraser <keir@xensource.com> 16.03.07 13:25 >>>
>On 16/3/07 12:11, "Keir Fraser" <keir@xensource.com> wrote:
>
>>> page_referenced_one() in mm/rmap.c). If this happens when
>>> xen_pgd_unpin() has already passed the respective pte page, but
>>> mm_walk() hasn't reached the page, yet, the update will fail (if done
>>> directly, ptwr will no pick this up, and if done through a hypercall, the
>>> call would fail, likely producing a BUG()).
>>
>> What kind of stress test did you run? I was expecting that unpin would be
>> okay because we only call mm_unpin() from _arch_exit_mmap() if the mm_count
>> is 1 (which I believe means the mm is not active in any task).
newburn on machines with not too much (<= 2G) memory.
>And actually the pinning happens on activate_mm() in most cases, which I
>would expect to be 'early enough' since noone can run on the mm before that?
>
>If you've managed to provoke bugs then that's very interesting (and scary)!
>
>I suppose if I understand the rmap case correctly, we're still susceptible
>to the paging kernel thread trying to page things out at any time? Is that
>what you think you've been seeing go wrong?
Yes, somewhere in that area. From the data I have (page fault on the
page table write in ptep_clear_flush_young(), with the page table dump
showing the page to be writeable and present) I can only conclude that
the race is with the unpin path (otherwise I should see the page being
write protected), while the vm scan tries to recover memory at the same
time, and since this scan is scanning zones, not mm-s, the references to
the mm-s are being obtained from struct page -> vma -> mm (i.e. the
mm-s' use counts don't matter here).
Jan
next prev parent reply other threads:[~2007-03-16 12:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-16 11:58 Fwd: Re: struct page field arrangement Jan Beulich
2007-03-16 12:11 ` Keir Fraser
2007-03-16 12:25 ` Keir Fraser
2007-03-16 12:54 ` Jan Beulich [this message]
2007-03-16 12:37 ` Keir Fraser
2007-03-16 12:46 ` Jan Beulich
-- strict thread matches above, loose matches on Subject: below --
2007-03-16 13:47 Jan Beulich
2007-03-16 14:13 ` Keir Fraser
2007-03-16 14:30 ` Keir Fraser
2007-03-16 15:15 ` Jan Beulich
2007-03-16 15:30 ` Keir Fraser
2007-02-28 14:31 Jan Beulich
2007-02-28 21:08 ` Hugh Dickins
2007-03-01 8:42 ` Fwd: " Jan Beulich
2007-03-01 10:22 ` Keir Fraser
2007-03-01 11:45 ` Jan Beulich
2007-03-01 12:12 ` Keir Fraser
2007-03-01 12:50 ` Jan Beulich
2007-03-01 13:42 ` Keir Fraser
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=45FAA180.76E4.0078.0@novell.com \
--to=jbeulich@novell.com \
--cc=keir@xensource.com \
--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.