From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dan.rpsys.net (dan.rpsys.net [93.97.175.187]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id 107CCE01382 for ; Mon, 11 Nov 2013 10:14:01 -0800 (PST) Received: from localhost (dan.rpsys.net [127.0.0.1]) by dan.rpsys.net (8.14.4/8.14.4/Debian-2.1ubuntu1) with ESMTP id rABIDePC015774; Mon, 11 Nov 2013 18:13:40 GMT X-Virus-Scanned: Debian amavisd-new at dan.rpsys.net Received: from dan.rpsys.net ([127.0.0.1]) by localhost (dan.rpsys.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id w5ZsLJ2rY8Xc; Mon, 11 Nov 2013 18:13:40 +0000 (GMT) Received: from [192.168.3.10] (rpvlan0 [192.168.3.10]) (authenticated bits=0) by dan.rpsys.net (8.14.4/8.14.4/Debian-2.1ubuntu1) with ESMTP id rABIDZCQ015756 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NOT); Mon, 11 Nov 2013 18:13:37 GMT Message-ID: <1384193612.22454.48.camel@ted> From: Richard Purdie To: "Barros Pena, Belen" Date: Mon, 11 Nov 2013 18:13:32 +0000 In-Reply-To: References: X-Mailer: Evolution 3.6.4-0ubuntu1 Mime-Version: 1.0 Cc: Paul Eggleton , "toaster@yoctoproject.org" Subject: Re: [noexec] = "1" X-BeenThere: toaster@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Web based interface for BitBake List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Nov 2013 18:14:05 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit On Mon, 2013-11-11 at 17:54 +0000, Barros Pena, Belen wrote: > It's been brought to my attention that we need to find a way to present > noexec tasks in Toaster (tasks with [noexec] = "1" set). I am trying to > figure out a way to fit them in the Toaster task classification, but I > think I am missing some context. > > Can someone explain how that [noexec] flag came to be and why was it > needed? A bit of history might help me come up with the right solution. When bitbake executes tasks, it forks off a new process which then sets up the environment and executes the task. This has overhead. We had a number of cases where we had "placeholder" tasks which were present for dependency reasons but were otherwise empty and had nothing to execute. We therefore decided to mark them "noexec" i.e. they have no executable content. Bitbake now knows that when it sees a noexec task, its there for dependency reasons only and it can skip the execution part which is good for performance. To see what I mean about dependency information, think about our packaging process. We have points in the build where we need to say "everything packaged" but don't care about specific package types. We therefore have a noexec do_package_write task which depends on do_package_write_{ipk,deb,rpm} depending on which are configured. There are also cases where we know the task will not do anything (e.g. package tasks of -native recipes). Marking them noexec means we can skip them faster. Does that help? Cheers, Richard