From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: davidm@hpl.hp.com
Cc: Linus Torvalds <torvalds@transmeta.com>,
linux-kernel@vger.kernel.org, davidm@napali.hpl.hp.com
Subject: Re: adjust prefetch in free_one_pgd()
Date: 02 Aug 2002 14:04:21 +0100 [thread overview]
Message-ID: <1028293461.18309.53.camel@irongate.swansea.linux.org.uk> (raw)
In-Reply-To: <200208020012.g720CdeJ017016@napali.hpl.hp.com>
On Fri, 2002-08-02 at 01:12, David Mosberger wrote:
> diff -Nru a/mm/memory.c b/mm/memory.c
> --- a/mm/memory.c Thu Aug 1 17:02:14 2002
> +++ b/mm/memory.c Thu Aug 1 17:02:14 2002
> @@ -110,7 +110,7 @@
> pmd = pmd_offset(dir, 0);
> pgd_clear(dir);
> for (j = 0; j < PTRS_PER_PMD ; j++) {
> - prefetchw(pmd+j+(PREFETCH_STRIDE/16));
> + prefetchw(pmd + j + PREFETCH_STRIDE/sizeof(*pmd));
>
It isnt a case of PREFETCH_STRIDE - thats the optimal fetchahead. You
must never prefetch an address beyond the end of an object. So you
actually need two loops one prefetching, then one to finish the job off
which does not prefetch.
Otherwise one day your page ends up against the ISA or PCI address space
or something else undesirable and on some cpus the prefetch then
variously confuses the PCI device or corrupts the cache.
Prefetching stuff you don't need is bad manners anyway 8)
next prev parent reply other threads:[~2002-08-02 11:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-02 0:12 David Mosberger
2002-08-02 13:04 ` Alan Cox [this message]
2002-08-02 15:39 ` David Mosberger
2002-08-02 15:46 ` Linus Torvalds
2002-08-02 15:56 ` Dave Jones
2002-08-02 15:59 ` Linus Torvalds
2002-08-02 16:04 ` Dave Jones
2002-08-02 17:49 ` Alan Cox
2002-08-02 16:38 ` David Mosberger
2002-08-02 17:58 ` Alan Cox
2002-08-02 16:53 ` David Mosberger
2002-08-03 16:59 ` David Woodhouse
2002-08-03 17:22 ` Linus Torvalds
2002-08-03 17:39 ` David Woodhouse
2002-08-03 19:36 ` Linus Torvalds
2002-08-03 22:03 ` David Woodhouse
2002-08-03 22:40 ` Linus Torvalds
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=1028293461.18309.53.camel@irongate.swansea.linux.org.uk \
--to=alan@lxorguk.ukuu.org.uk \
--cc=davidm@hpl.hp.com \
--cc=davidm@napali.hpl.hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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
all inboxes | Powered by JetHome®