linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Joakim Tjernlund" <joakim.tjernlund@lumentis.se>
To: "'Paul Mackerras'" <paulus@samba.org>
Cc: <linuxppc-embedded@lists.linuxppc.org>
Subject: SV: New invalidate/clean/flush_dcache functions
Date: Mon, 23 Dec 2002 14:19:58 +0100	[thread overview]
Message-ID: <000001c2aa85$ff48d250$83b9143e@hempc> (raw)
In-Reply-To: <15877.25339.355590.772957@argo.ozlabs.ibm.com>


>
> Joakim Tjernlund writes:
>
> > How about adding new xxx_dcache_range() functions functions to PPC.
> > Below is my suggestion which is more logical and more efficient:
>
> Why do you say it's more efficient?  Because it's inline?  Inlining
> isn't necessarily a win, you know; by inlining something you can
> reduce the number of instructions executed in a particular code path,
> but usually you increase the size of the kernel, and together with
> that, the icache footprint, which is important because you can execute
> quite a lot of instructions in the time taken for one cache miss.

Sorry for not being more verbose. Most(all?) uses of these functions
are of the form xxx_dcache_range(ptr, ptr+len)(len is usally known at
compile time). So for the current impl. There will be one add then a
call,
inside the function there are a few instructions to set the loop
variables
then the actual loop is executed. Finally a return is executed.

In my inline functions will just use 5 or 6 instructions in total for
all
cases where len is known at compile time, which should be close to the
number of instructions needed for preparing the arguments and making the
call to the old versions(I did not check this, but I guess I will have
to)
>
> I'm not saying that your functions aren't more efficient, I'm saying
> that you haven't established that they are more efficient.  Simply
> inlining things doesn't necessarily increase efficiency.  What you
> need to do is to show a measurable increase in efficiency, in the
> context of the kernel, which is sufficient to justify the increased
> size of the kernel.

Yes I know, but in this case it should a win. I hope the above
explanation makes it clearer.

>
> The other thing is that you haven't included the synchronization
> instructions that are required by the PPC architecture spec.

Only the invalidate function is missing the sync instruction.
It's not needed. Invalidating the cache does not touch the memory
so there is no need to sync the memory. I have been running my system
without it for a long time and I asked my HW contact at Motorola about
it and he agreed. Others has used the dcbi without a sync without
problems.

Can you give me a pointer to where the spec claims that a sync is
needed after a dcbi?

    Jocke
>
> Paul.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

  reply	other threads:[~2002-12-23 13:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-20 16:21 E1/T1 on mpc8260 Omanakuttan
2002-12-20 17:46 ` New invalidate/clean/flush_dcache functions Joakim Tjernlund
2002-12-21 14:25 ` Joakim Tjernlund
2002-12-22  7:00   ` Paul Mackerras
2002-12-23 13:19     ` Joakim Tjernlund [this message]
2002-12-26  4:12       ` SV: " Paul Mackerras
2002-12-26 13:52         ` SV: " Joakim Tjernlund
2004-04-26 16:41         ` High resolution timer in driver bhupinder sahran
2004-04-26 18:06           ` Wolfgang Denk
2004-04-27 15:52             ` bhupinder sahran
2002-12-27  0:58       ` SV: New invalidate/clean/flush_dcache functions Segher Boessenkool
2002-12-27 20:20         ` SV: " Joakim Tjernlund
2002-12-28  4:01           ` Segher Boessenkool
2002-12-23 20:26   ` Dan Malek
2002-12-24 10:36     ` SV: " Joakim Tjernlund
2002-12-24 17:53       ` Dan Malek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000001c2aa85$ff48d250$83b9143e@hempc' \
    --to=joakim.tjernlund@lumentis.se \
    --cc=linuxppc-embedded@lists.linuxppc.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).