Thread (4 messages) flat view 4 messages, 2 authors, 2005-01-04

Re: dcbz not used on ppc64?

From: Anton Blanchard <hidden>
Date: 2005-01-03 22:58:22

 
Hi,
I ran into some issues with the use of the dcbz instruction in the 
kernel for ppc32.  I'm now looking at porting our work to ppc64, and 
when I looked around a bit, I found that the dcbz instruction doesn't 
appear to be used in ppc64.

This leads me to ask:

1) Is it in fact true that ppc64 does not use dcbz in the kernel?
2) If so, why not?  Presumably it would be a win in some cases, 
otherwise they wouldn't be using it in ppc32.  Is there some other 
factore in play for ppc64?
include/asm-ppc64/page.h:clear_page() uses it:

static __inline__ void clear_page(void *addr)
{
        unsigned long lines, line_size;

        line_size = systemcfg->dCacheL1LineSize;
        lines = naca->dCacheL1LinesPerPage;

        __asm__ __volatile__(
        "mtctr          %1      # clear_page\n\
1:      dcbz    0,%0\n\
        add     %0,%0,%3\n\
        bdnz+   1b"
        : "=r" (addr)
        : "r" (lines), "0" (addr), "r" (line_size)
        : "ctr", "memory");
}

Anton
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help