From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>, 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: [Linux-fbdev-devel] Re: radeon, apertures & memory mapping
Date: Mon, 14 Mar 2005 14:59:42 +1100 [thread overview]
Message-ID: <1110772782.5787.232.camel@gaston> (raw)
In-Reply-To: <9e47339105031317474b9a6234@mail.gmail.com>
On Sun, 2005-03-13 at 20:47 -0500, Jon Smirl wrote:
> On Mon, 14 Mar 2005 12:05:59 +1100, Benjamin Herrenschmidt
> <benh@kernel.crashing.org> wrote:
> >
> > > It should be the responsibility of the memory manager. If anything wants
> > > to access the memory it would call lock() and when it's done with the
> > > memory it calls unlock(). That's exactly how DirectFB's memory manager
> > > works.
> >
> > In an ideal world ... However, since we are planning to move the memory
> > manager to the kernel, that would mean a kernel access (syscall, ioctl,
> > whatever...) twice per access to AGP memory. Not realistic.
>
> I'm only suggesting this for the DRM/fbdev stack. Anything else from
> user space can use a non-cached mapping.
Then I don't see the point. Especially since the problem I explained
would still be there as long as there is a non-cached mapping.
> It shouldn't hurt to have a parallel non-cached mapping being used in
> conjuction with this protocol. By definition the non-cached mapping
> never gets into an inconsistent state.
Wrong :) It can badly conflict with the existence of a cached mapping.
Re-read my mail that explains the problem carefully.
> > The case of the CP ring is easy to deal with by the macros we have there
> > already and it would be kernel-kernel. But it would be a hit for a lot
> > of other things I suppose.
>
> The performance trade off is, how long does the invalidate take? If
> the CPU has 2MB of unflushed write data the instruction is going to
> take a while to finish. In the non-cached scheme this data is flushed
> in parallel with us playing with the AGP memory. To flush 2MB takes
> something like 2MB / 400Mhz * 64bytes * 2 (DDR) = 20 microseconds but
> it may be more like 1 microsecond on average.
>
> Thinking about this for a while you can't compute which is the better
> strategy because everything depends on the workload and how dirty the
> cache is. Best thing to do would be to code it up and try it. But I
> want to get a dual head radeon driver working first.
>
> It may also be true that the CP Ring is better left non-cached and
> only access to the graphics buffers be done with the caching scheme.
Using write-through cache might be an interesting tradeoff
> BTW, you can implement super fast texture load/unload using a similar
> scheme. Start with the texture in the user space program. Program
> wants to upload the texture. Flush CPU cache. Point the GART at the
> physical pages allocated to the user holding the texture. Now walk the
> user's page table and mark those pages copy on write. Free the memory
> the pages the GART was originally pointing at. Reverse the scheme to
> get data from the GPU. For small textures it is faster to copy them
> but if you are moving 20MB of data this is much faster.
>
--
Benjamin Herrenschmidt <benh@kernel.crashing.org>
next prev parent reply other threads:[~2005-03-14 3:59 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
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 [this message]
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=1110772782.5787.232.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=paulus@samba.org \
--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).