Important fix from Stephane for system wide monitoring, problem

introduced recently in the pid list patches.
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJPQ9EDAAoJENZQFvNTUqpA2PAP/jFSHgdaufpe9lJXjKfAENNn
 jvm6Ml8KbVbQRCXo0oEXUyMhfJiyXQ4Vez0xOSVAKSwdABqUro3bWOLe365txqnC
 3RpIEnUszisRN8kfFlq6QrBoJUcHNMAtQ53af69NPtVJYvFuS6NNImM/+m29FPA/
 FsBhY9NVlJJPDf6inN6pgwxmh4Wx9D5xB1o8Hn3iXsEpC7Dbq0+aE57vbkXojoZ7
 oWscAvfUmScvNIUeHifeONPdFHJIad6SVUJCJFO1WCmEJhv6UTF+9NppoqFG37s0
 j+JBwS8ZlBJ25BGRi8/n5NN+Fu0X5jZS1cSM/kJ2JNXg1KrE3E82B9aN4+A87QR3
 7pYXWDvPx2o1aBl4BChO6/wSHXVGPQS3Yo+s5ow3Gea0AxoEWzKxd2IR5thUhccG
 LGd2vH0DyuVA8UBgqgCiaINGtw1pWdOxlXn+Z9d/ux1ebYQ7FLvxNl0c6rOtjl0E
 ZZ4CsVk45zfysib+btxkGEnT9K1Qhr7NeeOz9ubAzFSQMC1LMIBJWNXCnkNUPjPs
 SJlddEx0TgiZAT6DlppnlBPDsVlsYT7n+GckO7YWnZ5xWVbUKCZqdwfJOirThjPh
 AVP7zMHnsyzYCs4IyKx1FbSo7egK0IW+RXugUW11af6wlPbLg1aWNMkNBJLL8XSz
 cQRyThurdOLeAnVKiFUd
 =/Hyw
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Small fixes, also includes an important fix from Stephane for system
wide monitoring, problem introduced recently in perf/core, in the pid
list patches.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Ingo Molnar 2012-02-22 10:36:56 +01:00
commit 034d150a44
3 changed files with 13 additions and 2 deletions

View File

@ -34,7 +34,6 @@
#include "util.h"
#include "event.h"
#include "string.h"
#include "strlist.h"
#include "debug.h"
#include "cache.h"

View File

@ -229,7 +229,7 @@ static struct thread_map *thread_map__new_by_tid_str(const char *tid_str)
if (!tid_str) {
threads = malloc(sizeof(*threads) + sizeof(pid_t));
if (threads != NULL) {
threads->map[1] = -1;
threads->map[0] = -1;
threads->nr = 1;
}
return threads;

View File

@ -1423,6 +1423,11 @@ static long long arg_num_eval(struct print_arg *arg)
die("unknown op '%s'", arg->op.op);
}
break;
case '+':
left = arg_num_eval(arg->op.left);
right = arg_num_eval(arg->op.right);
val = left + right;
break;
default:
die("unknown op '%s'", arg->op.op);
}
@ -1483,6 +1488,13 @@ process_fields(struct event *event, struct print_flag_sym **list, char **tok)
free_token(token);
type = process_arg(event, arg, &token);
if (type == EVENT_OP)
type = process_op(event, arg, &token);
if (type == EVENT_ERROR)
goto out_free;
if (test_type_token(type, token, EVENT_DELIM, ","))
goto out_free;