<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openembedded-core.git/meta/recipes-kernel/kern-tools, branch 2016-10</title>
<subtitle>Mirror of openembedded-core</subtitle>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/'/>
<entry>
<title>kern-tools: make patches with shell-unsafe characters valid</title>
<updated>2016-10-19T16:07:46+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2016-10-19T01:08:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=727afe9e6fb9ef4a24a36cc907ebb6336d12184e'/>
<id>727afe9e6fb9ef4a24a36cc907ebb6336d12184e</id>
<content type='text'>
If a patch contains characters like ; or (), it can cause processing
errors in the patch queue.

We had previously fixed this issue by renaming the patches to not
include invalid characters, but with this change to the kern tools
that ensures patch names are wrapped in quotes, we avoid shell
processing and hence they are valid.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a patch contains characters like ; or (), it can cause processing
errors in the patch queue.

We had previously fixed this issue by renaming the patches to not
include invalid characters, but with this change to the kern tools
that ensures patch names are wrapped in quotes, we avoid shell
processing and hence they are valid.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kernel-yocto: streamline patch, configuration and audit phases</title>
<updated>2016-08-18T08:27:13+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2016-08-15T18:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=0f698dfd1c8bbc0d53ae7977e26685a7a3df52a3'/>
<id>0f698dfd1c8bbc0d53ae7977e26685a7a3df52a3</id>
<content type='text'>
We've been running with a set of kern-tools that were designed to work
with build systems that knew nothing about git, trees, commits, etc.

As such, there's been a set of shims/wrappers in place to work with
within bitbake/oe-core. These were the *me scripts: createme, updateme,
patchme and configme.

With this commit, we strip that legacy code and use the tools directly.
This means less complexity, fewer corner cases .. and no surprises
when the tools are arunning. As another benefit, the tools consume
much less time during a typical build and have no noticeable impact
on the overall build time.

Existing .scc files, features, and processing are not impacted as
these tools are compatible with existing feature descriptions and
kerne configuration fragments.

The audit of kernel configuration fragments is now detached
from the linux-yocto build structure and process. This means that
they can eventually be tweaked to offer kernel audit to any type of
kernel build and configuration process.

Additionally, the kernel symbol audit phase can now resolve symbol
dependencies and offer guidance when a symbol is missing:

   WARNING: linux-yocto-4.4.15+gitAUTOINC+b030d96c7b_f5e2c49d58-r0 do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration:

   ---------- CONFIG_BT_6LOWPAN -----------------
   Config: CONFIG_BT_6LOWPAN
   From: /home/bruce/poky/build/tmp/work-shared/qemux86-64/kernel-source/.kernel-meta/configs/standard/features/bluetooth/bluetooth.cfg
   Requested value:  CONFIG_BT_6LOWPAN=y
   Actual value:

   Config 'BT_6LOWPAN' has the following conditionals:
     BT_LE &amp;&amp; 6LOWPAN (value: "n")
   Dependency values are:
     BT_LE [y] 6LOWPAN [n]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We've been running with a set of kern-tools that were designed to work
with build systems that knew nothing about git, trees, commits, etc.

As such, there's been a set of shims/wrappers in place to work with
within bitbake/oe-core. These were the *me scripts: createme, updateme,
patchme and configme.

With this commit, we strip that legacy code and use the tools directly.
This means less complexity, fewer corner cases .. and no surprises
when the tools are arunning. As another benefit, the tools consume
much less time during a typical build and have no noticeable impact
on the overall build time.

Existing .scc files, features, and processing are not impacted as
these tools are compatible with existing feature descriptions and
kerne configuration fragments.

The audit of kernel configuration fragments is now detached
from the linux-yocto build structure and process. This means that
they can eventually be tweaked to offer kernel audit to any type of
kernel build and configuration process.

Additionally, the kernel symbol audit phase can now resolve symbol
dependencies and offer guidance when a symbol is missing:

   WARNING: linux-yocto-4.4.15+gitAUTOINC+b030d96c7b_f5e2c49d58-r0 do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration:

   ---------- CONFIG_BT_6LOWPAN -----------------
   Config: CONFIG_BT_6LOWPAN
   From: /home/bruce/poky/build/tmp/work-shared/qemux86-64/kernel-source/.kernel-meta/configs/standard/features/bluetooth/bluetooth.cfg
   Requested value:  CONFIG_BT_6LOWPAN=y
   Actual value:

   Config 'BT_6LOWPAN' has the following conditionals:
     BT_LE &amp;&amp; 6LOWPAN (value: "n")
   Dependency values are:
     BT_LE [y] 6LOWPAN [n]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: handle directories with, or without, trailing /</title>
<updated>2016-05-09T07:03:57+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2016-04-21T02:37:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=92ba77bea59a33b0ddbd5db36e2a1b42e8fd7190'/>
<id>92ba77bea59a33b0ddbd5db36e2a1b42e8fd7190</id>
<content type='text'>
Robert P. J. Day reported that configuration fragments and kernel
features were not being found when organized in a particular manner:

  linux
   - $BOARD
       - mm.patch
       - mm.scc
   - ssd_sil.cfg
   - ssd_sil.patch
   - ssd_sil.scc
   - uio.cfg
   .. etc

There was a bug in the tools that did not handle the mix of subdirs
properly and ended up leaving a trailing / on the elements *not* in
the $BOARD subdir. As a result, the configuration fragments were not
properly found when searching the include paths, and a configuration
failure was triggered (due to missing files).

This change tweaks the tools to always check a path with and without
a trailing / when processing config fragments so they can be later
found when processing the configuration of the kernel.

Reported-by: "Robert P. J. Day" &lt;rpjday@crashcourse.ca&gt;
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Robert P. J. Day reported that configuration fragments and kernel
features were not being found when organized in a particular manner:

  linux
   - $BOARD
       - mm.patch
       - mm.scc
   - ssd_sil.cfg
   - ssd_sil.patch
   - ssd_sil.scc
   - uio.cfg
   .. etc

There was a bug in the tools that did not handle the mix of subdirs
properly and ended up leaving a trailing / on the elements *not* in
the $BOARD subdir. As a result, the configuration fragments were not
properly found when searching the include paths, and a configuration
failure was triggered (due to missing files).

This change tweaks the tools to always check a path with and without
a trailing / when processing config fragments so they can be later
found when processing the configuration of the kernel.

Reported-by: "Robert P. J. Day" &lt;rpjday@crashcourse.ca&gt;
Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: avoid duplicate .scc file processing</title>
<updated>2015-10-24T11:07:32+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-10-23T20:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=ed2da98bf3ac798009f58a53b91285b4dac69d5a'/>
<id>ed2da98bf3ac798009f58a53b91285b4dac69d5a</id>
<content type='text'>
With the recent changes to improve patch processing times, the ability
to skip already applied patches is not active by default.

The automatic detection and resume was hiding issues with the include
files generated by scripts like yocto-bsp.

If a .scc file that contains a patch is included twice, the patch is
applied twice, and the second appliation fails for obvious reasons.

We can partially fix this by ensuring that already included
configuration fragments are not forced into the meta-series.

.scc files that are explicitly listed twice will continue to fail, and
recipes must be modified to avoid this.

[YOCTO: #8486]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With the recent changes to improve patch processing times, the ability
to skip already applied patches is not active by default.

The automatic detection and resume was hiding issues with the include
files generated by scripts like yocto-bsp.

If a .scc file that contains a patch is included twice, the patch is
applied twice, and the second appliation fails for obvious reasons.

We can partially fix this by ensuring that already included
configuration fragments are not forced into the meta-series.

.scc files that are explicitly listed twice will continue to fail, and
recipes must be modified to avoid this.

[YOCTO: #8486]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: fix multi-layer patch application</title>
<updated>2015-10-01T06:40:23+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-09-29T14:31:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=692f1333e257556e7462b2436dd60e865869349c'/>
<id>692f1333e257556e7462b2436dd60e865869349c</id>
<content type='text'>
Updating the kern-tools SRCREV to import the following fix:

    kgit-meta: resume after last applied patch

    When the auto-resume (resume point detection) was removed from the
    processing of a meta-series, it ignored the fact that a single patch
    series may in fact be processed a number of times.

    Two layers patching a kernel will generate two different runs on the
    same branch, which always start at patch one. This will obviously
    break with duplicate patches.

    To avoid this, we simply track the last patch applied, and
    explicitly
    tell the patch scripts where to start. This gets us resume
    functionality, without the overhead of resume point detection.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updating the kern-tools SRCREV to import the following fix:

    kgit-meta: resume after last applied patch

    When the auto-resume (resume point detection) was removed from the
    processing of a meta-series, it ignored the fact that a single patch
    series may in fact be processed a number of times.

    Two layers patching a kernel will generate two different runs on the
    same branch, which always start at patch one. This will obviously
    break with duplicate patches.

    To avoid this, we simply track the last patch applied, and
    explicitly
    tell the patch scripts where to start. This gets us resume
    functionality, without the overhead of resume point detection.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: optimize patching peformance</title>
<updated>2015-09-19T08:47:31+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-09-18T19:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=440ad49e53359ea800c179df105ab885873d7691'/>
<id>440ad49e53359ea800c179df105ab885873d7691</id>
<content type='text'>
Updating the kern-tools SRCREV to integrat the following commit:

    patching: only validate user supplied patches by default

    Previously the patching tools would consider both system and user
    supplied patches in the same manner .. they are simply a series of
    patches to be applied to a branch, and that the scripts should determine
    where in the series to start (based on what is already on the
    branch).

    This detection was causing a few problems:

      - time consuming
      - starting in the middle of a series when intermediate patches
        were merged to a branch.

    To solve both the performance and start detection, we instead simply
    note the transition from system (i.e. already defined features and
    series) and user/recipe supplied patches. When the transition is noted,
    the system will start pushing ALL patches without doing autoresume
    detection.

    Control in keeping the series up to date is passed to the user, and
    consistent behaviour/performance is achieved.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updating the kern-tools SRCREV to integrat the following commit:

    patching: only validate user supplied patches by default

    Previously the patching tools would consider both system and user
    supplied patches in the same manner .. they are simply a series of
    patches to be applied to a branch, and that the scripts should determine
    where in the series to start (based on what is already on the
    branch).

    This detection was causing a few problems:

      - time consuming
      - starting in the middle of a series when intermediate patches
        were merged to a branch.

    To solve both the performance and start detection, we instead simply
    note the transition from system (i.e. already defined features and
    series) and user/recipe supplied patches. When the transition is noted,
    the system will start pushing ALL patches without doing autoresume
    detection.

    Control in keeping the series up to date is passed to the user, and
    consistent behaviour/performance is achieved.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: standalone tree configuration</title>
<updated>2015-07-25T13:40:57+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-07-21T15:21:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=17f071dea78a08648eda71829c845104338510b9'/>
<id>17f071dea78a08648eda71829c845104338510b9</id>
<content type='text'>
Updating the kern-tools SRCREV to import the following changes:

  cbd4b7102668 patchme/updateme: unify meta directory handling
  b65075997152 configme: standalone operation

The change of note is [configme: standalone operation], which makes the
kernel configuration script free from dependencies on other parts of the
kern-tools.

With this change, we set the stage to extend kernel configuration
fragments and auditing to arbitrary trees.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updating the kern-tools SRCREV to import the following changes:

  cbd4b7102668 patchme/updateme: unify meta directory handling
  b65075997152 configme: standalone operation

The change of note is [configme: standalone operation], which makes the
kernel configuration script free from dependencies on other parts of the
kern-tools.

With this change, we set the stage to extend kernel configuration
fragments and auditing to arbitrary trees.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: unify meta directory detection</title>
<updated>2015-04-28T06:56:00+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-04-24T16:13:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=6b04ae2c0439b83c0445fd1b8cb9cba5cee6b9bc'/>
<id>6b04ae2c0439b83c0445fd1b8cb9cba5cee6b9bc</id>
<content type='text'>
It is possible that recipe specific tasks, or build processes drop
files into the kernel source directory. These files can cause problems
with the meta data detection in the kern-tools.

With this change, we have a single unified meta data detection routine,
that logs the result in a new file ".metadir", which subsequent scripts
can find, and use, thereby avoid repeating the same check many times.

We also enhance the check to look for a sentinel file in a proper meta
directory, to avoid false positives when an unexpected kernel process
leaves an uncommitted directory in the kernel dir.

[YOCTO: #7441]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible that recipe specific tasks, or build processes drop
files into the kernel source directory. These files can cause problems
with the meta data detection in the kern-tools.

With this change, we have a single unified meta data detection routine,
that logs the result in a new file ".metadir", which subsequent scripts
can find, and use, thereby avoid repeating the same check many times.

We also enhance the check to look for a sentinel file in a proper meta
directory, to avoid false positives when an unexpected kernel process
leaves an uncommitted directory in the kernel dir.

[YOCTO: #7441]

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: fix iterative configuration runs</title>
<updated>2015-03-20T11:03:16+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-03-04T20:17:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=b903559daa847d2c56bf729fc5ca885113d0eecc'/>
<id>b903559daa847d2c56bf729fc5ca885113d0eecc</id>
<content type='text'>
When fixing a kernel configuration warning, it is often necessary to
modify the kernel's meta-data and re-run the tools to update and
re-audit the config. This implies that the patch, config and audit
steps are run multiple times.

The tools had a bug that would incorrectly restore old meta-data
versus using updated configuration. Updating the kern-tools SRCREV
to fix the issue.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When fixing a kernel configuration warning, it is often necessary to
modify the kernel's meta-data and re-run the tools to update and
re-audit the config. This implies that the patch, config and audit
steps are run multiple times.

The tools had a bug that would incorrectly restore old meta-data
versus using updated configuration. Updating the kern-tools SRCREV
to fix the issue.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kern-tools: improve patch application performance</title>
<updated>2015-03-02T22:05:02+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@windriver.com</email>
</author>
<published>2015-03-02T21:36:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.multitech.net/cgit/openembedded-core.git/commit/?id=148c78e0f5de2689de3ad9beaa9f6de618d87758'/>
<id>148c78e0f5de2689de3ad9beaa9f6de618d87758</id>
<content type='text'>
Update the SRCREV for the following incremental improvement in patch
processing time:

    kgit-meta: skip patches on non-leaf nodes

    In a similar way as commit 0768d697 [kgit-meta: dont run kgit-s2q
    for
    non-leaf nodes], we can save even more processing time by not even
    analysing and linking patches if we aren't on the leaf node of the
    tree.

    This early exit can save nearly 95% of the time required to "patch"
    a tree when no changes are actually applied.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the SRCREV for the following incremental improvement in patch
processing time:

    kgit-meta: skip patches on non-leaf nodes

    In a similar way as commit 0768d697 [kgit-meta: dont run kgit-s2q
    for
    non-leaf nodes], we can save even more processing time by not even
    analysing and linking patches if we aren't on the leaf node of the
    tree.

    This early exit can save nearly 95% of the time required to "patch"
    a tree when no changes are actually applied.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
