[Mesa-dev] [PATCH 20/25] anv: minor tweak in the generation script

Emil Velikov emil.l.velikov at gmail.com
Mon Apr 25 16:06:19 UTC 2016


On 22 April 2016 at 19:02, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 22 April 2016 at 18:52, Jason Ekstrand <jason at jlekstrand.net> wrote:
>> On Fri, Apr 22, 2016 at 10:27 AM, Emil Velikov <emil.l.velikov at gmail.com>
>> wrote:
>>>
>>> On 22 April 2016 at 04:36, Kristian Høgsberg <krh at bitplanet.net> wrote:
>>> > On Thu, Apr 21, 2016 at 5:18 PM, Emil Velikov <emil.l.velikov at gmail.com>
>>> > wrote:
>>> >> On 21 April 2016 at 22:50, Jason Ekstrand <jason at jlekstrand.net> wrote:
>>> >>> On Thu, Apr 21, 2016 at 6:16 AM, Emil Velikov
>>> >>> <emil.l.velikov at gmail.com>
>>> >>> wrote:
>>> >>>>
>>> >>>> From: Emil Velikov <emil.velikov at collabora.com>
>>> >>>>
>>> >>>> Rather than parsing through the same files (public headers) twice,
>>> >>>> tweak
>>> >>>> the python script to create both files at the same time.
>>> >>>
>>> >>>
>>> >>> Yes, but it takes almost zero time to generate them and it's going to
>>> >>> run in
>>> >>> parallel before anything else gets built.  I don't know that this
>>> >>> really
>>> >>> saves us anything.
>>> >>>
>>> >> Are you sure about this one? Based on my brief testing - things were
>>> >> pretty much stalled until both files were generated. I'll take another
>>> >> look.
>>> >>
>>> >> If anything the approach cuts down the bash output redirection and
>>> >> some nasty handling around it.
>>> >> Talking about the following $(PYHON) ....  > $@ || ($(RM) $@; false)
>>> >> and how often we forget to add it.
>>> >>
>>> Things get stalled for all the sources to be generated before proceeding
>>> with
>>> the compilation. Thus there isn't much benefit with the current approach
>>> afaict.
>>
>>
>> Yes, but if they run in parallel (which they will on *any* modern machine),
>> then it only takes as long as the longest one takes to run.  I don't think
>> it's actually helping anything to do them both with one python invocation
>> except for the make -j1 case.
>>
> Which afaict does not make any difference, as the overhead of starting
> a second instance mitigates any benefits. Also there is the makefile
> simplification/bugfix.
>
To put some numbers to my previous rather ambitious statement:

In seconds for 100 iterations, averaged on 5 runs.
Before:
 - foo.c - real 4.1, user 5.6, sys 0.5
 - foo.h - real 4.0, user 5.5, sys 0.4

After:
 - both files - real 4.2, user 5.6, sys 0.5

-Emil


More information about the mesa-dev mailing list