[PATCH v4] devtools: parallelize ABI check
Ferruh Yigit
ferruh.yigit at amd.com
Wed Jan 18 12:43:11 CET 2023
On 1/18/2023 10:45 AM, David Marchand wrote:
> On Thu, Jan 12, 2023 at 3:15 PM Ferruh Yigit <ferruh.yigit at amd.com> wrote:
>>>> abidiff $ABIDIFF_OPTIONS $dump $dump2 || {
>>>> abiret=$?
>>>> - echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'" >&2
>>>> - error=1
>>>> - echo
>>>> + echo "Error: ABI issue reported for abidiff $ABIDIFF_OPTIONS $dump $dump2" >&2
>>>> if [ $(($abiret & 3)) -ne 0 ]; then
>>>> echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue." >&2
>>>> fi
>>>> @@ -57,8 +55,13 @@ for dump in $(find $refdir -name "*.dump"); do
>>>> if [ $(($abiret & 8)) -ne 0 ]; then
>>>> echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI." >&2
>>>> fi
>>>> - echo
>>>> + return 1
>>>> }
>>>> -done
>>>> +}'
>>>> +
>>>> +error=
>>>> +find $refdir -name "*.dump" |
>>>> +xargs -n1 -P0 sh -c 'eval "$diff_func"; run_diff $0' ||
>>>> +error=1
>>>>
>>>> [ -z "$error" ] || [ -n "$warnonly" ]
>>>
>>> For the record, on my system, calling this script is ~5 times faster:
>>> - before
>>> real 0m5,447s
>>> user 0m4,497s
>>> sys 0m0,937s
>>>
>>> - after
>>> real 0m1,202s
>>> user 0m10,784s
>>> sys 0m2,027s
>>>
>>>
>>>> diff --git a/devtools/gen-abi.sh b/devtools/gen-abi.sh
>>>> index f15a3b9aaf..61f7510ea1 100755
>>>> --- a/devtools/gen-abi.sh
>>>> +++ b/devtools/gen-abi.sh
>>>> @@ -22,5 +22,6 @@ for f in $(find $installdir -name "*.so.*"); do
>>>> fi
>>>>
>>>> libname=$(basename $f)
>>>> - abidw --out-file $dumpdir/${libname%.so*}.dump $f
>>>> -done
>>>> + echo $dumpdir/${libname%.so*}.dump $f
>>>> +done |
>>>> +xargs -n2 -P0 abidw --out-file
>>>> --
>>>> 2.39.0
>>>>
>>>
>>> - before
>>> real 0m8,237s
>>> user 0m7,704s
>>> sys 0m0,504s
>>>
>>> - after
>>> real 0m2,517s
>>> user 0m14,145s
>>> sys 0m0,766s
>>>
>>>
>>> Ferruh, I am seeing quite different numbers for running those scripts
>>> (clearly not of the minute order).
>>> I switched to testing/building in tmpfs some time ago.
>>> It requires a good amount of memory (I empirically allocated 40G), but
>>> maybe worth a try for you?
>>>
>>
>> I run 'test-meson-builds.sh' script directly and yes I am getting
>> different numbers although there is still improvement, not in scale with
>> what you are getting, with v4 I have following:
>>
>> - before
>> real 10m3.248s
>> user 39m8.664s
>> sys 14m52.870s
>>
>> - after
>> real 7m49.086s
>> user 39m59.507s
>> sys 15m0.598s
>
> Well, yes, I did not realise which apples you were looking at :-).
> The change looks good in any case.
>
Ack
More information about the dev
mailing list