LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu> To: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Andi Kleen <ak@muc.de>, Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org, virtualization@lists.osdl.org, xen-devel@lists.xensource.com, Chris Wright <chrisw@sous-sol.org>, Zachary Amsden <zach@vmware.com>, Rusty Russell <rusty@rustcorp.com.au> Subject: Re: [patch 04/26] Xen-paravirt_ops: Add pagetable accessors to pack and unpack pagetable entries Date: Fri, 16 Mar 2007 10:38:44 +0100 [thread overview] Message-ID: <20070316093844.GT23174@elte.hu> (raw) In-Reply-To: <20070301232526.502172500@goop.org> * Jeremy Fitzhardinge <jeremy@goop.org> wrote: > Add a set of accessors to pack, unpack and modify page table entries > (at all levels). This allows a paravirt implementation to control the > contents of pgd/pmd/pte entries. For example, Xen uses this to > convert the (pseudo-)physical address into a machine address when > populating a pagetable entry, and converting back to pphys address > when an entry is read. looks good. Acked-by: Ingo Molnar <mingo@elte.hu> only some minor style nits: > +static inline unsigned long long native_pgd_val(pgd_t pgd) > +{ > + return pgd.pgd; > +} > +static inline unsigned long long native_pmd_val(pmd_t pmd) > +{ > + return pmd.pmd; > +} > +static inline unsigned long long native_pte_val(pte_t pte) > +{ > + return pte.pte_low | ((unsigned long long)pte.pte_high << 32); > +} > +static inline pgd_t native_make_pgd(unsigned long long val) > +{ > + return (pgd_t) { val }; > +} > +static inline pmd_t native_make_pmd(unsigned long long val) > +{ > + return (pmd_t) { val }; > +} > +static inline pte_t native_make_pte(unsigned long long val) > +{ > + return (pte_t) { .pte_low = val, .pte_high = (val >> 32) } ; > +} missing newlines between inline functions. > +#ifndef CONFIG_PARAVIRT > +#define pmd_val(x) native_pmd_val(x) > +#define __pmd(x) native_make_pmd(x) > +#endif /* !CONFIG_PARAVIRT */ no need for the closing !CONFIG_PARAVIRT comment: this define is 2 lines long so it's not that hard to find the start of the block. We typically do the /* !CONFIG_XX */ comment only for larger blocks, and when multiple #endif's intermix. > +static inline unsigned long native_pgd_val(pgd_t pgd) > +{ > + return pgd.pgd; > +} > +static inline unsigned long native_pte_val(pte_t pte) > +{ > + return pte.pte_low; > +} > +static inline pgd_t native_make_pgd(unsigned long val) > +{ > + return (pgd_t) { val }; > +} > +static inline pte_t native_make_pte(unsigned long val) > +{ > + return (pte_t) { .pte_low = val }; > +} newlines. > #define HPAGE_SHIFT 22 > #include <asm-generic/pgtable-nopmd.h> > -#endif > +#endif /* CONFIG_X86_PAE */ (for example here the #endif comment is justified.) Ingo
next prev parent reply other threads:[~2007-03-16 9:39 UTC|newest] Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-03-01 23:24 [patch 00/26] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 01/26] Xen-paravirt_ops: Fix typo in sync_constant_test_bit()s name Jeremy Fitzhardinge 2007-03-16 9:45 ` Ingo Molnar 2007-03-01 23:24 ` [patch 02/26] Xen-paravirt_ops: ignore vgacon if hardware not present Jeremy Fitzhardinge 2007-03-16 9:45 ` Ingo Molnar 2007-03-01 23:24 ` [patch 03/26] Xen-paravirt_ops: use paravirt_nop to consistently mark no-op operations Jeremy Fitzhardinge 2007-03-16 9:44 ` Ingo Molnar 2007-03-16 18:43 ` Jeremy Fitzhardinge 2007-03-16 19:49 ` Chris Wright 2007-03-16 20:00 ` Jeremy Fitzhardinge 2007-03-16 21:59 ` Chris Wright 2007-03-16 22:10 ` Jeremy Fitzhardinge 2007-03-16 22:18 ` Chris Wright 2007-03-01 23:24 ` [patch 04/26] Xen-paravirt_ops: Add pagetable accessors to pack and unpack pagetable entries Jeremy Fitzhardinge 2007-03-16 9:38 ` Ingo Molnar [this message] 2007-03-16 18:42 ` Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 05/26] Xen-paravirt_ops: paravirt_ops: hooks to set up initial pagetable Jeremy Fitzhardinge 2007-03-16 9:33 ` Ingo Molnar 2007-03-16 18:39 ` Jeremy Fitzhardinge 2007-03-16 19:35 ` Steven Rostedt 2007-03-17 9:47 ` Rusty Russell 2007-03-01 23:24 ` [patch 06/26] Xen-paravirt_ops: paravirt_ops: allocate a fixmap slot Jeremy Fitzhardinge 2007-03-16 9:31 ` Ingo Molnar 2007-03-01 23:24 ` [patch 07/26] Xen-paravirt_ops: Allow paravirt backend to choose kernel PMD sharing Jeremy Fitzhardinge 2007-03-16 9:31 ` Ingo Molnar 2007-03-01 23:24 ` [patch 08/26] Xen-paravirt_ops: add hooks to intercept mm creation and destruction Jeremy Fitzhardinge 2007-03-16 9:30 ` Ingo Molnar 2007-03-16 17:38 ` Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations Jeremy Fitzhardinge 2007-03-16 9:27 ` Ingo Molnar 2007-03-01 23:24 ` [patch 10/26] Xen-paravirt_ops: rename struct paravirt_patch to paravirt_patch_site for clarity Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 11/26] Xen-paravirt_ops: Use patch site IDs computed from offset in paravirt_ops structure Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 12/26] Xen-paravirt_ops: Fix patch site clobbers to include return register Jeremy Fitzhardinge 2007-03-02 0:45 ` Zachary Amsden 2007-03-02 0:49 ` Jeremy Fitzhardinge 2007-03-02 0:52 ` Zachary Amsden 2007-03-02 0:58 ` Jeremy Fitzhardinge 2007-03-02 1:18 ` Zachary Amsden 2007-03-16 9:26 ` Ingo Molnar 2007-03-16 17:37 ` Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable Jeremy Fitzhardinge 2007-03-16 9:24 ` Ingo Molnar 2007-03-16 9:33 ` David Miller 2007-03-16 9:57 ` Ingo Molnar 2007-03-16 19:16 ` Jeremy Fitzhardinge 2007-03-16 20:38 ` Jeremy Fitzhardinge 2007-03-17 10:33 ` Rusty Russell 2007-03-18 7:33 ` David Miller 2007-03-18 7:59 ` Jeremy Fitzhardinge 2007-03-18 12:08 ` Andi Kleen 2007-03-18 15:58 ` Jeremy Fitzhardinge 2007-03-18 17:04 ` Andi Kleen 2007-03-18 17:29 ` Jeremy Fitzhardinge 2007-03-18 19:30 ` Andi Kleen 2007-03-18 23:46 ` Jeremy Fitzhardinge 2007-03-19 10:57 ` Andi Kleen 2007-03-19 17:58 ` Jeremy Fitzhardinge 2007-03-19 19:08 ` David Miller 2007-03-19 20:59 ` Andi Kleen 2007-03-19 21:55 ` [PATCH] x86_64 : Suppress __jiffies Eric Dumazet 2007-03-20 3:18 ` [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable Linus Torvalds 2007-03-20 3:47 ` David Miller 2007-03-20 4:19 ` Eric W. Biederman 2007-03-20 13:28 ` Andi Kleen 2007-03-20 16:25 ` Eric W. Biederman 2007-03-20 17:42 ` Andi Kleen 2007-03-20 16:52 ` Linus Torvalds 2007-03-20 18:03 ` Andi Kleen 2007-03-20 17:27 ` Linus Torvalds 2007-03-20 19:21 ` Andi Kleen 2007-03-20 18:49 ` Linus Torvalds 2007-03-20 20:23 ` Andi Kleen 2007-03-20 21:39 ` [Xen-devel] " Alan Cox 2007-03-20 21:49 ` Andi Kleen 2007-03-20 23:51 ` Linus Torvalds 2007-03-20 23:43 ` Linus Torvalds 2007-03-21 6:08 ` Andrew Morton 2007-03-20 16:12 ` Chuck Ebbert 2007-03-20 1:23 ` Zachary Amsden 2007-03-20 1:45 ` Jeremy Fitzhardinge 2007-03-19 2:47 ` Rusty Russell 2007-03-19 18:25 ` Eric W. Biederman 2007-03-19 18:38 ` Linus Torvalds 2007-03-19 18:44 ` Linus Torvalds 2007-03-19 19:33 ` Jeremy Fitzhardinge 2007-03-20 0:01 ` Rusty Russell 2007-03-20 2:00 ` Zachary Amsden 2007-03-20 4:20 ` Rusty Russell 2007-03-20 5:54 ` Jeremy Fitzhardinge 2007-03-20 11:33 ` Andreas Kleen 2007-03-20 15:09 ` Linus Torvalds 2007-03-20 15:58 ` Eric W. Biederman 2007-03-20 16:06 ` Linus Torvalds 2007-03-20 16:31 ` Jeremy Fitzhardinge 2007-03-20 22:09 ` Zachary Amsden 2007-03-21 0:24 ` Linus Torvalds 2007-03-21 2:53 ` Zachary Amsden 2007-03-21 2:15 ` Linus Torvalds 2007-03-21 3:43 ` Zachary Amsden 2007-03-20 22:43 ` Matt Mackall 2007-03-20 23:08 ` Zachary Amsden 2007-03-20 23:33 ` Jeremy Fitzhardinge 2007-03-21 1:14 ` Zachary Amsden 2007-03-20 23:41 ` Matt Mackall 2007-03-21 0:20 ` Jeremy Fitzhardinge 2007-03-20 19:28 ` Andi Kleen 2007-03-20 19:54 ` Zachary Amsden 2007-03-20 20:02 ` Andi Kleen 2007-03-20 16:26 ` Jeremy Fitzhardinge 2007-03-20 22:41 ` Rusty Russell 2007-03-20 17:00 ` Ingo Molnar 2007-03-21 0:03 ` Paul Mackerras 2007-04-12 23:16 ` David Miller 2007-03-19 18:41 ` Chris Wright 2007-03-19 19:10 ` Jeremy Fitzhardinge 2007-03-19 19:46 ` David Miller 2007-03-19 20:06 ` Jeremy Fitzhardinge 2007-03-19 23:42 ` Andi Kleen 2007-03-16 17:36 ` Jeremy Fitzhardinge 2007-03-16 23:29 ` Zachary Amsden 2007-03-17 0:40 ` Jeremy Fitzhardinge 2007-03-17 9:10 ` Zachary Amsden 2007-03-17 9:26 ` [Xen-devel] " Rusty Russell 2007-03-01 23:24 ` [patch 14/26] Xen-paravirt_ops: add common patching machinery Jeremy Fitzhardinge 2007-03-16 9:20 ` Ingo Molnar 2007-03-17 9:15 ` Rusty Russell 2007-03-01 23:24 ` [patch 15/26] Xen-paravirt_ops: Add apply_to_page_range() which applies a function to a pte range Jeremy Fitzhardinge 2007-03-16 9:19 ` Ingo Molnar 2007-03-16 16:47 ` Chris Wright 2007-03-16 17:08 ` Jeremy Fitzhardinge 2007-03-01 23:24 ` [patch 16/26] Xen-paravirt_ops: Allocate and free vmalloc areas Jeremy Fitzhardinge 2007-03-16 9:16 ` Ingo Molnar 2007-03-16 17:05 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 17/26] Xen-paravirt_ops: Add nosegneg capability to the vsyscall page notes Jeremy Fitzhardinge 2007-03-16 9:15 ` Ingo Molnar 2007-03-16 21:26 ` Roland McGrath 2007-03-16 21:56 ` Jeremy Fitzhardinge 2007-03-16 22:20 ` Roland McGrath 2007-03-01 23:25 ` [patch 18/26] Xen-paravirt_ops: Add XEN config options Jeremy Fitzhardinge 2007-03-16 9:14 ` Ingo Molnar 2007-03-16 17:04 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 20/26] Xen-paravirt_ops: Core Xen implementation Jeremy Fitzhardinge 2007-03-16 9:14 ` Ingo Molnar 2007-03-16 12:00 ` Christoph Hellwig 2007-03-16 16:33 ` Chris Wright 2007-03-16 16:44 ` Jeremy Fitzhardinge 2007-03-16 16:57 ` Chris Wright 2007-03-16 17:12 ` Chris Wright 2007-03-19 18:05 ` Eric W. Biederman 2007-03-19 18:13 ` Jeremy Fitzhardinge 2007-03-19 18:15 ` Chris Wright 2007-03-17 9:13 ` [Xen-devel] " Rusty Russell 2007-03-18 7:03 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 21/26] Xen-paravirt_ops: Use the hvc console infrastructure for Xen console Jeremy Fitzhardinge 2007-03-16 8:54 ` Ingo Molnar [not found] ` <C22013C9.B9E6%keir@xensource.com> 2007-03-16 9:58 ` [Xen-devel] " Ingo Molnar 2007-03-16 10:31 ` Keir Fraser 2007-03-16 11:41 ` Andrew Morton 2007-03-16 11:58 ` Keir Fraser 2007-03-16 19:01 ` Huang2, Wei 2007-03-16 17:02 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 22/26] Xen-paravirt_ops: Add early printk support via hvc console Jeremy Fitzhardinge 2007-03-16 8:52 ` Ingo Molnar 2007-03-01 23:25 ` [patch 23/26] Xen-paravirt_ops: Add Xen grant table support Jeremy Fitzhardinge 2007-03-16 8:51 ` Ingo Molnar 2007-03-16 17:00 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 24/26] Xen-paravirt_ops: Add the Xenbus sysfs and virtual device hotplug driver Jeremy Fitzhardinge 2007-03-16 8:47 ` Ingo Molnar 2007-03-16 16:18 ` Chris Wright 2007-03-16 16:19 ` Ingo Molnar 2007-03-16 16:40 ` Chris Wright 2007-03-16 17:53 ` Greg KH 2007-03-16 16:57 ` Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 25/26] Xen-paravirt_ops: Add Xen virtual block device driver Jeremy Fitzhardinge 2007-03-01 23:25 ` [patch 26/26] Xen-paravirt_ops: Add the Xen virtual network " Jeremy Fitzhardinge 2007-03-02 0:42 ` Stephen Hemminger 2007-03-02 0:56 ` Jeremy Fitzhardinge 2007-03-02 1:30 ` [RFC] Arp announce (for Xen) Stephen Hemminger 2007-03-02 8:46 ` Keir Fraser 2007-03-02 12:54 ` Andi Kleen 2007-03-02 14:08 ` jamal 2007-03-02 18:08 ` Chris Wright 2007-03-06 4:35 ` David Miller 2007-03-06 18:51 ` [RFC] ARP notify option Stephen Hemminger 2007-03-06 19:04 ` Jeremy Fitzhardinge 2007-03-06 19:07 ` Chris Wright 2007-03-06 21:18 ` Chris Friesen 2007-03-06 22:52 ` Stephen Hemminger 2007-03-07 6:42 ` Pekka Savola 2007-03-07 17:00 ` Stephen Hemminger 2007-03-02 1:21 ` [patch 26/26] Xen-paravirt_ops: Add the Xen virtual network device driver Christoph Hellwig 2007-03-02 1:26 ` Chris Wright 2007-03-16 8:42 ` [patch 00/26] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface Ingo Molnar 2007-03-16 16:55 ` Jeremy Fitzhardinge 2007-03-16 9:21 ` Ingo Molnar 2007-03-16 17:26 ` Jeremy Fitzhardinge 2007-03-16 18:59 ` Christoph Hellwig 2007-03-16 19:26 ` Jeremy Fitzhardinge -- strict thread matches above, loose matches on Subject: below -- 2007-02-27 8:13 Jeremy Fitzhardinge 2007-02-27 8:13 ` [patch 04/26] Xen-paravirt_ops: Add pagetable accessors to pack and unpack pagetable entries Jeremy Fitzhardinge 2007-02-27 10:08 ` Ingo Molnar 2007-02-27 18:52 ` Jeremy Fitzhardinge 2007-02-28 8:32 ` Ingo Molnar 2007-02-28 20:12 ` Jeremy Fitzhardinge 2007-02-28 21:02 ` Rusty Russell
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=20070316093844.GT23174@elte.hu \ --to=mingo@elte.hu \ --cc=ak@muc.de \ --cc=akpm@linux-foundation.org \ --cc=chrisw@sous-sol.org \ --cc=jeremy@goop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rusty@rustcorp.com.au \ --cc=virtualization@lists.osdl.org \ --cc=xen-devel@lists.xensource.com \ --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: linkBe 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).