From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Zachary Amsden <zach@vmware.com>
Cc: Chris Wright <chrisw@sous-sol.org>,
Virtualization Mailing List <virtualization@lists.osdl.org>
Subject: how set_pte_at()'s vaddr and ptep args relate
Date: Tue, 07 Nov 2006 11:57:06 -0800 [thread overview]
Message-ID: <4550E512.1020706@goop.org> (raw)
Hi Zach,
I'm wondering what the interface requirements of set_pte_at()'s "addr"
and "ptep" args are. I presume that in general the ptep points to the
pte entry which corresponds to the vaddr, but is this necessarily the case?
For example, it is valid to pass a non-highmem page kmap_atomic(), which
will simply return a direct pointer to the page.
kunmap_atomic() takes this address, as well as the kmap slot index, and
ends up calling:
set_pte_at(&init_mm, lowmem_vaddr, kmap_ptep, 0);
ie, the vaddr and the ptep bear no relationship to each other. Is this
a bug in kunmap_atomic (it shouldn't try to clear the pte for lowmem
addresses), or should set_pte_at's implementation be able to cope with this.
Certainly at the moment, having mismatched ptep and vaddr makes the
interface useless for Xen, since it will use one or the other depending
on whether we modifying the current pagetable or not, and it assume they
correspond to the same thing.
For now I've changed kunmap_atomic() to only clear the kmap pte for
mapped high page addresses, but I'm wondering what other places might
use set_pte_at in this way.
Also, it would be useful for Xen to have a set_pte_at_sync, which also
does a TLB flush if necessary, since we can do that in a single operation.
J
next reply other threads:[~2006-11-07 19:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-07 19:57 Jeremy Fitzhardinge [this message]
2006-11-07 22:19 ` how set_pte_at()'s vaddr and ptep args relate Zachary Amsden
2006-11-07 22:38 ` Jeremy Fitzhardinge
2006-11-07 23:33 ` Zachary Amsden
2006-11-07 23:42 ` Jeremy Fitzhardinge
2006-11-07 23:59 ` Zachary Amsden
2006-11-08 0:15 ` Jeremy Fitzhardinge
2006-11-08 0:19 ` Zachary Amsden
2006-11-08 8:34 ` Keir Fraser
2006-11-08 19:59 ` Jeremy Fitzhardinge
2006-11-08 20:18 ` Jeremy Fitzhardinge
2006-11-08 23:17 ` Keir Fraser
2006-11-08 23:25 ` Jeremy Fitzhardinge
2006-11-09 8:29 ` Keir Fraser
2006-11-09 9:15 ` Zachary Amsden
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=4550E512.1020706@goop.org \
--to=jeremy@goop.org \
--cc=chrisw@sous-sol.org \
--cc=virtualization@lists.osdl.org \
--cc=zach@vmware.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 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).