public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Studierende der Universitaet des Saarlandes  <masp0008@stud.uni-saarland.de>
To: Daniel Robbins <drobbins@gentoo.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Athlon/AGP issue update
Date: Wed, 23 Jan 2002 10:38:09 +0000	[thread overview]
Message-ID: <3C4E9291.8DA0BD7F@stud.uni-saarland.de> (raw)

> 
> The effect of the store is to write-allocate a cache line in the data
> cache and fill that cache line with data from the underlying physical
> memory. Because the line was write-allocated it is subsequently written
> back to physical memory even though the bits have not been changed by
> the processor. 

I'm not sure if I understand you correctly:

speculative write operations always set the cache line dirty bit, even
if the write operations is not executed (e.g. discarded due to a
mispredicted jump)

memory mapped by GART is not cache coherent, and the write-back of the
cache causes data corruptions.

Result: data corruption.

Is that correct?

Then "nopentium" only works by chance: I assume that speculative
operations do not walk the page tables, thus the probability that a
valid TLB entry is found for the GART mapped page is slim. But if there
is an entry, then the corruption would still occur.

How could we work around it?
a) At GART mapping time, we'd have to
- flush the cache
- unmap the pte entries that point to the pages that will be mapped by
GART
- create a new, uncached, ioremap mapping to the pages.

Obviously that won't work with 4 MB pages.

b) abuse highmem.
highmem memory is not mapped. If we only use highmem pages for GART, and
ensure that page->virtual is 0, then we know that no valid pte points
into the GART pages.

             reply	other threads:[~2002-01-23 10:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-23 10:38 Studierende der Universitaet des Saarlandes [this message]
2002-01-23 11:44 ` Athlon/AGP issue update David S. Miller
2002-01-23 12:32   ` Momchil Velikov
2002-01-23 12:34     ` David S. Miller
2002-01-23 12:41       ` Momchil Velikov
2002-01-23 14:50   ` Manfred Spraul
2002-01-23 11:44 ` David Woodhouse
2002-01-23 11:49   ` David S. Miller
  -- strict thread matches above, loose matches on Subject: below --
2002-01-23  9:52 Daniel Robbins
2002-01-23 10:18 ` David S. Miller
2002-01-23  2:46   ` benh
2002-01-23 14:08     ` David S. Miller
2002-01-23 15:47       ` benh
2002-01-25 18:34         ` Val Henson
2002-01-26  0:20           ` Benjamin Herrenschmidt
2002-01-27 19:22             ` Val Henson
2002-01-27 19:32               ` Benjamin Herrenschmidt
2002-01-23 16:31       ` Albert D. Cahalan
2002-01-23 16:57         ` Daniel Robbins
2002-01-23 17:14         ` benh
2002-01-23 23:14           ` Albert D. Cahalan
2002-01-25 18:17             ` Val Henson
2002-01-23 19:20   ` Oliver Neukum
     [not found] ` <200201231010.g0NAAuE05886@Port.imtp.ilyichevsk.odessa.ua>
2002-01-23 10:24   ` David S. Miller
2002-01-23 10:31     ` Rik van Riel
2002-01-23 11:39       ` David S. Miller
2002-01-23 11:39     ` William Lee Irwin III
2002-01-23 11:47       ` David S. Miller
2002-01-23 17:09         ` Albert D. Cahalan
2002-01-23 18:38           ` David S. Miller

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=3C4E9291.8DA0BD7F@stud.uni-saarland.de \
    --to=masp0008@stud.uni-saarland.de \
    --cc=drobbins@gentoo.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manfred@colorfullife.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