mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 09:49:33 +02:00
pseudo: Update to the latest upstream version
Update pseudo to the latest version to resolve a number of optimization defects. The problems were present on both 64-bit and 32-bit systems, but generally only caused issues on 32-bit hosts. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This commit is contained in:
committed by
Richard Purdie
parent
57bab3315c
commit
26396016ae
@@ -150,7 +150,7 @@ PRELINKSRCREV ??= "909470ee441237563d6236c505cb2d02ddc48704"
|
|||||||
SRCREV_pn-prelink ??= "${PRELINKSRCREV}"
|
SRCREV_pn-prelink ??= "${PRELINKSRCREV}"
|
||||||
SRCREV_pn-prelink-native ??= "${PRELINKSRCREV}"
|
SRCREV_pn-prelink-native ??= "${PRELINKSRCREV}"
|
||||||
SRCREV_pn-psplash ??= "424"
|
SRCREV_pn-psplash ??= "424"
|
||||||
PSEUDOSRCREV ??= "c9792c7acdb1cac90549ff08db12a8bf0c53cdcf"
|
PSEUDOSRCREV ??= "a1b25a64d8dd012bc8adcac1e1e09b6291c877ad"
|
||||||
SRCREV_pn-pseudo ??= "${PSEUDOSRCREV}"
|
SRCREV_pn-pseudo ??= "${PSEUDOSRCREV}"
|
||||||
SRCREV_pn-pseudo-native ??= "${PSEUDOSRCREV}"
|
SRCREV_pn-pseudo-native ??= "${PSEUDOSRCREV}"
|
||||||
SRCREV_pn-pseudo-nativesdk ??= "${PSEUDOSRCREV}"
|
SRCREV_pn-pseudo-nativesdk ??= "${PSEUDOSRCREV}"
|
||||||
|
|||||||
@@ -1,235 +0,0 @@
|
|||||||
From 895fa7e359e8026a608fba052c2994e42901e45f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Hatle <mark.hatle@windriver.com>
|
|
||||||
Date: Fri, 17 Dec 2010 01:23:47 +0000
|
|
||||||
Subject: Revert "Add a cache of the last object found in pseudo_op"
|
|
||||||
|
|
||||||
This reverts commit 49d4d35918d457b0e9206679ecad3b9c84f11e66.
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
|
|
||||||
ChangeLog.txt
|
|
||||||
---
|
|
||||||
diff --git a/ChangeLog.txt b/ChangeLog.txt
|
|
||||||
index 1db8c7d..200b32e 100644
|
|
||||||
--- a/ChangeLog.txt
|
|
||||||
+++ b/ChangeLog.txt
|
|
||||||
@@ -9,7 +9,6 @@
|
|
||||||
* (mhatle) as a result of profiling, optimize inode search
|
|
||||||
* (mhatle) rearrange the pseudo_op file data operations to reduce
|
|
||||||
the number of selects.
|
|
||||||
- * (mhatle) add the ability to cache the last select result
|
|
||||||
* (mhatle) change the indexing in pseudo_db.c
|
|
||||||
|
|
||||||
2010-12-14:
|
|
||||||
diff --git a/pseudo.c b/pseudo.c
|
|
||||||
index 3979fd8..6b965be 100644
|
|
||||||
--- a/pseudo.c
|
|
||||||
+++ b/pseudo.c
|
|
||||||
@@ -425,9 +425,6 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag) {
|
|
||||||
int found_path = 0, found_ino = 0;
|
|
||||||
int prefer_ino = 0;
|
|
||||||
|
|
||||||
- static pseudo_msg_t cache_msg = { .op = 0 };
|
|
||||||
- static char * cache_path = NULL;
|
|
||||||
-
|
|
||||||
if (!msg)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
@@ -471,59 +468,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag) {
|
|
||||||
|
|
||||||
/* Lookup the full path, with inode and dev if available */
|
|
||||||
if (msg->pathlen && msg->dev && msg->ino) {
|
|
||||||
- if (cache_msg.pathlen == msg->pathlen &&
|
|
||||||
- cache_msg.dev == msg->dev &&
|
|
||||||
- cache_msg.ino == msg->ino &&
|
|
||||||
- !strcmp(cache_path, msg->path)) {
|
|
||||||
- /* Found it in the cache! */
|
|
||||||
-#ifdef NPROFILE
|
|
||||||
- pseudo_diag("cache hit -- by_file_exact\n");
|
|
||||||
-#endif
|
|
||||||
- /* Change the cache to match the msg */
|
|
||||||
- cache_msg.type = msg->type;
|
|
||||||
- cache_msg.op = msg->op;
|
|
||||||
- cache_msg.result = msg->result;
|
|
||||||
- cache_msg.access = msg->access;
|
|
||||||
- cache_msg.fd = msg->fd;
|
|
||||||
-#ifdef NVALIDATE
|
|
||||||
- if (!pdb_find_file_exact(msg)) {
|
|
||||||
- if (cache_msg.pathlen != msg->pathlen ||
|
|
||||||
- cache_msg.dev != msg->dev ||
|
|
||||||
- cache_msg.ino != msg->ino ||
|
|
||||||
- cache_msg.uid != msg->uid ||
|
|
||||||
- cache_msg.gid != msg->gid ||
|
|
||||||
- cache_msg.mode != msg->mode ||
|
|
||||||
- cache_msg.rdev != msg->rdev ||
|
|
||||||
- cache_msg.nlink != msg->nlink ||
|
|
||||||
- cache_msg.deleting != msg->deleting) {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Database differs from cache\n"
|
|
||||||
- " cache vs result:\n"
|
|
||||||
- " dev (%llu,%llu) ino (%llu,%llu)\n"
|
|
||||||
- " uid (%d,%d) gid (%d,%d) mode (0%o,0%o)\n"
|
|
||||||
- " rdev (%llu,%llu) nlink (%d,%d) deleting (%d,%d)\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path",
|
|
||||||
- (unsigned long long) cache_msg.dev, (unsigned long long) msg->dev,
|
|
||||||
- (unsigned long long) cache_msg.ino, (unsigned long long) msg->ino,
|
|
||||||
- (unsigned long long) cache_msg.uid, (unsigned int) msg->uid,
|
|
||||||
- (unsigned long long) cache_msg.gid, (unsigned int) msg->gid,
|
|
||||||
- cache_msg.mode, msg->mode,
|
|
||||||
- (unsigned long long) cache_msg.rdev, (unsigned int) msg->rdev,
|
|
||||||
- cache_msg.nlink, msg->nlink,
|
|
||||||
- cache_msg.deleting, msg->deleting);
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Not found in DB\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path");
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
- by_path = cache_msg;
|
|
||||||
- by_ino = cache_msg;
|
|
||||||
- /* no need to restore msg */
|
|
||||||
- found_path = 1;
|
|
||||||
- found_ino = 1;
|
|
||||||
- path_by_ino = msg->path;
|
|
||||||
- } else if (!pdb_find_file_exact(msg)) {
|
|
||||||
+ if (!pdb_find_file_exact(msg)) {
|
|
||||||
/* restore header contents */
|
|
||||||
by_path = *msg;
|
|
||||||
by_ino = *msg;
|
|
||||||
@@ -539,51 +484,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag) {
|
|
||||||
if (msg->pathlen) {
|
|
||||||
/* for now, don't canonicalize paths anymore */
|
|
||||||
/* used to do it here, but now doing it in client */
|
|
||||||
- if (cache_msg.pathlen == msg->pathlen &&
|
|
||||||
- !strcmp(cache_path, msg->path)) {
|
|
||||||
-#ifdef NPROFILE
|
|
||||||
- pseudo_diag("cache hit -- by_path\n");
|
|
||||||
-#endif
|
|
||||||
- /* Change the cache to match the msg */
|
|
||||||
- cache_msg.type = msg->type;
|
|
||||||
- cache_msg.op = msg->op;
|
|
||||||
- cache_msg.result = msg->result;
|
|
||||||
- cache_msg.access = msg->access;
|
|
||||||
- cache_msg.fd = msg->fd;
|
|
||||||
-#ifdef NVALIDATE
|
|
||||||
- if (!pdb_find_file_exact(msg)) {
|
|
||||||
- if (cache_msg.pathlen != msg->pathlen ||
|
|
||||||
- cache_msg.dev != msg->dev ||
|
|
||||||
- cache_msg.ino != msg->ino ||
|
|
||||||
- cache_msg.uid != msg->uid ||
|
|
||||||
- cache_msg.gid != msg->gid ||
|
|
||||||
- cache_msg.mode != msg->mode ||
|
|
||||||
- cache_msg.rdev != msg->rdev ||
|
|
||||||
- cache_msg.nlink != msg->nlink ||
|
|
||||||
- cache_msg.deleting != msg->deleting) {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Database differs from cache\n"
|
|
||||||
- " cache vs result:\n"
|
|
||||||
- " dev (%llu,%llu) ino (%llu,%llu)\n"
|
|
||||||
- " uid (%d,%d) gid (%d,%d) mode (0%o,0%o)\n"
|
|
||||||
- " rdev (%llu,%llu) nlink (%d,%d) deleting (%d,%d)\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path",
|
|
||||||
- (unsigned long long) cache_msg.dev, (unsigned long long) msg->dev,
|
|
||||||
- (unsigned long long) cache_msg.ino, (unsigned long long) msg->ino,
|
|
||||||
- (unsigned long long) cache_msg.uid, (unsigned int) msg->uid,
|
|
||||||
- (unsigned long long) cache_msg.gid, (unsigned int) msg->gid,
|
|
||||||
- cache_msg.mode, msg->mode,
|
|
||||||
- (unsigned long long) cache_msg.rdev, (unsigned int) msg->rdev,
|
|
||||||
- cache_msg.nlink, msg->nlink,
|
|
||||||
- cache_msg.deleting, msg->deleting);
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Not found in DB\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path");
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- by_path = cache_msg;
|
|
||||||
- found_path = 1;
|
|
||||||
- } else if (!pdb_find_file_path(msg)) {
|
|
||||||
+ if (!pdb_find_file_path(msg)) {
|
|
||||||
by_path = *msg;
|
|
||||||
found_path = 1;
|
|
||||||
} else {
|
|
||||||
@@ -594,51 +495,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag) {
|
|
||||||
}
|
|
||||||
/* search on original inode -- in case of mismatch */
|
|
||||||
if (msg->dev && msg->ino) {
|
|
||||||
- if (cache_msg.dev == msg->dev &&
|
|
||||||
- cache_msg.ino == msg->ino) {
|
|
||||||
-#ifdef NPROFILE
|
|
||||||
- pseudo_diag("cache hit -- by_ino\n");
|
|
||||||
-#endif
|
|
||||||
- /* Change the cache to match the msg */
|
|
||||||
- cache_msg.type = msg->type;
|
|
||||||
- cache_msg.op = msg->op;
|
|
||||||
- cache_msg.result = msg->result;
|
|
||||||
- cache_msg.access = msg->access;
|
|
||||||
- cache_msg.fd = msg->fd;
|
|
||||||
-#ifdef NVALIDATE
|
|
||||||
- if (!pdb_find_file_exact(msg)) {
|
|
||||||
- if (cache_msg.pathlen != msg->pathlen ||
|
|
||||||
- cache_msg.dev != msg->dev ||
|
|
||||||
- cache_msg.ino != msg->ino ||
|
|
||||||
- cache_msg.uid != msg->uid ||
|
|
||||||
- cache_msg.gid != msg->gid ||
|
|
||||||
- cache_msg.mode != msg->mode ||
|
|
||||||
- cache_msg.rdev != msg->rdev ||
|
|
||||||
- cache_msg.nlink != msg->nlink ||
|
|
||||||
- cache_msg.deleting != msg->deleting) {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Database differs from cache\n"
|
|
||||||
- " cache vs result:\n"
|
|
||||||
- " dev (%llu,%llu) ino (%llu,%llu)\n"
|
|
||||||
- " uid (%d,%d) gid (%d,%d) mode (0%o,0%o)\n"
|
|
||||||
- " rdev (%llu,%llu) nlink (%d,%d) deleting (%d,%d)\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path",
|
|
||||||
- (unsigned long long) cache_msg.dev, (unsigned long long) msg->dev,
|
|
||||||
- (unsigned long long) cache_msg.ino, (unsigned long long) msg->ino,
|
|
||||||
- (unsigned long long) cache_msg.uid, (unsigned int) msg->uid,
|
|
||||||
- (unsigned long long) cache_msg.gid, (unsigned int) msg->gid,
|
|
||||||
- cache_msg.mode, msg->mode,
|
|
||||||
- (unsigned long long) cache_msg.rdev, (unsigned int) msg->rdev,
|
|
||||||
- cache_msg.nlink, msg->nlink,
|
|
||||||
- cache_msg.deleting, msg->deleting);
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- pseudo_diag("Cache mismatch [%s]: Not found in DB\n",
|
|
||||||
- msg->pathlen ? msg->path : "no path");
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- found_ino = 1;
|
|
||||||
- path_by_ino = cache_path;
|
|
||||||
- } else if (!pdb_find_file_dev(&by_ino)) {
|
|
||||||
+ if (!pdb_find_file_dev(&by_ino)) {
|
|
||||||
found_ino = 1;
|
|
||||||
path_by_ino = pdb_get_file_path(&by_ino);
|
|
||||||
}
|
|
||||||
@@ -1016,28 +873,6 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Cache previous values... */
|
|
||||||
- if (msg->op != OP_MAY_UNLINK &&
|
|
||||||
- msg->op != OP_DID_UNLINK &&
|
|
||||||
- msg->op != OP_CANCEL_UNLINK &&
|
|
||||||
- msg->op != OP_UNLINK) {
|
|
||||||
-
|
|
||||||
- cache_msg = *msg;
|
|
||||||
-
|
|
||||||
- free(cache_path);
|
|
||||||
-
|
|
||||||
- if (path_by_ino)
|
|
||||||
- cache_path = strdup(path_by_ino);
|
|
||||||
- else
|
|
||||||
- cache_path = strdup(msg->path);
|
|
||||||
- } else {
|
|
||||||
- cache_msg.pathlen = 0;
|
|
||||||
- cache_msg.dev = 0;
|
|
||||||
- cache_msg.ino = 0;
|
|
||||||
- free(cache_path);
|
|
||||||
- cache_path = NULL;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
/* in the case of an exact match, we just used the pointer
|
|
||||||
* rather than allocating space
|
|
||||||
*/
|
|
||||||
--
|
|
||||||
cgit v0.8.3.3-89-gbf82
|
|
||||||
@@ -10,7 +10,7 @@ PR = "r16"
|
|||||||
|
|
||||||
SRC_URI = "git://github.com/wrpseudo/pseudo.git;protocol=git \
|
SRC_URI = "git://github.com/wrpseudo/pseudo.git;protocol=git \
|
||||||
file://static_sqlite.patch \
|
file://static_sqlite.patch \
|
||||||
file://895fa7e359e8026a608fba052c2994e42901e45f.patch"
|
"
|
||||||
|
|
||||||
FILES_${PN} = "${libdir}/libpseudo.so ${bindir}/* ${localstatedir}/pseudo"
|
FILES_${PN} = "${libdir}/libpseudo.so ${bindir}/* ${localstatedir}/pseudo"
|
||||||
PROVIDES += "virtual/fakeroot"
|
PROVIDES += "virtual/fakeroot"
|
||||||
|
|||||||
Reference in New Issue
Block a user