Skip to contentSkip to conversation

linux-yocto-dev: Handle performance regression

PATCH In review Richard Purdie 2 participants 2 messages Jul 8, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 linux-yocto-dev: Handle performance regression

After commit 0437a59e3c298d40aaa96af09b80bff8fcbe292d, the linux-yocto-dev recipe is being parsed every time we run "bitbake -p". This was spotted on some performance benchmarks and showed up as a performance regression.

We can tweak the recipe to ensure this doesn't happen and that its only used if selected.

meta/recipes-kernel/linux/linux-yocto-dev.bb +5 -2
index 3085263..c50b319 100644
@@ -20,6 +20,9 @@ include recipes-kernel/linux/linux-yocto-dev-revisions.inc
 python () {
     if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-dev":
         raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-dev to enable it")
+    else:
+        d.setVar("SRCREV_machine", "${AUTOREV}")
+        d.setVar("SRCREV_meta", "${AUTOREV}")
 }
 
 KBRANCH = "standard/base"
@@ -33,8 +36,8 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name
 # linux-yocto-dev is the preferred provider, they will be overridden to
 # AUTOREV in following anonymous python routine and resolved when the
 # variables are finalized.
-SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
-SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
+SRCREV_machine ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
+SRCREV_meta ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
 
 LINUX_VERSION ?= "4.6-rc+"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
Acked-by on v1 1/1
#1 lore raw
Quoted 6 lines · Richard Purdie

After commit 0437a59e3c298d40aaa96af09b80bff8fcbe292d, the linux-yocto-dev recipe is being parsed every time we run "bitbake -p". This was spotted on some performance benchmarks and showed up as a performance regression.

We can tweak the recipe to ensure this doesn't happen and that its only used if selected.

Makes sense to me.

Quoted 30 lines
meta/recipes-kernel/linux/linux-yocto-dev.bb +5 -2
index 3085263..c50b319 100644
@@ -20,6 +20,9 @@ include recipes-kernel/linux/linux-yocto-dev-revisions.inc
  python () {
      if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-dev":
          raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-dev to enable it")
+    else:
+        d.setVar("SRCREV_machine", "${AUTOREV}")
+        d.setVar("SRCREV_meta", "${AUTOREV}")
  }
 
  KBRANCH = "standard/base"
@@ -33,8 +36,8 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name
  # linux-yocto-dev is the preferred provider, they will be overridden to
  # AUTOREV in following anonymous python routine and resolved when the
  # variables are finalized.
-SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
-SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
+SRCREV_machine ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
+SRCREV_meta ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
 
  LINUX_VERSION ?= "4.6-rc+"
  LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"