[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <93351858f57ca6e1220a0007f98baa25@cloud.ncrmnt.org>
Date: Thu, 22 Oct 2015 10:36:18 +0000
From: andrew@...mnt.org
To: "Mitchel Humpherys" <mitchelh@...eaurora.org>
Cc: "Rob Herring" <robherring2@...il.com>,
"Laura Abbott" <labbott@...oraproject.org>,
"Rob Herring" <robh+dt@...nel.org>,
"Frank Rowand" <frowand.list@...il.com>,
"Sumit Semwal" <sumit.semwal@...aro.org>, arve@...roid.com,
"Riley Andrews" <riandrews@...roid.com>,
"Laura Abbott" <laura@...bott.name>,
"John Stultz" <john.stultz@...aro.org>,
"Grant Likely" <grant.likely@...aro.org>,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
"Tom Gall" <tom.gall@...aro.org>,
"Colin Cross" <ccross@...gle.com>, devel@...verdev.osuosl.org,
"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
romlem@...gle.com, linux-arm-kernel@...ts.infradead.org,
"Feng Tang" <feng.tang@...el.com>,
"Marek Szyprowski" <m.szyprowski@...sung.com>, a.makarov@...ule.ru,
a.bogdanova@...ule.ru
Subject: Re: [RFC][PATCH 1/2] WIP: Devicetree bindings for Ion
20 октября 2015 г., 19:34, "Mitchel Humpherys" <mitchelh@...eaurora.org> написал:
> On Tue, Oct 13 2015 at 11:14:23 AM, Andrew <andrew@...mnt.org> wrote:
>
>> On 2015-10-12 21:39, Mitchel Humpherys wrote:
>>> On Tue, Oct 06 2015 at 05:35:41 PM, Rob Herring <robherring2@...il.com>
>>> wrote:
>>>> On Tue, Oct 6, 2015 at 3:47 PM, Laura Abbott <labbott@...oraproject.org>
>>>> wrote:
>>>
>>> [...]
>>>
>>>>> +Example:
>>>>> +
>>>>> + ion {
>>>>> + compatbile = "linux,ion";
>>>>> + #address-cells = <1>;
>>>>> + #size-cells = <0>;
>>>>> +
>>>>> + ion-system-heap {
>>>>> + linux,ion-heap-id = <0>;
>>>>> + linux,ion-heap-type = <ION_SYSTEM_HEAP_TYPE>;
>>>>> + linux,ion-heap-name = "system";
>>>>
>>>> How does this vary across platforms? Is all of this being pushed down
>>>> to DT, because there is no coordination of this at the kernel ABI
>>>> level across platforms. In other words, why can't heap 0 be hardcoded
>>>> as system heap in the driver. It seems to me any 1 of these 3
>>>> properties could be used to derive the other 2.
>>>
>>> The heap-id<->heap-type mapping isn't necessarily 1:1. As Laura
>>> indicated elsewhere on this thread, a given heap might need to be
>>> contiguous on one platform but not on another. In that case you just
>>> swap out the heap-type here and there's no need for userspace to change.
>>>
>>> The heap-name, OTOH, could be derived from the heap-id, which is what we
>>> hackishly do here [1] and here[2].
>>
>> By the way, since we agreed that heap id and heap type mappings
>> are not 1:1 - we have a problem with the current API.
>>
>> In userspace we currently have this:
>>
>> int ion_alloc(int fd, size_t len, size_t align, unsigned int heap_mask,
>> unsigned int flags, ion_user_handle_t *handle);
>>
>> We do not specify here what TYPE of heap we want the allocation to come
>> from.
>> This may lead to very unpleasant stuff when porting from one platfrom to
>> another.
Okay, I may be totally missing some point here then.
> What "unpleasant stuff" are you referring to, exactly?
It's not really clear for me how (and at where - kernel or userspace)
we should properly sort out cases when the next device the pipeline
introduces some constraints on the buffer it can use.
For instance: camera can save data into a non-contiguous buffer, but the
image processing hardware (that may or may not be involved) expects the
buffer to be contiguous.
> Abstracting the
> heap type away from userspace has actually made our lives easier since
> userspace doesn't need to know anything about the properties of the
> underlying platform. It just asks for a buffer from the "camera" heap,
> for example. On some platforms that's contiguous, on others it's not.
>
> -Mitch
>
> --
> Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
Regards,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists