summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
Commit message (Collapse)AuthorAgeFilesLines
...
* bitbake: runqueue: Enable dynamic task adjustment to hash equivalencyRichard Purdie2019-08-061-10/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a compelling usecase for tasks being able to notify runqueue that their "unihash" has changed. When this is recieved, the hashes of all subsequent tasks should be recomputed and their new hashes checked against existing setscene validity. Any newly available setscene tasks should then be executed. Making this work effectively needs several pieces. An event is added which the cooker listen for. If a new hash becomes available it can send an event to notify of this. When such an event is seen, hash recomputations are made. A setscene task can't be run until all the tasks it "covers" are stopped. The notion of "holdoff" tasks is therefore added, these are removed from the buildable list with the assumption that some setscene task will run and cover them. The workers need to be notified when taskhashes change to update their own internal siggen data stores. A new worker command is added to do this which will affect all newly spawned worker processes from that worker. An example workflow which tests this code is: Configuration: BB_SIGNATURE_HANDLER = "OEEquivHash" SSTATE_HASHEQUIV_SERVER = "http://localhost:8686" $ bitbake-hashserv & $ bitbake automake-native $ bitbake autoconf-native automake-native -c clean $ bitbake m4-native -c install -f $ bitbake automake-native with the test being whether automake-native is installed from sstate. (Bitbake rev: 1f630fdf0260db08541d3ca9f25f852931c19905) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Add new unitaskhashes data variable which is cachedRichard Purdie2019-08-061-0/+1
| | | | | | | | | | | We need to preserve unihash task hashes between runs. Use the new SimpleCache class to create such a class within the signature generator which is loaded at init time and saved when builds complete. The default is unpopulated but metadata sig handlers can populate this cache. (Bitbake rev: 1f326f2c29c2664a5daaeeb0c1fd332630efbdba) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Improve scenequeue processing logicRichard Purdie2019-08-061-9/+3
| | | | | | | | | | | | Rather than a special copy of the data structure which we change, compute the logic using set operations from other data we have. This means we can add tasks back into the scenequeue without having to worry about reversing operations on this variable with all the potential bugs that might involve. (Bitbake rev: b707d0cbc25fa336a1e95ff588f1ea37eee063eb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix non setscene tasks targets being lostRichard Purdie2019-07-181-1/+9
| | | | | | | | | | | | If you specify both setscene and non-setscene tasks on the commandline, the non-setscene tasks could be missed, e.g. "bitbake X:do_patch X:do_populate_sysroot" and do_patch would fail to run. Fix the problem in runqueue and add a testcase. (Bitbake rev: 75292fdec5d9c0b5b3c554c4b7474a63656f7e12) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Optimise multiconfig with overlapping setsceneRichard Purdie2019-07-161-8/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently if a multiconfig build contains different configurations which have overlapping sstate artefacts, it will build them multiple times. This is clearly suboptimal and not what users want/expect. This adds code to detect this and stall all but one of the setscne tasks so that once its built, it can be found by the other tasks. We take care to iterate the multiconfigs in order so try and avoid dependency loops. We also match on PN+taskname+taskhash since this is what we know sstate in OE-Core would use. There are some tasks even within a multiconfig which match hashes (mostly do_populate_lic tasks) but those have a much higher chance of circular dependency so aren't work attempting to optimise. If a deadlock does occur the build will be slower but there is code to unbreak such a deadlock so it hopefully doens't break anything. Comments are injected into the test tasks so they have different task hashes and a new test for this optimisation is added. (Bitbake rev: a75c5fd6d4ec56836de0be2fe679c81297a080ad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Abstract hash verification functionRichard Purdie2019-07-161-40/+42
| | | | | | | | | Pull the common pieces of the hash verification code into a single function and reduce code duplication. (Bitbake rev: d0c39e05cef841c6f29cc6c919df6cbf271a9bda) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Whitespace fixRichard Purdie2019-07-161-19/+19
| | | | | | | | Fix some unwanted extra indentation. (Bitbake rev: 460a5c2e3e1d72f2da16fbc96832fadc82e72c52) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Simplify some convoluted logicRichard Purdie2019-07-161-6/+1
| | | | | | | | This was left from when task IDs complicated the code, simplify. (Bitbake rev: ae36b5c693bb9f13c88199e78e3c31616852eafb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Complete the merge of scenequeue and normal task executionRichard Purdie2019-07-151-117/+109
| | | | | | | | | | | | This combines the scqenequeue and normal task execution into one function and simplifies the state engine accordingly. This is the final set of cleanup to fully merge things without adding the extra noise to the previous commits. (Bitbake rev: 56f3396d8c7cfbebd175877c9d773e4e35f8dea1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Alter setscenewhitelist handlingRichard Purdie2019-07-151-49/+30
| | | | | | | | | | | | | | | | Since there is now parallel execution of setscene and normal tasks, the way setscenewhitelist handling worked can't function the way it did. Paul and I never liked its error output anyway. This code tries a different approach, checking the task at execution time but printing the uncovered task list. This code may need improvement after real world usage but can work with the new task flows. (Bitbake rev: a08d8ba5f5194a09391b1904ee31c04c5f0b1e28) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge the queues and execute setscene and normal tasks in ↵Richard Purdie2019-07-151-54/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | parallel This is the serious functionality change in this runqueue patch series of changes. Rather than two phases of execution, the scenequeue setscene phase, followed by normal task exeuction, this change allows them to execute in parallel together. To do this we need to handle marking of tasks as covered/uncovered in a piecemeal fashion on a task by task basis rather than in a single function. The code will block normal task exeuction until any setcene task which could cover that task is executed and its status is known. There is a slight optimisation which could be possible here at the risk of races but that doesn't seem worthwhile. The state engine isn't entirely cleaned up in this commit (see FIXME) and the setscenewhitelist functionality is broken by it (see following patches) however its good enough to test with normal workflows. (Bitbake rev: 58b3f0847cc2d47e76f74d59dcbbf78fe41b118b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Clarify scenequeue_covered vs. tasks_coveredRichard Purdie2019-07-151-8/+12
| | | | | | | | | | It wasn't clear whether the variable contained just setscene covered tasks or all covered tasks. We need both sets of data so lets just have two clearly named variables. (Bitbake rev: a9fb55627762e7c8b3df30b335ad0b2f1adc080e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Further scheduler buildable tasks cleanupRichard Purdie2019-07-151-8/+1
| | | | | | | | The code for setting up buildable tasks can be simplified. (Bitbake rev: ce3cd2df5b034f8dbdcf9834e8b9a393b6b01aad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove pointless variableRichard Purdie2019-07-151-9/+10
| | | | | | | | | Its now clear a variable is pointless, remove it and tweak the logic so the data structure of the existing variable matches what we need. (Bitbake rev: c257c7b93b86dd794d31307e820215301c7ccf3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Code simplificationRichard Purdie2019-07-151-4/+1
| | | | | | | | Simplfy some looping code which no longer has any purpose. (Bitbake rev: 01dfc37095e5c661f275917d22aa1c1ad7f24d8d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Tweak comments and debug codeRichard Purdie2019-07-151-1/+4
| | | | | | | | | Add some extra comments to build_scenequeue_data() and fix the debug code so it actually works. (Bitbake rev: 8ea6d8193fc89b4596da69e400fbc50e5a443f9f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Simplify scenequeue unskippable calculationRichard Purdie2019-07-151-32/+13
| | | | | | | | | | | | | The existing code to compute the 'unskippable' setscene task list is overcomlicated, so replace it with something functionally equivalent but simpler and more efficient. We don't need to process all chains, just the 'top' ones to the first setscene tasks. This also makes the code more readable. (Bitbake rev: 06982c82f10cbdbea0b601e5cf0450a2a99c14c2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Add covered_tasks (or 'collated_deps') to scenequeue dataRichard Purdie2019-07-151-0/+6
| | | | | | | | | | | | Its useful to have a list of all the tasks a given setscene task covers and we can easily generate this data whilst doing other data processing. This is used in later changes to runqueue rather than trying to compute it on the fly which is difficult. (Bitbake rev: 63ddc2fec40bd1b456702b97091f9dc5ef70a941) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: event/runqueue: Drop StampUpdate event, its pointless/unusedRichard Purdie2019-07-151-9/+0
| | | | | | | | | | Whilst this class has existed for years, it doesn't have any users and has a questionable interface. Drop it to allow for further simplification and changes. (Bitbake rev: 3ab51764f7965d696bb2c5a872bf161473df4289) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fold remains of the scenequeue setup into RunQueueExecuteRichard Purdie2019-07-151-47/+42
| | | | | | | | | Also move the scheduler init over, apart for the builtable tasks part which need to remain called later. (Bitbake rev: ad30a16cd30f9eab0224eb271f98f9a24516b621) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Simplify _execute_runqueue logicRichard Purdie2019-07-151-22/+24
| | | | | | | | | Cleanup to the _execute_runqueue logic to reduce indentation, drop the dummy executor class concept and prepare for further changes. (Bitbake rev: 726e3c61a69fef16e605ba9b911a17cd99f1a2c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove RunQueueExecuteScenequeue and RunQueueExecuteTasksRichard Purdie2019-07-151-56/+43
| | | | | | | | | | Replace the remains of the Tasks and Scenequeue Tasks classes with simple function calls. Also drop the dummy version of the execution class to simplify further changes as its not needed. (Bitbake rev: 33805394310046cd58c2194f6d063b3946811014) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix counter/task updating glitchRichard Purdie2019-07-151-1/+1
| | | | | | | | | | | Some tasks were not being marked as covered/notcovered since internal calls were being made without using the external call points. Fix the accounting issues by using the correct external call points. (Bitbake rev: fe0a7be03e8baed22f6b0915cd5f7956ba3fbf83) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge scenequeue and real task queue code togetherRichard Purdie2019-07-151-258/+258
| | | | | | | | | Merge the unique functions from the Tasks and Scenequeue Tasks classes into the common base class. (Bitbake rev: 7539fe22bc831bb835901e3aca77985ab4ebc4c7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge stats handling together for setscene/real tasksRichard Purdie2019-07-151-19/+20
| | | | | | | | | Use a seperate stats class for scenequeue tasks and move the setup into the base class. Update references accordingly. (Bitbake rev: 32f39bbd5d3b7394689da9ba05be2c15b4523b27) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Uniquely namespace the scenequeue functionsRichard Purdie2019-07-151-39/+47
| | | | | | | | | | | | In preparation for merging the setscene and normal task execution, uniquely namespace the scenequeue specific functions. For the one shared function, add the "sq_live" variable so we know which functions to send the results to. (Bitbake rev: 2cbe9399902ba67dca566c7344b2247412cf4d5c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Factor out the process_setscene_whitelist checksRichard Purdie2019-07-151-40/+45
| | | | | | | | | For ease of refactoring, move this code to its own separate function until it becomes clear what we should do with it. (Bitbake rev: 4b96b204f986dd62fba485876b7208665c14268d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove unused function parameterRichard Purdie2019-07-151-2/+3
| | | | | | | | | The function is only used by setscene code so the parameter is pointless, remove it. (Bitbake rev: b52dbf5e9cb327f8434213d286ad333f5dbad1d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Move scenequeue data generation to a separate functionRichard Purdie2019-07-151-224/+244
| | | | | | | | | | | Move the bulk of the scenequeue data generation to its own function allowing for refactoring of the code. Create the start of an object to represent this data. (Bitbake rev: 68326e0426f25a1bbfd5ae3aa278656a3744053e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove now uneeded codeRichard Purdie2019-07-151-25/+1
| | | | | | | | | | With the removal of the setcene verify code, this additional code block is also now unneeded since tasks can't be forced at this point in the code any move. This effectively reverts f21910157d873c030b149c4cdc5b57c5062ab5a6. (Bitbake rev: 4514fe4f045d595cc9b938f9326f66f2b3e99f71) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Drop unused BB_SETSCENE_VERIFY_FUNCTION2Richard Purdie2019-07-151-30/+3
| | | | | | | | | | | | Nothing in OE-Core uses this and hasn't since 2017. It wasn't needed by core metadata since the switch to recipe specific sysroots. Since this function would be hard to implement with the planned changes to runqueue, drop it which allows simplification and further code cleanup. (Bitbake rev: 5deaa5df730a8a846f3192b4a639b7a2a72c1b71) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Tweak buildable variable handling in schedulerRichard Purdie2019-07-151-4/+5
| | | | | | | | | Work off a copy of the 'buildable' class variable, allowing easier future code changes. (Bitbake rev: e851169acfebba404514135bf512e6f045739a13) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Add --skip-setscene optionJoshua Watt2019-07-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an option to skip _setscene only if they would normally be executed, without ignoring sstate completely. Previously, '--no-setscene' would allow a build that completely ignored sstate and _setscene tasks, and '--setscene-only' would allow a build that only ran _setscene tasks, but there was no option do a build that would respect tasks previously restored from sstate and build everything else. Now one can run: bitbake --setscene-only IMAGE; bitbake --skip-setscene IMAGE which is functionally equivalent to: bitbake IMAGE The indented use is to allow a build to complete successfully in the presence of _setscene task failures by splitting apart the two phases e.g.: (bitbake -k --setscene-only IMAGE || true) && bitbake --skip-setscene IMAGE (Bitbake rev: 813ba5b7c13b573a0b813b628a819bdbf0627540) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: lib: Cleanup /usr/bin/env pythonRobert Yang2019-06-281-1/+0
| | | | | | | (Bitbake rev: cc712f3257904960247a7532cfc4611f3dccd36c) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: multiconfig: Switch from 'multiconfig' -> 'mc'Richard Purdie2019-06-101-4/+4
| | | | | | | | | | | | | | After real world use its clear the "multiconfig:" prefix to multiconfig tasks, whilst clear, is also clumbersome. Switch to use the short version instead. mcdepends will continue to work with "multiconfig:" for now as well. The commandline will only accept mc: going forward. [YOCTO #11168] (Bitbake rev: 821daf093b76504067a8b77dfa4b181af6ec92b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Strip old editor directives from file headersRichard Purdie2019-05-041-2/+0
| | | | | | | | | | There are much better ways to handle this and most editors shouldn't need this in modern times, drop the noise from the files. Its not consitently applied anyway. (Bitbake rev: 5e43070e3087d09aea2f459b033d035c5ef747d0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Drop duplicate license boilerplace textRichard Purdie2019-05-041-12/+0
| | | | | | | | | | With the introduction of SPDX-License-Identifier headers, we don't need a ton of header boilerplate in every file. Simplify the files and rely on the top level for the full licence text. (Bitbake rev: 695d84397b68cc003186e22f395caa378b06bc75) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Add initial pass of SPDX license headers to source codeRichard Purdie2019-05-041-0/+2
| | | | | | | | | | | | | | | | | This adds the SPDX-License-Identifier license headers to the majority of our source files to make it clearer exactly which license files are under. The bulk of the files are under GPL v2.0 with one found to be under V2.0 or later, some under MIT and some have dual license. There are some files which are potentially harder to classify where we've imported upstream code and those can be handled specifically in later commits. The COPYING file is replaced with LICENSE.X files which contain the full license texts. (Bitbake rev: ff237c33337f4da2ca06c3a2c49699bc26608a6b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-diffsigs: Use 4 spaces as indent for recursecbRobert Yang2019-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | It used 2 spaces as indent which wasn't clear enough, and might cause confusions, people might think it was in wrong format. Fixed: $ bitbake bc-native -ccleansstate -Snone $ bitbake bc-native -ccleansstate -Snone $ bitbake-diffsigs tmp/stamps/x86_64-linux/bc-native/1.07.1-r0.do_cleansstate.sigdata.* * Before: Hash for dependent task bc/bc_1.07.1.bb.do_clean:virtual:native changed from [foo] Taint (by forced/invalidated task) changed from [foo] Taint (by forced/invalidated task) changed from [foo] * Now Hash for dependent task bc/bc_1.07.1.bb.do_clean:virtual:native changed from [foo] Taint (by forced/invalidated task) changed from [foo] Taint (by forced/invalidated task) changed from [foo] (Bitbake rev: 5127a8d8e6d53f5f43a6ada7fd09b6b0c24ae989) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Filter out multiconfig dependencies from BB_TASKDEPDATARichard Purdie2019-02-251-0/+19
| | | | | | | | | | | | | | | | | The consumers of BB_TASKDEPDATA in OE metadata can't cope with multiconfig dependencies. The choice is either to start adding code to each of them to filter out multiconfig dependencies, or do this at source. After consideration we've decided to do this at source as doing otherwise is code duplication and error prone and in any case we've looked at, they don't make sense. [YOCTO #13090] [YOCTO #13130] (Bitbake rev: 531dcd221a10853f45cc057b52bb2d5083e0ee42) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix dependency loop analysis 'hangs'Richard Purdie2019-02-171-3/+9
| | | | | | | | | | | | | Currently the mechanism for breaking out of the dependnecy loop analysis code is broken and doesn't work leading to bitbake appearing to hang. Add in a custom exception for this purpose and fix the code to exit as intended, fixing the hang and making the dependency loop code usable again. (Bitbake rev: 8756e4ade67c16e35269ea0659e10b9ebaa6117f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: Allow arguments in FAKEROOTCMDJoshua Watt2019-02-151-2/+3
| | | | | | | | | | | Changes FAKEROOTCMD so that it can accept additional arguments to pass to the fakeroot implementation instead of being treated as a simple command (Bitbake rev: 4fa51afb56b090cf1f746842acd602c9536715d5) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: runqueue: __find_md5__ -> __find_sha256Robert Yang2019-01-141-2/+2
| | | | | | | | | | | | | | | | | | Fixed: Create a new build $ bitbake quilt-native -ccleansstate -Snone $ bitbake quilt-native -ccleansstate -Sprintdiff [snip] latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1] > prevh = __find_md5__.search(latestmatch).group(0) output = bb.siggen.compare_sigfiles(latestmatch, match, recursecb) AttributeError: 'NoneType' object has no attribute 'group' (Bitbake rev: 15d20d948359fa1d7a7a754b2a1d8ed9f4ca0480) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: runqueue: Use multiconfig name to fetch unihashJoshua Watt2019-01-111-1/+1
| | | | | | | | | | | | The unihash should be fetched using the task filename that includes the multiconfig prefixes. [YOCTO #13124] (Bitbake rev: 5e7f4e77e27bceaf6c68137cacb4f8d7d7de49dd) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Pass unique hash to hash validateJoshua Watt2019-01-031-11/+30
| | | | | | | | | | | | | If the unique hash is being used to track task dependencies, the hash validation function needs to know about it in order to properly validate the hash. [YOCTO #13030] (Bitbake rev: 9a529bb2658a4046dafbf32e1eb503d84e64e947) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Pass unique hash to taskJoshua Watt2019-01-031-4/+6
| | | | | | | | | | | The unique hash is now passed to the task in the BB_UNIHASH variable [YOCTO #13030] (Bitbake rev: aab80b099f6f259e4b57cba2c26dd385d07c5947) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Track task unique hashJoshua Watt2019-01-031-8/+17
| | | | | | | | | | | Requests the task unique hash from siggen and tracks it [YOCTO #13030] (Bitbake rev: 1ecc47f0831b35c8c92b37a81cef4e43ff9f67b2) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: Pass taskhash as runtask parameterJoshua Watt2018-12-071-9/+6
| | | | | | | | | | | | | | | Pass the task hash as a parameter to the 'runtask' message instead of passing the entire dictionary of hashes when the worker is setup. This is possible less efficient, but prevents the worker taskhashes from being out of sync with the runqueue in the event that the taskhashes in the runqueue change. [YOCTO #13030] (Bitbake rev: 1e86d8c1bec7ea5d016a5ad2097f999362e29033) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Ensure disk monitor is started when no setscene tasks are runRichard Purdie2018-12-011-5/+6
| | | | | | | | | | | Currently if there are no setscene tasks, the disk monitor isn't started. Move the startup code to somewhere to ensure it always is started. This issue would partially explain occasional selftest failures. (Bitbake rev: 5ba83ee25c1c9cba349edb68a22476b1d5fca6ce) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Ensure setscene tasks that aren't covered get builtRichard Purdie2018-09-101-2/+4
| | | | | | | | | | | | | | | | | | | | Running "bitbake gconf-native -c cleansstate; bitbake core-image-sato:do_populate_sdk" results in a build where it fails to find gconf-native and fails to build it, merrily trying to build the SDK without gconf being present. The issue is the missing setscene tasks are effectively ignored as the later code in runqueue thinks that since other sstate tasks are present, these 'cover' the missing one. In reality we need to call BB_SETSCENE_DEPVALID to make that decision. To do that we need a "reduced" setscene dependency graph which we don't have in main task graph context. Since that was already done in setscene, we should just assume anything in the non-covered list needs to be built. (Bitbake rev: 464d0339add15bc8b4344ddd1e4c49706e3c0a02) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>