* [PATCH 0/3] x86_64: some minor paging cleanups @ 2007-12-02 13:21 Joerg Roedel 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel ` (2 more replies) 0 siblings, 3 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-02 13:21 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel This small series of patches cleans up the definition and use of the _PAGE_* and __PAGE_KERNEL* permissions for the x86_64 code in the x86 architecture a little bit. ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel @ 2007-12-02 13:21 ` Joerg Roedel 2007-12-04 12:36 ` Ingo Molnar 2007-12-04 12:38 ` Ingo Molnar 2007-12-02 13:21 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel 2007-12-02 13:21 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel 2 siblings, 2 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-02 13:21 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel This patch defines the _PAGE_* paging attributes in pgtable_64.h in terms of the former defined _PAGE_BIT_* values. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- include/asm-x86/pgtable_64.h | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 9b0ff47..9d4f11d 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h @@ -150,19 +150,23 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long #define _PAGE_BIT_ACCESSED 5 #define _PAGE_BIT_DIRTY 6 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ +#define _PAGE_BIT_FILE 6 #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ -#define _PAGE_PRESENT 0x001 -#define _PAGE_RW 0x002 -#define _PAGE_USER 0x004 -#define _PAGE_PWT 0x008 -#define _PAGE_PCD 0x010 -#define _PAGE_ACCESSED 0x020 -#define _PAGE_DIRTY 0x040 -#define _PAGE_PSE 0x080 /* 2MB page */ -#define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; unset:swap */ -#define _PAGE_GLOBAL 0x100 /* Global TLB entry */ +#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) +#define _PAGE_RW (_AC(1,UL)<<_PAGE_BIT_RW) +#define _PAGE_USER (_AC(1,UL)<<_PAGE_BIT_USER) +#define _PAGE_PWT (_AC(1,UL)<<_PAGE_BIT_PWT) +#define _PAGE_PCD (_AC(1,UL)<<_PAGE_BIT_PCD) +#define _PAGE_ACCESSED (_AC(1,UL)<<_PAGE_BIT_ACCESSED) +#define _PAGE_DIRTY (_AC(1,UL)<<_PAGE_BIT_DIRTY) +/* 2MB page */ +#define _PAGE_PSE (_AC(1,UL)<<_PAGE_BIT_PSE) +/* nonlinear file mapping, saved PTE; unset:swap */ +#define _PAGE_FILE (_AC(1,UL)<<_PAGE_BIT_FILE) +/* Global TLB entry */ +#define _PAGE_GLOBAL (_AC(1,UL)<<_PAGE_BIT_GLOBAL) #define _PAGE_PROTNONE 0x080 /* If not present */ #define _PAGE_NX (_AC(1,UL)<<_PAGE_BIT_NX) @@ -248,8 +252,7 @@ static inline unsigned long pmd_bad(pmd_t pmd) #define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE)) #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) -#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this - right? */ +#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this right? */ #define pte_page(x) pfn_to_page(pte_pfn(x)) #define pte_pfn(x) ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT) -- 1.5.2.5 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel @ 2007-12-04 12:36 ` Ingo Molnar 2007-12-04 12:38 ` Ingo Molnar 1 sibling, 0 replies; 18+ messages in thread From: Ingo Molnar @ 2007-12-04 12:36 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > This patch defines the _PAGE_* paging attributes in pgtable_64.h in > terms of the former defined _PAGE_BIT_* values. thanks, applied to x86.git. Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel 2007-12-04 12:36 ` Ingo Molnar @ 2007-12-04 12:38 ` Ingo Molnar 2007-12-04 15:06 ` Joerg Roedel 1 sibling, 1 reply; 18+ messages in thread From: Ingo Molnar @ 2007-12-04 12:38 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > +#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) please run patches through scripts/checkpatch.pl, it gives: total: 10 errors, 0 warnings, 42 lines checked (please send a followup cleanup patch - i picked up your series and this is a minor cleanliness issue) Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-04 12:38 ` Ingo Molnar @ 2007-12-04 15:06 ` Joerg Roedel 2007-12-04 21:07 ` Ingo Molnar 0 siblings, 1 reply; 18+ messages in thread From: Joerg Roedel @ 2007-12-04 15:06 UTC (permalink / raw) To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote: > > * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > +#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) > > please run patches through scripts/checkpatch.pl, it gives: > > total: 10 errors, 0 warnings, 42 lines checked > > (please send a followup cleanup patch - i picked up your series and this > is a minor cleanliness issue) Sorry, forgot to check the patches before submission. Will cleanup and resubmit soon. Joerg -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-04 15:06 ` Joerg Roedel @ 2007-12-04 21:07 ` Ingo Molnar 2007-12-05 10:52 ` Joerg Roedel 0 siblings, 1 reply; 18+ messages in thread From: Ingo Molnar @ 2007-12-04 21:07 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote: > > > > * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > > +#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) > > > > please run patches through scripts/checkpatch.pl, it gives: > > > > total: 10 errors, 0 warnings, 42 lines checked > > > > (please send a followup cleanup patch - i picked up your series and this > > is a minor cleanliness issue) > > Sorry, forgot to check the patches before submission. Will cleanup and > resubmit soon. please if possible send a delta against x86.git, not a replacement patch. It's easier for the patchflow. Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-04 21:07 ` Ingo Molnar @ 2007-12-05 10:52 ` Joerg Roedel 2007-12-05 11:27 ` Ingo Molnar 0 siblings, 1 reply; 18+ messages in thread From: Joerg Roedel @ 2007-12-05 10:52 UTC (permalink / raw) To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel On Tue, Dec 04, 2007 at 10:07:54PM +0100, Ingo Molnar wrote: > > * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote: > > > > > > * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > > > > +#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) > > > > > > please run patches through scripts/checkpatch.pl, it gives: > > > > > > total: 10 errors, 0 warnings, 42 lines checked > > > > > > (please send a followup cleanup patch - i picked up your series and this > > > is a minor cleanliness issue) > > > > Sorry, forgot to check the patches before submission. Will cleanup and > > resubmit soon. > > please if possible send a delta against x86.git, not a replacement > patch. It's easier for the patchflow. Not sure I understand you right here. Do you mean a patch on top of my previous patches? -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-05 10:52 ` Joerg Roedel @ 2007-12-05 11:27 ` Ingo Molnar 2007-12-05 11:42 ` Joerg Roedel 0 siblings, 1 reply; 18+ messages in thread From: Ingo Molnar @ 2007-12-05 11:27 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > please run patches through scripts/checkpatch.pl, it gives: > > > > > > > > total: 10 errors, 0 warnings, 42 lines checked > > > > > > > > (please send a followup cleanup patch - i picked up your series and this > > > > is a minor cleanliness issue) > > > > > > Sorry, forgot to check the patches before submission. Will cleanup and > > > resubmit soon. > > > > please if possible send a delta against x86.git, not a replacement > > patch. It's easier for the patchflow. > > Not sure I understand you right here. Do you mean a patch on top of my > previous patches? yeah - that's easier to pick up for me (because i've already got your series applied), and it's also easier for you as well. It also makes sense to generally split style fixes from substantial patches. (in the cases where there are pre-existing style problems in the code) Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-05 11:27 ` Ingo Molnar @ 2007-12-05 11:42 ` Joerg Roedel 2007-12-05 12:30 ` Ingo Molnar 0 siblings, 1 reply; 18+ messages in thread From: Joerg Roedel @ 2007-12-05 11:42 UTC (permalink / raw) To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel On Wed, Dec 05, 2007 at 12:27:58PM +0100, Ingo Molnar wrote: > > * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > > > please run patches through scripts/checkpatch.pl, it gives: > > > > > > > > > > total: 10 errors, 0 warnings, 42 lines checked > > > > > > > > > > (please send a followup cleanup patch - i picked up your series and this > > > > > is a minor cleanliness issue) > > > > > > > > Sorry, forgot to check the patches before submission. Will cleanup and > > > > resubmit soon. > > > > > > please if possible send a delta against x86.git, not a replacement > > > patch. It's easier for the patchflow. > > > > Not sure I understand you right here. Do you mean a patch on top of my > > previous patches? > > yeah - that's easier to pick up for me (because i've already got your > series applied), and it's also easier for you as well. It also makes > sense to generally split style fixes from substantial patches. (in the > cases where there are pre-existing style problems in the code) Ok, thanks. Will prepare a patch on top of my first patch series. -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-05 11:42 ` Joerg Roedel @ 2007-12-05 12:30 ` Ingo Molnar 2007-12-05 14:40 ` [PATCH] x86_64: some whitespace cleanups in paging code Joerg Roedel 0 siblings, 1 reply; 18+ messages in thread From: Ingo Molnar @ 2007-12-05 12:30 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > > Sorry, forgot to check the patches before submission. Will > > > > > cleanup and resubmit soon. > > > > > > > > please if possible send a delta against x86.git, not a > > > > replacement patch. It's easier for the patchflow. > > > > > > Not sure I understand you right here. Do you mean a patch on top > > > of my previous patches? > > > > yeah - that's easier to pick up for me (because i've already got > > your series applied), and it's also easier for you as well. It also > > makes sense to generally split style fixes from substantial patches. > > (in the cases where there are pre-existing style problems in the > > code) > > Ok, thanks. Will prepare a patch on top of my first patch series. it's all in the mm branch of x86.git: git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6.git cd linux-2.6.git git-branch x86 # (1) git-checkout x86 git-pull git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git mm so the easiest is to do patches just against that tree. NOTE: the x86.git tree is frequently regenerated, so it can not be rolling upgraded the usual git way via typing 'git-pull' - you have to zap your x86 branch and re-pull: git-checkout master git-branch -D x86 # this zaps everything! and repeat from (1) above. Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH] x86_64: some whitespace cleanups in paging code 2007-12-05 12:30 ` Ingo Molnar @ 2007-12-05 14:40 ` Joerg Roedel 2007-12-05 14:51 ` Ingo Molnar 2007-12-05 16:37 ` Heiko Carstens 0 siblings, 2 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-05 14:40 UTC (permalink / raw) To: mingo, tglx, hpa; +Cc: linux-kernel, Joerg Roedel This patch does some whitespace cleanups in the paging code to fix some checkpatch.pl warnings of my formerly merged cleanup patches. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- arch/x86/mm/init_64.c | 2 +- include/asm-x86/pgtable_64.h | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index cfb357c..baef0d1 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -226,7 +226,7 @@ __meminit void *early_ioremap(unsigned long addr, unsigned long size) vaddr += addr & ~PMD_MASK; addr &= PMD_MASK; for (i = 0; i < pmds; i++, addr += PMD_SIZE) - set_pmd(pmd + i,__pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); + set_pmd(pmd+i, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); __flush_tlb(); return (void *)vaddr; next: diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 9d4f11d..687eaa6 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h @@ -154,22 +154,22 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ -#define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) -#define _PAGE_RW (_AC(1,UL)<<_PAGE_BIT_RW) -#define _PAGE_USER (_AC(1,UL)<<_PAGE_BIT_USER) -#define _PAGE_PWT (_AC(1,UL)<<_PAGE_BIT_PWT) -#define _PAGE_PCD (_AC(1,UL)<<_PAGE_BIT_PCD) -#define _PAGE_ACCESSED (_AC(1,UL)<<_PAGE_BIT_ACCESSED) -#define _PAGE_DIRTY (_AC(1,UL)<<_PAGE_BIT_DIRTY) +#define _PAGE_PRESENT (_AC(1, UL)<<_PAGE_BIT_PRESENT) +#define _PAGE_RW (_AC(1, UL)<<_PAGE_BIT_RW) +#define _PAGE_USER (_AC(1, UL)<<_PAGE_BIT_USER) +#define _PAGE_PWT (_AC(1, UL)<<_PAGE_BIT_PWT) +#define _PAGE_PCD (_AC(1, UL)<<_PAGE_BIT_PCD) +#define _PAGE_ACCESSED (_AC(1, UL)<<_PAGE_BIT_ACCESSED) +#define _PAGE_DIRTY (_AC(1, UL)<<_PAGE_BIT_DIRTY) /* 2MB page */ -#define _PAGE_PSE (_AC(1,UL)<<_PAGE_BIT_PSE) +#define _PAGE_PSE (_AC(1, UL)<<_PAGE_BIT_PSE) /* nonlinear file mapping, saved PTE; unset:swap */ -#define _PAGE_FILE (_AC(1,UL)<<_PAGE_BIT_FILE) +#define _PAGE_FILE (_AC(1, UL)<<_PAGE_BIT_FILE) /* Global TLB entry */ -#define _PAGE_GLOBAL (_AC(1,UL)<<_PAGE_BIT_GLOBAL) +#define _PAGE_GLOBAL (_AC(1, UL)<<_PAGE_BIT_GLOBAL) #define _PAGE_PROTNONE 0x080 /* If not present */ -#define _PAGE_NX (_AC(1,UL)<<_PAGE_BIT_NX) +#define _PAGE_NX (_AC(1, UL)<<_PAGE_BIT_NX) #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY) #define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY) -- 1.5.2.5 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH] x86_64: some whitespace cleanups in paging code 2007-12-05 14:40 ` [PATCH] x86_64: some whitespace cleanups in paging code Joerg Roedel @ 2007-12-05 14:51 ` Ingo Molnar 2007-12-05 16:37 ` Heiko Carstens 1 sibling, 0 replies; 18+ messages in thread From: Ingo Molnar @ 2007-12-05 14:51 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel * Joerg Roedel <joerg.roedel@amd.com> wrote: > This patch does some whitespace cleanups in the paging code to fix > some checkpatch.pl warnings of my formerly merged cleanup patches. thanks, applied. btw., if there's any file you are particularly interested in cleaning up as a whole, you can use the --file option: scripts/checkpatch.pl --file include/asm-x86/pgtable_64.h there's no hard policy on whether cleanups should be done pre-unification or post-unification. I've been using the following pretty sensible 3-step path when doing manual unifications: - clean up the _32 and _64 file first (this is also easy to check - the resulting .o or vmlinux must not differ with/without the patch) - remove artificial differences (in a separate patch) - do the unification (in a third patch) the general rule, more patches are better than fewer patches. Most of our testing/bisetion infrastructure is per-patch/per-commit, so if some mistake happens (and mistakes happen all the time), the finer grained approach is always easier to sort out. Ingo ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] x86_64: some whitespace cleanups in paging code 2007-12-05 14:40 ` [PATCH] x86_64: some whitespace cleanups in paging code Joerg Roedel 2007-12-05 14:51 ` Ingo Molnar @ 2007-12-05 16:37 ` Heiko Carstens 2007-12-05 17:24 ` Joerg Roedel 1 sibling, 1 reply; 18+ messages in thread From: Heiko Carstens @ 2007-12-05 16:37 UTC (permalink / raw) To: Joerg Roedel; +Cc: mingo, tglx, hpa, linux-kernel, Andy Whitcroft On Wed, Dec 05, 2007 at 03:40:12PM +0100, Joerg Roedel wrote: > This patch does some whitespace cleanups in the paging code to fix some > checkpatch.pl warnings of my formerly merged cleanup patches. >... > - set_pmd(pmd + i,__pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); > + set_pmd(pmd+i, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); Did checkpatch enforce you to remove the spaces around '+'? I thought there was/is a common consensus that having spaces around operators is a good thing to have. IMHO it's much more readable... But anyway, it's not that I want to start a new thread about coding style :) ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] x86_64: some whitespace cleanups in paging code 2007-12-05 16:37 ` Heiko Carstens @ 2007-12-05 17:24 ` Joerg Roedel 0 siblings, 0 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-05 17:24 UTC (permalink / raw) To: Heiko Carstens; +Cc: mingo, tglx, hpa, linux-kernel, Andy Whitcroft On Wed, Dec 05, 2007 at 05:37:24PM +0100, Heiko Carstens wrote: > On Wed, Dec 05, 2007 at 03:40:12PM +0100, Joerg Roedel wrote: > > This patch does some whitespace cleanups in the paging code to fix some > > checkpatch.pl warnings of my formerly merged cleanup patches. > >... > > - set_pmd(pmd + i,__pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); > > + set_pmd(pmd+i, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); > > Did checkpatch enforce you to remove the spaces around '+'? I thought > there was/is a common consensus that having spaces around operators is a good > thing to have. IMHO it's much more readable... > But anyway, it's not that I want to start a new thread about coding style :) Checkpatch complained about a missing space after the comma. After I added one it complained about a line longer than 80 characters. But luckily it didn't complain about missing spaces around the plus sign ;) -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization 2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel @ 2007-12-02 13:21 ` Joerg Roedel 2007-12-02 13:21 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel 2 siblings, 0 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-02 13:21 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel This minor cleanup replaces _KERNPG_TABLE with the __PAGE_KERNEL* for 2MB PTEs in the x86_64 memory initialization code. The __PAGE_KERNEL* defines are more appropriate for PTEs. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- arch/x86/mm/init_64.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 0f9c8c8..8db7348 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -224,7 +224,7 @@ __meminit void *early_ioremap(unsigned long addr, unsigned long size) vaddr += addr & ~PMD_MASK; addr &= PMD_MASK; for (i = 0; i < pmds; i++, addr += PMD_SIZE) - set_pmd(pmd + i,__pmd(addr | _KERNPG_TABLE | _PAGE_PSE)); + set_pmd(pmd + i,__pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); __flush_tlb(); return (void *)vaddr; next: @@ -268,7 +268,7 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end) if (pmd_val(*pmd)) continue; - entry = _PAGE_NX|_PAGE_PSE|_KERNPG_TABLE|_PAGE_GLOBAL|address; + entry = __PAGE_KERNEL_LARGE|_PAGE_GLOBAL|address; entry &= __supported_pte_mask; set_pmd(pmd, __pmd(entry)); } -- 1.5.2.5 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c 2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel 2007-12-02 13:21 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel @ 2007-12-02 13:21 ` Joerg Roedel 2 siblings, 0 replies; 18+ messages in thread From: Joerg Roedel @ 2007-12-02 13:21 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel This patch replaces the manual permission setup for pages in ioremap_64.c with the pre-defined __PAGE_KERNEL_EXEC value. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- arch/x86/mm/ioremap_64.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/ioremap_64.c b/arch/x86/mm/ioremap_64.c index 6cac90a..9a67fc6 100644 --- a/arch/x86/mm/ioremap_64.c +++ b/arch/x86/mm/ioremap_64.c @@ -103,8 +103,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l } #endif - pgprot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_GLOBAL - | _PAGE_DIRTY | _PAGE_ACCESSED | flags); + pgprot = __pgprot(__PAGE_KERNEL_EXEC | _PAGE_GLOBAL | flags); /* * Mappings have to be page-aligned */ -- 1.5.2.5 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 0/3] x86_64: some minor paging cleanups @ 2007-12-04 15:23 Joerg Roedel 2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel 0 siblings, 1 reply; 18+ messages in thread From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel This small series of patches cleans up the definition and use of the _PAGE_* and __PAGE_KERNEL* permissions for the x86_64 code in the x86 architecture a little bit. The scripts are checked by checkpatch.pl now. ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel @ 2007-12-04 15:23 ` Joerg Roedel 2007-12-04 18:20 ` Dave Hansen 0 siblings, 1 reply; 18+ messages in thread From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw) To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel This patch defines the _PAGE_* paging attributes in pgtable_64.h in terms of the former defined _PAGE_BIT_* values. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- include/asm-x86/pgtable_64.h | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 9b0ff47..9d4f11d 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h @@ -150,19 +150,23 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long #define _PAGE_BIT_ACCESSED 5 #define _PAGE_BIT_DIRTY 6 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ +#define _PAGE_BIT_FILE 6 #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ -#define _PAGE_PRESENT 0x001 -#define _PAGE_RW 0x002 -#define _PAGE_USER 0x004 -#define _PAGE_PWT 0x008 -#define _PAGE_PCD 0x010 -#define _PAGE_ACCESSED 0x020 -#define _PAGE_DIRTY 0x040 -#define _PAGE_PSE 0x080 /* 2MB page */ -#define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; unset:swap */ -#define _PAGE_GLOBAL 0x100 /* Global TLB entry */ +#define _PAGE_PRESENT (_AC(1, UL)<<_PAGE_BIT_PRESENT) +#define _PAGE_RW (_AC(1, UL)<<_PAGE_BIT_RW) +#define _PAGE_USER (_AC(1, UL)<<_PAGE_BIT_USER) +#define _PAGE_PWT (_AC(1, UL)<<_PAGE_BIT_PWT) +#define _PAGE_PCD (_AC(1, UL)<<_PAGE_BIT_PCD) +#define _PAGE_ACCESSED (_AC(1, UL)<<_PAGE_BIT_ACCESSED) +#define _PAGE_DIRTY (_AC(1, UL)<<_PAGE_BIT_DIRTY) +/* 2MB page */ +#define _PAGE_PSE (_AC(1, UL)<<_PAGE_BIT_PSE) +/* nonlinear file mapping, saved PTE; unset:swap */ +#define _PAGE_FILE (_AC(1, UL)<<_PAGE_BIT_FILE) +/* Global TLB entry */ +#define _PAGE_GLOBAL (_AC(1, UL)<<_PAGE_BIT_GLOBAL) #define _PAGE_PROTNONE 0x080 /* If not present */ #define _PAGE_NX (_AC(1,UL)<<_PAGE_BIT_NX) @@ -248,8 +252,7 @@ static inline unsigned long pmd_bad(pmd_t pmd) #define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE)) #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) -#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this - right? */ +#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this right? */ #define pte_page(x) pfn_to_page(pte_pfn(x)) #define pte_pfn(x) ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT) -- 1.5.2.5 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* 2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel @ 2007-12-04 18:20 ` Dave Hansen 0 siblings, 0 replies; 18+ messages in thread From: Dave Hansen @ 2007-12-04 18:20 UTC (permalink / raw) To: Joerg Roedel; +Cc: tglx, mingo, hpa, linux-kernel On Tue, 2007-12-04 at 16:23 +0100, Joerg Roedel wrote: > > -#define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; > unset:swap */ > -#define _PAGE_GLOBAL 0x100 /* Global TLB entry */ > +#define _PAGE_PRESENT (_AC(1, UL)<<_PAGE_BIT_PRESENT) > +#define _PAGE_RW (_AC(1, UL)<<_PAGE_BIT_RW) > +#define _PAGE_USER (_AC(1, UL)<<_PAGE_BIT_USER) > +#define _PAGE_PWT (_AC(1, UL)<<_PAGE_BIT_PWT) > +#define _PAGE_PCD (_AC(1, UL)<<_PAGE_BIT_PCD) > +#define _PAGE_ACCESSED (_AC(1, UL)<<_PAGE_BIT_ACCESSED) > +#define _PAGE_DIRTY (_AC(1, UL)<<_PAGE_BIT_DIRTY) > +/* 2MB page */ > +#define _PAGE_PSE (_AC(1, UL)<<_PAGE_BIT_PSE) > +/* nonlinear file mapping, saved PTE; unset:swap */ > +#define _PAGE_FILE (_AC(1, UL)<<_PAGE_BIT_FILE) > +/* Global TLB entry */ > +#define _PAGE_GLOBAL (_AC(1, UL)<<_PAGE_BIT_GLOBAL) Since you're defining these as macros anyway now and doing it repetitively, could you make them a wee bit prettier? Say something like: #define _PAGE_MASK(x) (_AC(1, UL)<<(x)) -- Dave ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2007-12-05 17:28 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel 2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel 2007-12-04 12:36 ` Ingo Molnar 2007-12-04 12:38 ` Ingo Molnar 2007-12-04 15:06 ` Joerg Roedel 2007-12-04 21:07 ` Ingo Molnar 2007-12-05 10:52 ` Joerg Roedel 2007-12-05 11:27 ` Ingo Molnar 2007-12-05 11:42 ` Joerg Roedel 2007-12-05 12:30 ` Ingo Molnar 2007-12-05 14:40 ` [PATCH] x86_64: some whitespace cleanups in paging code Joerg Roedel 2007-12-05 14:51 ` Ingo Molnar 2007-12-05 16:37 ` Heiko Carstens 2007-12-05 17:24 ` Joerg Roedel 2007-12-02 13:21 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel 2007-12-02 13:21 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel 2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel 2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel 2007-12-04 18:20 ` Dave Hansen
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).