[OE-core] [PATCH V2] perf: make a copy of kernel source to perf workdir

Hongxu Jia hongxu.jia at windriver.com
Tue Apr 24 01:44:39 UTC 2018


On 2018年04月24日 08:45, Bruce Ashfield wrote:
>
>
> On Mon, Apr 23, 2018 at 6:05 PM, Richard Purdie 
> <richard.purdie at linuxfoundation.org 
> <mailto:richard.purdie at linuxfoundation.org>> wrote:
>
>     On Mon, 2018-04-23 at 13:51 -0400, Bruce Ashfield wrote:
>     > On 2018-04-23 4:13 AM, Hongxu Jia wrote:
>     > >
>     > > Since perf modify kernel source which shared by multiple
>     > > recipes, it probably caused kernel-devsrc compile failure
>     > > at world build.
>     > > ...
>     > > >
>     > > > 0 blocks
>     > > > cpio: ./tools/perf/arch/arm/util/sedr7ORqk: Cannot stat:
>     > > No such file or directory
>     > > >
>     > > > 0 blocks
>     > > ...
>     > > cpio tried to find a file at ${S}/tools/perf and failed
>     > > if the input list is not valid.
>     > >
>     > > Make a copy of kernel shared source directory into a perf workdir
>     > > could fix the issue.
>     > >
>     > > Drop `Fix for rebuilding' which is obsolete
>     > >
>     > > Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com
>     <mailto:hongxu.jia at windriver.com>>
>     > > ---
>     > >   meta/recipes-kernel/perf/perf.bb <http://perf.bb> | 11
>     ++++++-----
>     > >   1 file changed, 6 insertions(+), 5 deletions(-)
>     > >
>     > > diff --git a/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
>     b/meta/recipes-
>     > > kernel/perf/perf.bb <http://perf.bb>
>     > > index 872b5f0..8b40806 100644
>     > > --- a/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
>     > > +++ b/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
>     > > @@ -61,7 +61,7 @@ export PERL_ARCHLIB =
>     "${STAGING_LIBDIR}${PERL_OW
>     > > N_DIR}/perl/${@get_perl_version
>     > >
>     > >   inherit kernelsrc
>     > >
>     > > -B = "${WORKDIR}/${BPN}-${PV}"
>     > > +S = "${WORKDIR}/${BP}"
>     > >   SPDX_S = "${S}/tools/perf"
>     > >
>     > >   # The LDFLAGS is required or some old kernels fails due missing
>     > > @@ -119,11 +119,12 @@ do_install() {
>     > >     fi
>     > >   }
>     > >
>     > > -do_configure_prepend () {
>     > > -    # Fix for rebuilding
>     > > -    rm -rf ${B}/
>     > > -    mkdir -p ${B}/
>     > > +do_configure[prefuncs] += "git_clone_kernel_source"
>     > > +git_clone_kernel_source () {
>     > > +    git clone --single-branch ${STAGING_KERNEL_DIR} ${S}
>     > I probably would have used "cp -a -r", or similar. Since it
>     > is possible that a kernel may not actually be a git repo
>     (linux-yocto
>     > always is, but that is just one data point).
>     >
>     > Also, did you try just copying the tools SRC dir + whatever
>     > infrastructure is needed to build ? That will save us a LOT
>     > of i/o when moving the source around for perf to build.
>     >
>

OK, I will copy the perf used src dir rather than the entire project source.

>     > But outside of those details/mechanics, the approach is sound.
>
>     Our "copy hardlink tree" function, whatever its called is sometimes of
>     use in these cases...
>

Got it, I will use oe.path.copyhardlinktree

//Hongxu

>     I think I'm the current owner of a bug in this area which I've sadly
>     not gotten to yet :(.
>
>     Also, have we considered the alternative - not copying tools/perf for
>     the kernel devsrc?
>
>
> We could, but sometimes the devsrc is actually used to build the tools.
> I know that I have used it to build perf in the past.
>
> It is mostly skipped in my rewritten version (which I'll resubmit 
> after 2.5
> releases). So for now, I'm thinking the smallest footprint change makes
> the most sense (as to which that is, that is probably not black and 
> white).
>
> Bruce
>
>
>     Cheers,
>
>     Richard
>     -- 
>     _______________________________________________
>     Openembedded-core mailing list
>     Openembedded-core at lists.openembedded.org
>     <mailto:Openembedded-core at lists.openembedded.org>
>     http://lists.openembedded.org/mailman/listinfo/openembedded-core
>     <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>
>
>
>
> -- 
> "Thou shalt not follow the NULL pointer, for chaos and madness await 
> thee at its end"


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180424/177220b2/attachment-0002.html>


More information about the Openembedded-core mailing list