Messages in this thread Patch in this message | | | Date | Mon, 27 Dec 2004 14:48:38 -0800 | From | "David S. Miller" <> | Subject | Re: Prezeroing V2 [2/4]: add second parameter to clear_page() for all arches |
| |
On Fri, 24 Dec 2004 09:05:39 -0800 "David S. Miller" <davem@davemloft.net> wrote:
> On Thu, 23 Dec 2004 11:33:59 -0800 (PST) > Christoph Lameter <clameter@sgi.com> wrote: > > > Modification made but it would be good to have some feedback from the arch maintainers: > > > ... > > sparc64 > > I don't see any sparc64 bits in this patch, else I'd > review them :-)
So I found time to implement the missing sparc64 clear_page() changes, here they are:
===== arch/sparc64/lib/clear_page.S 1.1 vs edited ===== --- 1.1/arch/sparc64/lib/clear_page.S 2004-08-08 19:54:07 -07:00 +++ edited/arch/sparc64/lib/clear_page.S 2004-12-24 08:53:29 -08:00 @@ -28,9 +28,12 @@ .text .globl _clear_page -_clear_page: /* %o0=dest */ +_clear_page: /* %o0=dest, %o1=order */ + sethi %hi(PAGE_SIZE/64), %o2 + clr %o4 + or %o2, %lo(PAGE_SIZE/64), %o2 ba,pt %xcc, clear_page_common - clr %o4 + sllx %o2, %o1, %o1 /* This thing is pretty important, it shows up * on the profiles via do_anonymous_page(). @@ -69,16 +72,16 @@ clear_user_page: /* %o0=dest, %o1=vaddr flush %g6 wrpr %o4, 0x0, %pstate + sethi %hi(PAGE_SIZE/64), %o1 mov 1, %o4 + or %o1, %lo(PAGE_SIZE/64), %o1 clear_page_common: VISEntryHalf membar #StoreLoad | #StoreStore | #LoadStore fzero %f0 - sethi %hi(PAGE_SIZE/64), %o1 mov %o0, %g1 ! remember vaddr for tlbflush fzero %f2 - or %o1, %lo(PAGE_SIZE/64), %o1 faddd %f0, %f2, %f4 fmuld %f0, %f2, %f6 faddd %f0, %f2, %f8 ===== include/asm-sparc64/page.h 1.19 vs edited ===== --- 1.19/include/asm-sparc64/page.h 2004-07-27 12:54:49 -07:00 +++ edited/include/asm-sparc64/page.h 2004-12-24 08:52:17 -08:00 @@ -14,8 +14,8 @@ #ifndef __ASSEMBLY__ -extern void _clear_page(void *page); -#define clear_page(X) _clear_page((void *)(X)) +extern void _clear_page(void *page, unsigned long order); +#define clear_page(X,Y) _clear_page((void *)(X),(Y)) struct page; extern void clear_user_page(void *addr, unsigned long vaddr, struct page *page); #define copy_page(X,Y) memcpy((void *)(X), (void *)(Y), PAGE_SIZE) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |