Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] pseudo 1.7.0
@ 2015-08-24 22:18 Peter Seebach
  2015-08-24 22:18 ` [PATCH 1/1] pseudo_1.7.0.bb: New version of pseudo Peter Seebach
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Seebach @ 2015-08-24 22:18 UTC (permalink / raw)
  To: openembedded-core

This patch updates to pseudo 1.7.0. At this point, it does *not* enable
the new database behavior by default, because while I can't make it fail
anymore, there were some weird behaviors occasionally which I would like
reproduce and track down before switching.

It does, however, add the profiling support, and the two easier/simpler
changes I made based on profiling results. My experience was that for
core-image-base, this cut about 8% off total build time. For tasks like
tar extractions, it can be quite a bit better.

Seconds to extract a tarball of a large /usr/include on an SSD-backed laptop:
		Clean		Over Existing Files
No pseudo	0.463		0.527
Pseudo 1.6.7	1.294		2.102
Pseudo 1.7.0	1.217		1.901
1.7.0+xattrdb	0.790		1.478

The xattrdb code will only work if the user_xattr feature is active on the
filesystem the files are on, and will only work with plain files and
directories. (Note that nodes which are emulated with plain files will
work.)

It is probably worth considering the xattrdb option for heavily-used build
servers and the like, but be on the lookout for bugs. (I am super interested
in bug reports, especially with reproducers, for that code.)

There are some cases where the underlying-filesystem permissions for files
will change in 1.7.0 (usually towards 0600), but there should be no changes
in database modes reported.

The tarball has been sent to Michael Halstad, but I don't think it's up
on the servers yet. The git build should work, though.

The following changes since commit c38acd720b3f6ffbeb544063692eb471dada8593:

  binconfig-disabled: write an message to stderr to help confused developers (2015-08-19 17:57:58 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib seebs/pseudo170
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/pseudo170

Peter Seebach (1):
  pseudo_1.7.0.bb: New version of pseudo

 meta/recipes-devtools/pseudo/pseudo_1.7.0.bb | 20 ++++++++++++++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |  4 ++--
 2 files changed, 22 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.7.0.bb

-- 
2.3.1



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 1/1] pseudo_1.7.0.bb: New version of pseudo
  2015-08-24 22:18 [PATCH 0/1] pseudo 1.7.0 Peter Seebach
@ 2015-08-24 22:18 ` Peter Seebach
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Seebach @ 2015-08-24 22:18 UTC (permalink / raw)
  To: openembedded-core

Pseudo 1.7 adds an experimental feature (which I think needs more testing
before it becomes the default) allowing the pseudo client to store modes
and uid/gid values in extended attributes rather than using the sqlite
database. On most Linux-like systems, this works only if the underlying
file is a plain file or a directory.

Also added is a profiling feature to allow some amount of reporting on
the wall-clock time the client spends in wrappers, processing operations,
or in IPC. This feature is not intendeded to be precisely accurate, but
gives a good overview of where time is going.

Based on the results from the profiling feature, the client now suppresses
OP_OPEN and OP_EXEC messages if the server is not logging messages, and
no longer uses constant dynamic allocation and free cycles for canonicalized
paths.

There's a few other likely-looking optimizations being considered, but
this seemed like a good cutoff for now.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
---
 meta/recipes-devtools/pseudo/pseudo_1.7.0.bb | 20 ++++++++++++++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |  4 ++--
 2 files changed, 22 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.7.0.bb

diff --git a/meta/recipes-devtools/pseudo/pseudo_1.7.0.bb b/meta/recipes-devtools/pseudo/pseudo_1.7.0.bb
new file mode 100644
index 0000000..00dce03
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/pseudo_1.7.0.bb
@@ -0,0 +1,20 @@
+require pseudo.inc
+
+SRC_URI = " \
+    http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
+    file://fallback-passwd \
+    file://fallback-group \
+"
+
+
+SRC_URI[md5sum] = "de0fdfb12c76d98d654068ce7d9f9b56"
+SRC_URI[sha256sum] = "5caadb1cad228c0c69e1ecb1af715a6feeefc2dd88b9b726a8d1a5b6db054e7c"
+
+PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
+
+do_install_append_class-native () {
+	install -d ${D}${sysconfdir}
+	# The fallback files should never be modified
+	install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
+	install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
+}
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index aa315d3..6930fd1 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -1,7 +1,7 @@
 require pseudo.inc
 
-SRCREV = "db758fb11167c79d9682a17d359568e2a3c4acd5"
-PV = "1.6.5+git${SRCPV}"
+SRCREV = "cbcbe467c147f8c985bd38e34ab9adb72440f539"
+PV = "1.7.0+git${SRCPV}"
 
 DEFAULT_PREFERENCE = "-1"
 
-- 
2.3.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-08-24 22:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-24 22:18 [PATCH 0/1] pseudo 1.7.0 Peter Seebach
2015-08-24 22:18 ` [PATCH 1/1] pseudo_1.7.0.bb: New version of pseudo Peter Seebach

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox