On 9/11/13 5:04 AM, Paul Eggleton wrote:
Hi Mark,

On Tuesday 10 September 2013 21:04:29 Mark Hatle wrote:
Time measurements with:

MACHINE = "qemux86"
PACKAGE_CLASSES = "package_rpm"
EXTRA_IMAGE_FEATURES = "dev-pkgs staticdev-pkgs doc-pkgs dbg-pkgs
ptest-pkgs" BB_NUMBER_THREADS ?= "8"
PARALLEL_MAKE ?= "-j 8"

image: core-image-sato

Quad Core i7 workstation...

With all of the recipes built, and just executing the do_rootfs:

Before this change:
   real    26m2.541s
   user    21m8.458s
   sys     7m9.683s

After this change:
   real    14m43.436s
   user    15m57.525s
   sys     5m16.412s

This is a significant performance boost when using the 'complementary'
installs and attemptonly installs.  The performance is by doing the
complementary installs as a batch instead of one at a time, ignoring
failures.

This is a significant improvement, well done! My concern about not catching
failures stands though, which is why I hadn't implemented this yet. How do we
ensure that genuine failures are caught with this mode?

The code only ignores failures in the resolution of the dependencies. As far as I'm aware, this is the correct behavior in the attempt only mode(s). If the dependencies can't be resolved for some reason, we simply throw away that item and move on.

Any errors that occur during package installation -will- now cause a failure to exist, and they will be logged to the attemptonly log-file.

In the previous implementation, any error when installing an attemptonly package would be ignored, even if it turned out to be an installation problem and not a dependency issue. So I think this is an improvement as well.

(For some of my testing I intentionally created dependency errors by adding things to the PACKAGE_EXCLUDE, and the system did what it was supposed to. Ignored the items that couldn't be installed.)

--Mark

Cheers,
Paul


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to