← Back to team overview

ubuntu-phone team mailing list archive

Re: mapplauncher

 

On 07/29/2015 09:28 AM, Jamie Strandboge wrote:
> On 07/29/2015 11:09 AM, Tyler Hicks wrote:
>> On 2015-07-29 11:25:27, Alberto Mardegan wrote:
>>> On 07/29/2015 07:07 AM, Tyler Hicks wrote:
> 
>>>> The exec() will need to occur after special process initialization
>>>> such as setting rlimits, configuring cgroups, etc., but before
>>>> attempting to preload any libraries.
>>>>
>>>> I've prototyped the difference with a simple proof-of-concept of a 
>>>> booster daemon and app program and the exec() slows down things a 
>>>> considerable amount. Any benchmarks should definitely include such
>>>> a change in order to not get any hopes up by looking at the
>>>> non-exec()ing benchmark numbers.
>>>
>>> But the exec() does not necessarily need to load the application,
>>> right? It could happen when the user has not yet chosen which
>>> application to start, and instead of executing an app, it could exec()
>>> into a loader process which does all library preloading and
>>> initializing, and then (when the user launches an app) dlopen the app,
>>> close any unneeded file descriptors, call aa_change_profile and
>>> finally run main(). Then of course it would have to quit, and not be
>>> reused.
>>
>> Yes, exactly!
>>
>>> This would still preserve the ASLR, wouldn't it?
>>
>> Yes. I think there will still be plenty of speed benefits. I don't think
>> the memory footprint benefits of the booster processes will be nearly as
>> good, though. My whole point is that it is worth benchmarking because I
>> think we'll still good performance.
>>
> I think it is important to note (and please correct me if I am wrong! :) that,
> today, there is no memory footprint benefit to lose because, today, we have a
> full fork/exec of each app. Therefore if we can realize 'plenty of speed
> benefits' as Tyler believes we can (and that people should benchmark), that is a
> complete 'win' for the platform.
> 
Not true, there certainly is a small foot print. The booster code will
increase an apps process size a small amount, and having a pool of available
booster apps will also take some more memory. The loss shouldn't be large but
it will be there.



References