From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Tue, 28 Dec 2010 08:59:23 -0500 To: 9fans@9fans.net Message-ID: <1f96d8452adeb9a72bb1a9972140fc18@plug.quanstro.net> In-Reply-To: References: <608b86015aa017ae148c654b8314dbe1@plug.quanstro.net> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] dumb kw question Topicbox-Message-UUID: 8e79698c-ead6-11e9-9d60-3106f5b1d025 > > On Mon, Dec 27, 2010 at 3:00 PM, erik quanstrom 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