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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.