From: Benjamin Herrenschmidt <benh@kernel.crashing.org> To: Thomas Hellstrom <thellstrom@vmware.com> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>, Russell King - ARM Linux <linux@arm.linux.org.uk>, Arnd Bergmann <arnd@arndb.de>, linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org, Jerome Glisse <j.glisse@gmail.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1 Date: Sat, 30 Apr 2011 08:50:56 +1000 [thread overview] Message-ID: <1304117456.2513.265.camel@pasglop> (raw) In-Reply-To: <4DBA990F.6040203@vmware.com> On Fri, 2011-04-29 at 12:55 +0200, Thomas Hellstrom wrote: > On 04/29/2011 09:35 AM, Benjamin Herrenschmidt wrote: > > > > We have problems with AGP and macs, we chose to mostly ignore them and > > things have been working so-so ... with the old DRM. With DRI2 being > > much more aggressive at mapping/unmapping things, things became a lot > > less stable and it could be in part related to that. IE. Aliases are > > similarily forbidden but we create them anyways. > > > Do you have any idea how other OS's solve this AGP issue on Macs? > Using a fixed pool of write-combined pages? Write-combine is a different business, it's a matter of not mapping with the G bit, but no, the way MacOS works I think is that they don't actually use large pages at all, and I don't even think they have a linear mapping of all memory. On the other hand they are slow :-) > >> c) If neither of the above applies, we might be able to either use > >> explicit cache flushes (which will require a TTM cache sync API), or > >> require the device to use snooping mode. The architecture may also > >> perhaps have a pool of write-combined pages that we can use. This should > >> be indicated by defines in the api header. > >> > > Right. We should still shoot HW designers who give up coherency for the > > sake of 3D benchmarks. It's insanely stupid. > > > > I agree. From a driver writer's perspective having the GPU always > snooping the system pages would be a dream. On the GPUs that do support > snooping that I have looked at, its internal MMU usually support both > modes, but the snooping mode is way slower (we're talking 50-70% or so > slower texturing operations), and often buggy causing crashes or scanout > timing issues since system designers apparently don't really count on it > being used. I've found it usable for device-to-system memory blits. > > In addition memcpy to device is usually way faster if the destination is > write-combined. Probably due to cache thrashing effects. Possibly. It's a matter of the HW folks actually spending some time to make it work properly. It can be done :-) It's just that they don't bother. Look at the perfs one can get out of fully coherent PCIe nowadays, largely enough for a simple scanout :-) Cheers, Ben. > /Thomas > > > Cheers, > > Ben. > > > > > >> /Thomas > >> > >> > >> > >> > >> > >>> _______________________________________________ > >>> Linaro-mm-sig mailing list > >>> Linaro-mm-sig@lists.linaro.org > >>> http://lists.linaro.org/mailman/listinfo/linaro-mm-sig > >>> > >>> > > > > > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: benh@kernel.crashing.org (Benjamin Herrenschmidt) To: linux-arm-kernel@lists.infradead.org Subject: [Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1 Date: Sat, 30 Apr 2011 08:50:56 +1000 [thread overview] Message-ID: <1304117456.2513.265.camel@pasglop> (raw) In-Reply-To: <4DBA990F.6040203@vmware.com> On Fri, 2011-04-29 at 12:55 +0200, Thomas Hellstrom wrote: > On 04/29/2011 09:35 AM, Benjamin Herrenschmidt wrote: > > > > We have problems with AGP and macs, we chose to mostly ignore them and > > things have been working so-so ... with the old DRM. With DRI2 being > > much more aggressive at mapping/unmapping things, things became a lot > > less stable and it could be in part related to that. IE. Aliases are > > similarily forbidden but we create them anyways. > > > Do you have any idea how other OS's solve this AGP issue on Macs? > Using a fixed pool of write-combined pages? Write-combine is a different business, it's a matter of not mapping with the G bit, but no, the way MacOS works I think is that they don't actually use large pages at all, and I don't even think they have a linear mapping of all memory. On the other hand they are slow :-) > >> c) If neither of the above applies, we might be able to either use > >> explicit cache flushes (which will require a TTM cache sync API), or > >> require the device to use snooping mode. The architecture may also > >> perhaps have a pool of write-combined pages that we can use. This should > >> be indicated by defines in the api header. > >> > > Right. We should still shoot HW designers who give up coherency for the > > sake of 3D benchmarks. It's insanely stupid. > > > > I agree. From a driver writer's perspective having the GPU always > snooping the system pages would be a dream. On the GPUs that do support > snooping that I have looked at, its internal MMU usually support both > modes, but the snooping mode is way slower (we're talking 50-70% or so > slower texturing operations), and often buggy causing crashes or scanout > timing issues since system designers apparently don't really count on it > being used. I've found it usable for device-to-system memory blits. > > In addition memcpy to device is usually way faster if the destination is > write-combined. Probably due to cache thrashing effects. Possibly. It's a matter of the HW folks actually spending some time to make it work properly. It can be done :-) It's just that they don't bother. Look at the perfs one can get out of fully coherent PCIe nowadays, largely enough for a simple scanout :-) Cheers, Ben. > /Thomas > > > Cheers, > > Ben. > > > > > >> /Thomas > >> > >> > >> > >> > >> > >>> _______________________________________________ > >>> Linaro-mm-sig mailing list > >>> Linaro-mm-sig at lists.linaro.org > >>> http://lists.linaro.org/mailman/listinfo/linaro-mm-sig > >>> > >>> > > > > > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2011-04-29 22:51 UTC|newest] Thread overview: 198+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-04-21 19:29 [RFC] ARM DMA mapping TODO, v1 Arnd Bergmann 2011-04-21 19:29 ` Arnd Bergmann 2011-04-21 20:09 ` [Linaro-mm-sig] " Jesse Barnes 2011-04-21 20:09 ` Jesse Barnes 2011-04-21 21:52 ` Zach Pfeffer 2011-04-21 21:52 ` Zach Pfeffer 2011-04-22 0:34 ` KyongHo Cho 2011-04-22 0:34 ` KyongHo Cho 2011-04-26 14:29 ` Arnd Bergmann 2011-04-26 14:29 ` Arnd Bergmann 2011-04-26 14:28 ` Arnd Bergmann 2011-04-26 14:28 ` Arnd Bergmann 2011-04-26 14:26 ` Arnd Bergmann 2011-04-26 14:26 ` Arnd Bergmann 2011-04-26 15:39 ` Jesse Barnes 2011-04-26 15:39 ` Jesse Barnes 2011-04-27 7:35 ` Russell King - ARM Linux 2011-04-27 7:35 ` Russell King - ARM Linux 2011-04-27 8:56 ` Arnd Bergmann 2011-04-27 8:56 ` Arnd Bergmann 2011-04-27 9:09 ` Russell King - ARM Linux 2011-04-27 9:09 ` Russell King - ARM Linux 2011-04-27 11:02 ` Arnd Bergmann 2011-04-27 11:02 ` Arnd Bergmann 2011-04-27 16:16 ` [Linaro-mm-sig] " Alex Deucher 2011-04-27 16:16 ` Alex Deucher 2011-04-27 17:44 ` Anca Emanuel 2011-04-27 17:44 ` Anca Emanuel 2011-04-27 20:27 ` Russell King - ARM Linux 2011-04-27 20:27 ` Russell King - ARM Linux 2011-04-27 20:16 ` Russell King - ARM Linux 2011-04-27 20:16 ` Russell King - ARM Linux 2011-04-27 20:21 ` Arnd Bergmann 2011-04-27 20:21 ` Arnd Bergmann 2011-04-27 20:26 ` Russell King - ARM Linux 2011-04-27 20:26 ` Russell King - ARM Linux 2011-04-27 20:48 ` Arnd Bergmann 2011-04-27 20:48 ` Arnd Bergmann 2011-04-27 21:41 ` Benjamin Herrenschmidt 2011-04-27 21:41 ` Benjamin Herrenschmidt 2011-04-28 9:30 ` Russell King - ARM Linux 2011-04-28 9:30 ` Russell King - ARM Linux 2011-04-28 21:07 ` Benjamin Herrenschmidt 2011-04-28 21:07 ` Benjamin Herrenschmidt 2011-04-29 11:26 ` Arnd Bergmann 2011-04-29 11:26 ` Arnd Bergmann 2011-04-29 11:47 ` Benjamin Herrenschmidt 2011-04-29 11:47 ` Benjamin Herrenschmidt 2011-04-29 11:56 ` Alan Cox 2011-04-29 11:56 ` Alan Cox 2011-04-29 22:51 ` Benjamin Herrenschmidt 2011-04-29 22:51 ` Benjamin Herrenschmidt 2011-04-29 12:06 ` [Linaro-mm-sig] " Thomas Hellstrom 2011-04-29 12:06 ` Thomas Hellstrom 2011-04-29 13:34 ` Jerome Glisse 2011-04-29 13:34 ` Jerome Glisse 2011-04-29 22:55 ` Benjamin Herrenschmidt 2011-04-29 22:55 ` Benjamin Herrenschmidt 2011-04-29 22:53 ` Benjamin Herrenschmidt 2011-04-29 22:53 ` Benjamin Herrenschmidt 2011-04-27 10:51 ` Marek Szyprowski 2011-04-27 10:51 ` Marek Szyprowski 2011-04-27 21:37 ` Benjamin Herrenschmidt 2011-04-27 21:37 ` Benjamin Herrenschmidt 2011-04-28 6:40 ` [Linaro-mm-sig] " Arnd Bergmann 2011-04-28 6:40 ` Arnd Bergmann 2011-04-28 6:46 ` FUJITA Tomonori 2011-04-28 6:46 ` FUJITA Tomonori 2011-04-28 9:37 ` Russell King - ARM Linux 2011-04-28 9:37 ` Russell King - ARM Linux 2011-04-28 10:32 ` [Linaro-mm-sig] " Marek Szyprowski 2011-04-28 10:32 ` Marek Szyprowski 2011-04-28 10:51 ` Russell King - ARM Linux 2011-04-28 10:51 ` Russell King - ARM Linux 2011-04-28 12:28 ` Arnd Bergmann 2011-04-28 12:28 ` Arnd Bergmann 2011-04-28 13:15 ` Russell King - ARM Linux 2011-04-28 13:15 ` Russell King - ARM Linux 2011-04-28 14:29 ` Arnd Bergmann 2011-04-28 14:29 ` Arnd Bergmann 2011-04-28 14:34 ` Russell King - ARM Linux 2011-04-28 14:34 ` Russell King - ARM Linux 2011-04-28 14:39 ` Arnd Bergmann 2011-04-28 14:39 ` Arnd Bergmann 2011-04-28 14:58 ` Russell King - ARM Linux 2011-04-28 14:58 ` Russell King - ARM Linux 2011-04-28 19:37 ` Jerome Glisse 2011-04-28 19:37 ` Jerome Glisse 2011-04-29 0:29 ` Benjamin Herrenschmidt 2011-04-29 0:29 ` Benjamin Herrenschmidt 2011-04-29 5:50 ` Thomas Hellstrom 2011-04-29 5:50 ` Thomas Hellstrom 2011-04-29 7:35 ` Benjamin Herrenschmidt 2011-04-29 7:35 ` Benjamin Herrenschmidt 2011-04-29 10:55 ` Thomas Hellstrom 2011-04-29 10:55 ` Thomas Hellstrom 2011-04-29 22:50 ` Benjamin Herrenschmidt [this message] 2011-04-29 22:50 ` Benjamin Herrenschmidt 2011-04-29 16:27 ` Jesse Barnes 2011-04-29 16:27 ` Jesse Barnes 2011-04-29 22:46 ` Benjamin Herrenschmidt 2011-04-29 22:46 ` Benjamin Herrenschmidt 2011-04-30 2:45 ` Jesse Barnes 2011-04-30 2:45 ` Jesse Barnes 2011-04-29 7:59 ` Russell King - ARM Linux 2011-04-29 7:59 ` Russell King - ARM Linux 2011-04-29 16:32 ` Jesse Barnes 2011-04-29 16:32 ` Jesse Barnes 2011-04-29 18:29 ` Arnd Bergmann 2011-04-29 18:29 ` Arnd Bergmann 2011-04-29 22:15 ` Russell King - ARM Linux 2011-04-29 22:15 ` Russell King - ARM Linux 2011-05-02 4:42 ` David Brown 2011-05-02 4:42 ` David Brown 2011-05-02 11:26 ` Arnd Bergmann 2011-05-02 11:26 ` Arnd Bergmann 2011-04-29 22:37 ` Benjamin Herrenschmidt 2011-04-29 22:37 ` Benjamin Herrenschmidt 2011-04-29 13:42 ` Joerg Roedel 2011-04-29 13:42 ` Joerg Roedel 2011-04-29 14:19 ` Jerome Glisse 2011-04-29 14:19 ` Jerome Glisse 2011-04-29 15:37 ` Jordan Crouse 2011-04-29 15:37 ` Jordan Crouse 2011-04-28 14:38 ` FUJITA Tomonori 2011-04-28 14:38 ` FUJITA Tomonori 2011-04-29 0:25 ` Benjamin Herrenschmidt 2011-04-29 0:25 ` Benjamin Herrenschmidt 2011-04-29 11:21 ` Arnd Bergmann 2011-04-29 11:21 ` Arnd Bergmann 2011-04-28 10:41 ` Joerg Roedel 2011-04-28 10:41 ` Joerg Roedel 2011-04-28 11:01 ` Russell King - ARM Linux 2011-04-28 11:01 ` Russell King - ARM Linux 2011-04-28 12:25 ` Joerg Roedel 2011-04-28 12:25 ` Joerg Roedel 2011-04-28 12:42 ` Russell King - ARM Linux 2011-04-28 12:42 ` Russell King - ARM Linux 2011-04-28 12:59 ` Joerg Roedel 2011-04-28 12:59 ` Joerg Roedel 2011-04-28 13:02 ` Arnd Bergmann 2011-04-28 13:02 ` Arnd Bergmann 2011-04-28 13:19 ` Russell King - ARM Linux 2011-04-28 13:19 ` Russell King - ARM Linux 2011-04-28 13:56 ` Joerg Roedel 2011-04-28 13:56 ` Joerg Roedel 2011-04-28 14:30 ` Russell King - ARM Linux 2011-04-28 14:30 ` Russell King - ARM Linux 2011-04-27 9:52 ` Catalin Marinas 2011-04-27 9:52 ` Catalin Marinas 2011-04-27 10:43 ` Arnd Bergmann 2011-04-27 10:43 ` Arnd Bergmann 2011-04-27 11:08 ` Catalin Marinas 2011-04-27 11:08 ` Catalin Marinas 2011-04-28 0:15 ` Valdis.Kletnieks 2011-04-28 0:15 ` Valdis.Kletnieks at vt.edu 2011-04-28 8:27 ` Catalin Marinas 2011-04-28 8:27 ` Catalin Marinas 2011-04-28 12:12 ` Arnd Bergmann 2011-04-28 12:12 ` Arnd Bergmann 2011-04-28 12:36 ` Russell King - ARM Linux 2011-04-28 12:36 ` Russell King - ARM Linux 2011-04-28 12:48 ` Arnd Bergmann 2011-04-28 12:48 ` Arnd Bergmann 2011-05-03 14:45 ` Dave Martin 2011-05-03 14:45 ` Dave Martin 2011-04-29 15:41 ` [Linaro-mm-sig] " Arnd Bergmann 2011-04-29 15:41 ` Arnd Bergmann 2011-04-29 16:42 ` Catalin Marinas 2011-04-29 16:42 ` Catalin Marinas 2011-05-03 15:05 ` [Linaro-mm-sig] " Laurent Pinchart 2011-05-03 15:05 ` Laurent Pinchart 2011-05-03 15:31 ` Arnd Bergmann 2011-05-03 15:31 ` Arnd Bergmann 2011-04-27 14:06 ` FUJITA Tomonori 2011-04-27 14:06 ` FUJITA Tomonori 2011-04-27 14:29 ` Catalin Marinas 2011-04-27 14:29 ` Catalin Marinas 2011-04-27 14:34 ` FUJITA Tomonori 2011-04-27 14:34 ` FUJITA Tomonori 2011-04-27 20:29 ` Russell King - ARM Linux 2011-04-27 20:29 ` Russell King - ARM Linux 2011-04-27 21:45 ` Benjamin Herrenschmidt 2011-04-27 21:45 ` Benjamin Herrenschmidt 2011-04-28 7:24 ` [Linaro-mm-sig] " KyongHo Cho 2011-04-28 7:24 ` KyongHo Cho 2011-04-28 8:31 ` Catalin Marinas 2011-04-28 8:31 ` Catalin Marinas 2011-04-27 21:31 ` Benjamin Herrenschmidt 2011-04-27 21:31 ` Benjamin Herrenschmidt 2011-04-28 9:42 ` Russell King - ARM Linux 2011-04-28 9:42 ` Russell King - ARM Linux 2011-04-28 10:27 ` Joerg Roedel 2011-04-28 10:27 ` Joerg Roedel 2011-04-28 12:15 ` Arnd Bergmann 2011-04-28 12:15 ` Arnd Bergmann 2011-05-03 14:35 [Linaro-mm-sig] " Laurent Pinchart 2011-05-03 14:35 ` Laurent Pinchart
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=1304117456.2513.265.camel@pasglop \ --to=benh@kernel.crashing.org \ --cc=arnd@arndb.de \ --cc=fujita.tomonori@lab.ntt.co.jp \ --cc=j.glisse@gmail.com \ --cc=linaro-mm-sig@lists.linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=thellstrom@vmware.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: linkBe 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.