[OE-core] [PATCH 1/8] python: Run pybench once for optimisation task in pgo

Robert Yang liezhi.yang at windriver.com
Thu Sep 6 08:15:47 UTC 2018


Hi RP,

On 09/06/2018 12:52 AM, Richard Purdie wrote:
> From: Ross Burton <ross.burton at intel.com>
> 
> There is no good reason to loop 10 times on the test since the profile
> optimisation won't change between runs, we don't need/want a statistical
> average. This is just burning cpu cycles, just make 1 run.
> 
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
>   meta/recipes-devtools/python/python3_3.5.5.bb | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-devtools/python/python3_3.5.5.bb b/meta/recipes-devtools/python/python3_3.5.5.bb
> index bfe91fb1c71..8afe15eee6a 100644
> --- a/meta/recipes-devtools/python/python3_3.5.5.bb
> +++ b/meta/recipes-devtools/python/python3_3.5.5.bb
> @@ -74,7 +74,7 @@ TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
>   SDK_CC_ARCH += "-DNDEBUG -fno-inline"
>   EXTRA_OEMAKE += "CROSS_COMPILE=yes"
>   EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip --enable-optimizations"
> -PYTHON3_PROFILE_TASK ?= "${S}/Tools/pybench/pybench.py -n 10"
> +PYTHON3_PROFILE_TASK ?= "${S}/Tools/pybench/pybench.py -n 1"

What's the fault if I don't run it, please ? This is very slow, here are some
rough thoughts to speed it up:

1) Make it optional to run, and default to no if there isn't any faults without 
running it.

2) Use qemu-kvm to run the tests if qemu kvm has been setup (I tried it, it can
    reduce form 12m -> 4m, saved 8 mins:
    * Without kvm
      $ bitbake python3 -ccleansstate && time bitbake python3
      real    12m28.070s
      user    0m1.316s
      sys     0m0.184s

    * With kvm:
    real    3m53.781s
    user    0m1.080s
    sys     0m0.220s

   We may need a oe-core/scripts/qemu-kvm-check to check strictly whether kvm
   can be used or not.

Please feel free to give your comments.

// Robert

>   
>   export CROSS_COMPILE = "${TARGET_PREFIX}"
>   export _PYTHON_PROJECT_BASE = "${B}"
> 



More information about the Openembedded-core mailing list