linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Jon Smirl <jonsmirl@yahoo.com>,
	Linux Fbdev development list
	<linux-fbdev-devel@lists.sourceforge.net>,
	dri-devel@lists.sourceforge.net, xorg@lists.freedesktop.org
Subject: Re: radeon, apertures & memory mapping
Date: Mon, 14 Mar 2005 10:11:19 +1100	[thread overview]
Message-ID: <1110755479.14684.193.camel@gaston> (raw)
In-Reply-To: <9e47339105031315002a444f00@mail.gmail.com>


> I'm not being clear....
> 
> Leave AGP memory as normal RAM
> driver does it thing to the memory
> driver executes flush of data cache on CPU
> after flush tell GPU to access the data
> 
> The performance hit of executing the flush is probably negligible
> since you probably didn't care about anything in the data cache. All
> of those entries would be replaced by later code anyway. You will lose
> some later overlap parallelism as the cache is refilled.

Should be measured though, but yes. I agree. We must make sure we have a
proper hook in the userland DRI to flush AGP pages before they get
submited (indirect buffers, texture datas, host data blits, ...) and the
kernel DRM should flush ring entries (easy probably to do it from the
various ring access macros).
> > 
> > Though the flushes may be fast if there is no actual hit in the cache, I
> > agree. Again, that should be benched.
> > 
> > In fact, i would _love_ to be able to mark AGP memory as cacheable on
> > ppc, even if there is no performance benefit in the end. The issue is
> > that currently, we end up having both a cacheable and a non-cacheable
> > mapping for those pages (the kernel linear mapping still maps those
> > pages cacheable, and it's almost impossible to get rid of that unless
> > you are prepared to disable the large pages mapping of kernel space or
> > the BATs on ppc32, which would harm kernel performances significantly).
> > 
> > It works, but it's illegal. That means that the CPU might well speculate
> > a load from one of these pages in kernel-land just because it happens to
> > be next to a page where you are iterating an array, and may then bring a
> > bit in the cache from that page.
> 
> That shouldn't matter the page brought in would be for a speculative
> read and never accessed. It should just fall out of the cache and not
> be written back. There is only one cachable mapping. In this model
> writes are always followed by a flush before telling the GPU to access
> the memory that has just been written.

I was talking about the current state of having both cacheable and
non-cacheable mappng. I was saying that this model has the above
possible issue, and that indeed, mapping everything cacheable would fix
it.
> > 
> > At that point, a non-cacheable access from userland to that same line
> > that was brought to the cache may lead to undefined behaviour, ranging
> > from just works, to checkstops the CPU, with cases of writing corrupted
> > data, etc... depending on the CPU.
> > 
> > I yet have to see the problem happening in practice, but we are
> > definitely not on the safe side currently. I suspect ppc32 in practice
> > won't hit it, but ppc64 will...
> > 
> > Ben.
> > 
> > 
> 
> 
-- 
Benjamin Herrenschmidt <benh@kernel.crashing.org>

  reply	other threads:[~2005-03-13 23:11 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-13  1:35 radeon, apertures & memory mapping Benjamin Herrenschmidt
2005-03-13  3:22 ` Jon Smirl
2005-03-13  6:43   ` Benjamin Herrenschmidt
2005-03-13 16:22     ` Jon Smirl
2005-03-14  4:28     ` [Linux-fbdev-devel] " Michel Dänzer
2005-03-14  7:12       ` Benjamin Herrenschmidt
2005-03-14 16:20         ` Michel Dänzer
2005-03-14 21:52           ` Benjamin Herrenschmidt
2005-03-14 22:12             ` Michel Dänzer
2005-03-14 22:37               ` FB model basic issues (WAS: radeon, apertures & memory mapping) Benjamin Herrenschmidt
2005-03-15  4:59                 ` Michel Dänzer
2005-03-15  5:14                   ` Jon Smirl
2005-03-15  6:01                   ` Ville Syrjälä
2005-03-15  6:59                     ` Benjamin Herrenschmidt
2005-03-15 14:00                       ` Ville Syrjälä
2005-03-15 14:29                         ` Jon Smirl
2005-03-15 17:25                           ` Jan Gukelberger
2005-03-15 23:34                         ` Benjamin Herrenschmidt
2005-03-15  8:51                     ` Geert Uytterhoeven
2005-03-15 13:36                       ` [Linux-fbdev-devel] " Ville Syrjälä
2005-03-15 23:33                         ` Benjamin Herrenschmidt
2005-03-15 23:37                         ` Antonino A. Daplas
2005-03-15 23:50                           ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-16  1:47                             ` Ville Syrjälä
2005-03-16  1:51                               ` Benjamin Herrenschmidt
2005-03-16 19:51                                 ` Ville Syrjälä
2005-03-16 21:00                                   ` Michel Dänzer
2005-03-16 21:07                                     ` Ville Syrjälä
2005-03-16 23:28                                     ` Benjamin Herrenschmidt
2005-03-16 23:53                                       ` Michel Dänzer
2005-03-16 23:25                                   ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
     [not found]                         ` <1110929582.25201.34.camel@gaston>
2005-03-16  5:21                           ` Michel Dänzer
2005-03-16  6:31                             ` Benjamin Herrenschmidt
2005-03-16 14:09                               ` Ville Syrjälä
2005-03-16 16:48                                 ` Adam Jackson
2005-03-16 23:20                                   ` Benjamin Herrenschmidt
2005-03-15 11:30                     ` Roland Scheidegger
2005-03-15 13:27                       ` Ville Syrjälä
2005-03-15 17:17                       ` Michel Dänzer
2005-03-16  3:09                         ` Benjamin Herrenschmidt
2005-03-16 20:08                           ` Ville Syrjälä
2005-03-16 20:42                             ` [Linux-fbdev-devel] " Michel Dänzer
2005-03-16 23:26                               ` Benjamin Herrenschmidt
2005-03-16 23:35                                 ` Jon Smirl
2005-03-17  0:06                                   ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-16 20:58                             ` Alex Deucher
2005-03-16 21:08                               ` Ville Syrjälä
2005-03-16 21:17                                 ` Alex Deucher
2005-03-16 23:30                                 ` Benjamin Herrenschmidt
2005-03-17  0:47                                   ` Ville Syrjälä
2005-03-17  1:12                                     ` Benjamin Herrenschmidt
2005-03-17  1:25                                       ` Ville Syrjälä
2005-03-17  2:00                                         ` Benjamin Herrenschmidt
2005-03-17  9:08                                         ` Geert Uytterhoeven
2005-03-17 19:54                                           ` [Linux-fbdev-devel] " Ville Syrjälä
2005-03-15 22:44                     ` Benjamin Herrenschmidt
2005-03-15 23:05                       ` Ville Syrjälä
2005-03-15 23:49                         ` Benjamin Herrenschmidt
2005-03-16 20:55                           ` Ville Syrjälä
2005-03-16 23:27                             ` Benjamin Herrenschmidt
2005-03-17  0:14                               ` Ville Syrjälä
2005-03-17  0:28                                 ` Benjamin Herrenschmidt
2005-03-15  6:45                   ` Benjamin Herrenschmidt
2005-03-15  5:30                 ` Jon Smirl
2005-03-15  6:58                   ` Benjamin Herrenschmidt
2005-03-15 21:58                   ` Ian Romanick
2005-03-13  3:55 ` radeon, apertures & memory mapping Vladimir Dergachev
2005-03-13  6:44   ` Benjamin Herrenschmidt
2005-03-13  8:22 ` Ville Syrjälä
2005-03-13  9:20   ` Benjamin Herrenschmidt
2005-03-13 10:39     ` Ville Syrjälä
2005-03-13 12:04       ` Benjamin Herrenschmidt
2005-03-13 16:19         ` Jon Smirl
2005-03-13 17:47           ` Ville Syrjälä
2005-03-13 17:56             ` [Linux-fbdev-devel] " Jon Smirl
2005-03-13 21:52               ` Benjamin Herrenschmidt
2005-03-13 22:17                 ` Jon Smirl
2005-03-13 22:41                   ` Benjamin Herrenschmidt
2005-03-13 21:51             ` Benjamin Herrenschmidt
2005-03-13 21:49           ` Benjamin Herrenschmidt
2005-03-13 22:10             ` Jon Smirl
2005-03-13 22:20               ` Benjamin Herrenschmidt
2005-03-13 23:00                 ` Jon Smirl
2005-03-13 23:11                   ` Benjamin Herrenschmidt [this message]
2005-03-13 23:27                   ` Ville Syrjälä
2005-03-13 23:48                     ` Benjamin Herrenschmidt
2005-03-14  0:08                       ` Ville Syrjälä
2005-03-14  0:10                         ` Benjamin Herrenschmidt
2005-03-14  0:25                       ` Jon Smirl
2005-03-14  0:39                         ` Ville Syrjälä
2005-03-14  1:02                           ` Benjamin Herrenschmidt
2005-03-14  0:54                         ` Benjamin Herrenschmidt
2005-03-14  0:41                   ` Paul Mackerras
2005-03-14  0:56                     ` Ville Syrjälä
2005-03-14  1:05                       ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-14  1:47                         ` Jon Smirl
2005-03-14  3:59                           ` Benjamin Herrenschmidt
2005-03-14  4:07                           ` Paul Mackerras
2005-03-14  4:40                             ` Jon Smirl
2005-03-14  5:09                               ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-14 16:30                         ` Soeren Sandmann
2005-03-14 16:40                           ` Ville Syrjälä
2005-03-14 21:54                           ` Benjamin Herrenschmidt
2005-03-14 16:16         ` Ville Syrjälä
2005-03-14 21:27           ` Donnie Berkholz
2005-03-14 21:51           ` Benjamin Herrenschmidt

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=1110755479.14684.193.camel@gaston \
    --to=benh@kernel.crashing.org \
    --cc=dri-devel@lists.sourceforge.net \
    --cc=jonsmirl@gmail.com \
    --cc=jonsmirl@yahoo.com \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=xorg@lists.freedesktop.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).