| To: | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Subject: | Re: how i can know the linux-mips implememt cache strategy? |
| From: | Shane McDonald <mcdonald.shane@gmail.com> |
| Date: | Sat, 21 Nov 2009 09:18:26 -0600 |
| Cc: | figo zhang <figo1802@gmail.com>, linux-mips@linux-mips.org |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Bj61smTqktMIiy1XqrDVT2z1QcJeWp2rLR3qlWgzeZM=; b=t+YyuxfnTXmWMDw5tfs2V2wCJixaNpNcC8Jwzh7VIbTH70nI9XScnhCBULWGmCZLEl puluwDCiXubiI7c1pt2ltGv/YVR+3B4WgL+7ccIre/JwtMc4UYxy8nTH+nawx3/EfTcR JARl/8eHJr8pqwrSN3cvYoWKcJ8wBzev8PDvA= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=gAyEh5zZcuHNcP9KFs/cHutV4FWXqO8anSrvp+KXSudw2hBkMSpKRxNfqs6/nw0yvJ JsrnfhYB3/7Ddmhx0fH/Vp57vFhhC+hXXD7nouAKkmepa1EwMAO1oVGUUM74y9XFkUG4 jBnkys5vc8j4Vs7Nm/OAFW3GIFKmd0jje033s= |
| In-reply-to: | <20091118114432.GA17418@linux-mips.org> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <c6ed1ac50911171859k24685b32m237afd68f63c626f@mail.gmail.com> <20091118114432.GA17418@linux-mips.org> |
| Sender: | linux-mips-bounce@linux-mips.org |
On Wed, Nov 18, 2009 at 5:44 AM, Ralf Baechle <ralf@linux-mips.org> wrote:
>
> The kernel will always use cache stategy 3 for non-coherent systems and
> caching strategy 5 for cache coherent systems. These two select the most
> aggressive caching strategy on all processors and that's what gives the
> best performance.
OK, dumb question -- how is this implemented? Poking through the code,
it looks to me that the cache strategy used comes from the K0 field of the
coprocessor 0 Config register, which I think is whatever gets set up by
the bootloader, or if that wasn't done, the default value of that
field for the processor.
See function coherency_setup() in arch/mips/mm/c-r4k.c:
if (cca < 0 || cca > 7)
cca = read_c0_config() & CONF_CM_CMASK;
_page_cachable_default = cca << _CACHE_SHIFT;
This can be overridden on the kernel command line with the "cca" parameter,
but as Ralf said in
http://www.linux-mips.org/archives/linux-mips/2008-06/msg00186.html,
"passing a CCA value on the command line is nothing a user should
ever, ever have to do".
I can see how this was implemented in 2.6.25, but commit 3513369
[MIPS] Allow setting of the cache attribute at run time, seems to have changed
from the behaviour Ralf described.
Shane
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH v1] drivers/staging/sm7xx: add a new framebuffer driver, Greg KH |
|---|---|
| Next by Date: | [PATCH] [MIPS] Fix and enhance built-in kernel command line, Dmitri Vorobiev |
| Previous by Thread: | Re: how i can know the linux-mips implememt cache strategy?, Ralf Baechle |
| Next by Thread: | Re: how i can know the linux-mips implememt cache strategy?, Ralf Baechle |
| Indexes: | [Date] [Thread] [Top] [All Lists] |