diff options
Diffstat (limited to 'tools/perf/util/python.c')
| -rw-r--r-- | tools/perf/util/python.c | 31 | 
1 files changed, 24 insertions, 7 deletions
| diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 925e0c3e6d91..4bf8ace7f511 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -8,18 +8,31 @@  #include "cpumap.h"  #include "thread_map.h" +/* + * Support debug printing even though util/debug.c is not linked.  That means + * implementing 'verbose' and 'eprintf'. + */ +int verbose; + +int eprintf(int level, const char *fmt, ...) +{ +	va_list args; +	int ret = 0; + +	if (verbose >= level) { +		va_start(args, fmt); +		ret = vfprintf(stderr, fmt, args); +		va_end(args); +	} + +	return ret; +} +  /* Define PyVarObject_HEAD_INIT for python 2.5 */  #ifndef PyVarObject_HEAD_INIT  # define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,  #endif -struct throttle_event { -	struct perf_event_header header; -	u64			 time; -	u64			 id; -	u64			 stream_id; -}; -  PyMODINIT_FUNC initperf(void);  #define member_def(type, member, ptype, help) \ @@ -802,6 +815,8 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyrf_evlist *pevlist,  		PyObject *pyevent = pyrf_event__new(event);  		struct pyrf_event *pevent = (struct pyrf_event *)pyevent; +		perf_evlist__mmap_consume(evlist, cpu); +  		if (pyevent == NULL)  			return PyErr_NoMemory(); @@ -967,6 +982,7 @@ static struct {  	{ "COUNT_SW_PAGE_FAULTS_MAJ",  PERF_COUNT_SW_PAGE_FAULTS_MAJ },  	{ "COUNT_SW_ALIGNMENT_FAULTS", PERF_COUNT_SW_ALIGNMENT_FAULTS },  	{ "COUNT_SW_EMULATION_FAULTS", PERF_COUNT_SW_EMULATION_FAULTS }, +	{ "COUNT_SW_DUMMY",            PERF_COUNT_SW_DUMMY },  	{ "SAMPLE_IP",	      PERF_SAMPLE_IP },  	{ "SAMPLE_TID",	      PERF_SAMPLE_TID }, @@ -1015,6 +1031,7 @@ PyMODINIT_FUNC initperf(void)  	    pyrf_cpu_map__setup_types() < 0)  		return; +	/* The page_size is placed in util object. */  	page_size = sysconf(_SC_PAGE_SIZE);  	Py_INCREF(&pyrf_evlist__type); |