> > On Mon, Dec 27, 2010 at 3:00 PM, erik quanstrom <[email protected]> wro
> 
> >
> > Se is in fact single entry in the cache, i.e. cache line. It is not a word
> > necessarily (on other arm architectures it is 64 bytes if I remember right)
> > and it is used in assembly so a define is the way to go.
> >
> 
> I mean other arm processors, same architecture.

i think you misunderstand what i'm saying.  i don't care that its a define,
i suspect that the definition makes no sense, and calling
cache lines "single entries" is obtuse, even for kernel
assembly code.  :-)

at least my copy of the kw code has
        BY2SE           = 4,
        CACHELINESZ     = 32,   ( verified by kw l2 cache doc )
i would think that BY2SE would need to be the
same as CACHELINESZ, so BY2SE is incorrect
and redundant.

regardless, the *se(base, sz) functions don't clear a single entry
they clear all cache lines intersecting
        [base & ~(CACHELINESZ-1), base+size)
so the second argument really should be the size of the object
that needs to be flushed from cache.

to me it would make sense remove BY2SE and replace with
BY2WD, since its always used to indicated the object to be flushed
is word-sized.  and replace *se(base, sz) with *cls(base, sz) or
*entries(base, sz).

- erik

Reply via email to