From: Lucas Stach <dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
To: Thierry Reding
<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
Cc: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
Mark Zhang <markz-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
"dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: Tegra DRM device tree bindings
Date: Wed, 27 Jun 2012 17:59:55 +0200 [thread overview]
Message-ID: <1340812795.1350.7.camel@antimon> (raw)
In-Reply-To: <20120627144414.GA20681-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
Am Mittwoch, den 27.06.2012, 16:44 +0200 schrieb Thierry Reding:
> On Wed, Jun 27, 2012 at 05:29:14PM +0300, Hiroshi Doyu wrote:
> > On Wed, 27 Jun 2012 16:08:10 +0200
> > Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org> wrote:
> >
> > > * PGP Signed by an unknown key
> > >
> > > On Wed, Jun 27, 2012 at 03:59:07PM +0300, Hiroshi Doyu wrote:
> > > > On Wed, 27 Jun 2012 07:14:18 +0200
> > > > Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org> wrote:
> > > >
> > > > > > Old Signed by an unknown key
> > > > >
> > > > > On Tue, Jun 26, 2012 at 08:48:18PM -0600, Stephen Warren wrote:
> > > > > > On 06/26/2012 08:32 PM, Mark Zhang wrote:
> > > > > > >> On 06/26/2012 07:46 PM, Mark Zhang wrote:
> > > > > > >>>>> On Tue, 26 Jun 2012 12:55:13 +0200
> > > > > > >>>>> Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org> wrote:
> > > > > > >> ...
> > > > > > >>>> I'm not sure I understand how information about the carveout would be
> > > > > > >>>> obtained from the IOMMU API, though.
> > > > > > >>>
> > > > > > >>> I think that can be similar with current gart implementation. Define carveout as:
> > > > > > >>>
> > > > > > >>> carveout {
> > > > > > >>> compatible = "nvidia,tegra20-carveout";
> > > > > > >>> size = <0x10000000>;
> > > > > > >>> };
> > > > > > >>>
> > > > > > >>> Then create a file such like "tegra-carveout.c" to get these definitions and
> > > > > > >> register itself as platform device's iommu instance.
> > > > > > >>
> > > > > > >> The carveout isn't a HW object, so it doesn't seem appropriate to define a DT
> > > > > > >> node to represent it.
> > > > > > >
> > > > > > > Yes. But I think it's better to export the size of carveout as a configurable item.
> > > > > > > So we need to define this somewhere. How about define carveout as a property of gart?
> > > > > >
> > > > > > There already exists a way of preventing Linux from using certain chunks
> > > > > > of memory; the /memreserve/ syntax. From a brief look at the dtc source,
> > > > > > it looks like /memreserve/ entries can have labels, which implies that a
> > > > > > property in the GART node could refer to the /memreserve/ entry by
> > > > > > phandle in order to know what memory regions to use.
> > > > >
> > > > > Wasn't the whole point of using a carveout supposed to be a replacement
> > > > > for the GART?
> > > >
> > > > Mostly agree. IIUC, we use both carveout/gart allocated buffers in
> > > > android/tegra2.
> > > >
> > > > >As such I'd think the carveout should rather be a property
> > > > > of the host1x device.
> > > >
> > > > Rather than introducing a new property, how about using
> > > > "coherent_pool=??M" in the kernel command line if necessary? I think
> > > > that this carveout size depends on the system usage/load.
> > >
> > > I was hoping that we could get away with using the CMA and perhaps
> > > initialize it based on device tree content. I agree that the carveout
> > > size depends on the use-case, but I still think it makes sense to
> > > specify it on a per-board basis.
> >
> > DRM driver doesn't know if it uses CMA or not, because DRM only uses
> > DMA API.
>
> So how is the DRM supposed to allocate buffers? Does it call the
> dma_alloc_from_contiguous() function to do that? I can see how it is
> used by arm_dma_ops but how does it end up in the driver?
>
As I said before the DMA API is not a good fit for graphics drivers.
Most of the DMA buffers used by graphics cores are long lived and big,
so we need a special pool to alloc from to avoid eating all contiguous
address space, as DMA API does not provide shrinker callbacks for
clients using large amount of memory.
> > I think that "coherent_pool" can be used only when the amount of
> > contiguous memory is short in your system. Otherwise even unnecessary.
> >
> > Could you explain a bit more why you want carveout size on per-board basis?
>
> In the ideal case I would want to not have a carveout size at all.
> However there may be situations where you need to make sure some driver
> can allocate a given amount of memory. Having to specify this using a
> kernel command-line parameter is cumbersome because it may require
> changes to the bootloader or whatever. So if you know that a particular
> board always needs 128 MiB of carveout, then it makes sense to specify
> it on a per-board basis.
If we go with CMA, this is a non-issue, as CMA allows to use the contig
area for normal allocations and only purges them if it really needs the
space for contig allocs.
>
> Thierry
next prev parent reply other threads:[~2012-06-27 15:59 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-26 10:55 Tegra DRM device tree bindings Thierry Reding
[not found] ` <20120626105513.GA9552-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-26 12:47 ` Lucas Stach
2012-06-26 13:57 ` Thierry Reding
2012-06-26 13:01 ` Terje Bergström
[not found] ` <4FE9B291.2020305-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-26 13:41 ` Thierry Reding
[not found] ` <20120626134122.GA1115-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-26 14:02 ` Terje Bergström
[not found] ` <4FE9C0E9.7060301-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-26 17:41 ` Stephen Warren
[not found] ` <4FE9F457.6090104-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-26 19:27 ` Thierry Reding
[not found] ` <20120626192712.GA5247-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-26 19:38 ` Stephen Warren
[not found] ` <4FEA0F99.3080603-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-27 5:10 ` Terje Bergström
2012-06-26 17:43 ` Stephen Warren
[not found] ` <4FE9F4CA.10907-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-26 19:31 ` Thierry Reding
[not found] ` <20120626193145.GB5247-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-26 19:39 ` Stephen Warren
2012-06-27 5:24 ` Terje Bergström
2012-06-26 17:46 ` Stephen Warren
[not found] ` <4FE9F582.6010805-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-26 19:39 ` Thierry Reding
2012-06-27 6:13 ` Terje Bergström
[not found] ` <4FEAA4A0.3060407-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 6:37 ` Thierry Reding
2012-06-26 13:02 ` Hiroshi Doyu
[not found] ` <20120626160224.40ba10a26e3dd3a56b1f312c-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-26 14:00 ` Thierry Reding
[not found] ` <20120626140033.GC1115-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-27 1:46 ` Mark Zhang
[not found] ` <23B010BBA481A74B98487467C29BA57BF2361DA3AA-Q4EWCATADntDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-06-27 2:20 ` Stephen Warren
[not found] ` <4FEA6E09.30800-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 2:32 ` Mark Zhang
[not found] ` <23B010BBA481A74B98487467C29BA57BF2361DA3C4-Q4EWCATADntDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-06-27 2:48 ` Stephen Warren
[not found] ` <4FEA7472.7050201-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 5:14 ` Thierry Reding
[not found] ` <20120627051418.GB7177-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-27 5:28 ` Mark Zhang
2012-06-27 8:13 ` Lucas Stach
2012-06-30 17:54 ` Thierry Reding
2012-06-27 12:59 ` Hiroshi Doyu
[not found] ` <20120627155907.871b2a506374b7db14c202c4-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 14:08 ` Thierry Reding
[not found] ` <20120627140809.GD19319-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-27 14:29 ` Hiroshi Doyu
[not found] ` <20120627172914.30a2ccfd1344161ca7724722-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 14:44 ` Thierry Reding
[not found] ` <20120627144414.GA20681-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-27 15:59 ` Lucas Stach [this message]
2012-06-28 6:06 ` Hiroshi Doyu
[not found] ` <20120628090650.b915ad756c91d62d658eb53a-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-28 8:11 ` Lucas Stach
2012-06-28 11:12 ` Thierry Reding
[not found] ` <20120628111253.GC15137-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-28 16:51 ` Stephen Warren
[not found] ` <4FEC8B91.6010107-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-28 17:19 ` Lucas Stach
2012-06-28 17:33 ` Stephen Warren
[not found] ` <4FEC9584.4080100-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-28 18:19 ` Thierry Reding
2012-06-29 1:17 ` Mark Zhang
2012-06-29 5:57 ` Mark Zhang
2012-06-29 13:20 ` Terje Bergström
[not found] ` <4FEDAB9F.5040406-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-30 18:01 ` Thierry Reding
[not found] ` <20120630180143.GA23990-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-07-01 17:06 ` Lucas Stach
2012-07-01 17:00 ` Lucas Stach
2012-06-28 17:01 ` Lucas Stach
2012-06-28 6:18 ` Hiroshi Doyu
[not found] ` <20120628091853.d4c3d85749f9d41a5dfafd28-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-28 16:46 ` Stephen Warren
[not found] ` <4FEC8A82.9090202-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-30 18:04 ` Thierry Reding
2012-06-27 17:56 ` Stephen Warren
[not found] ` <4FEB4953.7060508-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-28 6:24 ` Hiroshi Doyu
2012-06-27 5:52 ` Thierry Reding
2012-06-27 12:50 ` Hiroshi Doyu
2012-06-27 12:46 ` Hiroshi Doyu
2012-06-27 12:44 ` Hiroshi Doyu
[not found] ` <20120627154400.d9d7db67128404079d98ab39-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-06-27 18:02 ` Stephen Warren
[not found] ` <4FEB4AC6.2060909-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-28 6:37 ` Hiroshi Doyu
2012-06-28 11:58 ` Thierry Reding
2012-06-26 18:10 ` Stephen Warren
[not found] ` <4FE9FB22.1090902-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-26 19:51 ` Thierry Reding
[not found] ` <20120626195108.GB5308-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-26 22:48 ` Stephen Warren
[not found] ` <4FEA3C2E.3030109-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-27 5:07 ` Thierry Reding
[not found] ` <20120627050733.GA7177-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-27 17:49 ` Stephen Warren
[not found] ` <4FEB47B7.4080104-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-28 12:07 ` Thierry Reding
2012-07-05 12:15 ` Thierry Reding
[not found] ` <20120705121506.GA23732-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-07-06 5:29 ` Mark Zhang
2012-07-06 19:59 ` Stephen Warren
[not found] ` <4FF74391.5040004-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-07-08 5:53 ` Thierry Reding
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=1340812795.1350.7.camel@antimon \
--to=dev-8ppwabl0hbeelga04laivw@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=markz-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.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).