Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Ingo Molnar:
"The tree contains three fixes:

- Two tooling fixes

- Reversal of the new 'MMAP2' extended mmap record ABI, introduced in
this merge window. (Patches were proposed to fix it but it was all
a bit late and we felt it's safer to just delay the ABI one more
kernel release and do it right)"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf: Disable PERF_RECORD_MMAP2 support
perf scripting perl: Fix build error on Fedora 12
perf probe: Fix to initialize fname always before use it

+19 -20
+4
kernel/events/core.c
··· 6767 6767 if (ret) 6768 6768 return -EFAULT; 6769 6769 6770 + /* disabled for now */ 6771 + if (attr->mmap2) 6772 + return -EINVAL; 6773 + 6770 6774 if (attr->__reserved_1) 6771 6775 return -EINVAL; 6772 6776
+13 -17
tools/perf/util/event.c
··· 187 187 return -1; 188 188 } 189 189 190 - event->header.type = PERF_RECORD_MMAP2; 190 + event->header.type = PERF_RECORD_MMAP; 191 191 /* 192 192 * Just like the kernel, see __perf_event_mmap in kernel/perf_event.c 193 193 */ ··· 198 198 char prot[5]; 199 199 char execname[PATH_MAX]; 200 200 char anonstr[] = "//anon"; 201 - unsigned int ino; 202 201 size_t size; 203 202 ssize_t n; 204 203 ··· 208 209 strcpy(execname, ""); 209 210 210 211 /* 00400000-0040c000 r-xp 00000000 fd:01 41038 /bin/cat */ 211 - n = sscanf(bf, "%"PRIx64"-%"PRIx64" %s %"PRIx64" %x:%x %u %s\n", 212 - &event->mmap2.start, &event->mmap2.len, prot, 213 - &event->mmap2.pgoff, &event->mmap2.maj, 214 - &event->mmap2.min, 215 - &ino, execname); 216 - 217 - event->mmap2.ino = (u64)ino; 212 + n = sscanf(bf, "%"PRIx64"-%"PRIx64" %s %"PRIx64" %*x:%*x %*u %s\n", 213 + &event->mmap.start, &event->mmap.len, prot, 214 + &event->mmap.pgoff, 215 + execname); 218 216 219 217 if (n != 8) 220 218 continue; ··· 223 227 strcpy(execname, anonstr); 224 228 225 229 size = strlen(execname) + 1; 226 - memcpy(event->mmap2.filename, execname, size); 230 + memcpy(event->mmap.filename, execname, size); 227 231 size = PERF_ALIGN(size, sizeof(u64)); 228 - event->mmap2.len -= event->mmap.start; 229 - event->mmap2.header.size = (sizeof(event->mmap2) - 230 - (sizeof(event->mmap2.filename) - size)); 231 - memset(event->mmap2.filename + size, 0, machine->id_hdr_size); 232 - event->mmap2.header.size += machine->id_hdr_size; 233 - event->mmap2.pid = tgid; 234 - event->mmap2.tid = pid; 232 + event->mmap.len -= event->mmap.start; 233 + event->mmap.header.size = (sizeof(event->mmap) - 234 + (sizeof(event->mmap.filename) - size)); 235 + memset(event->mmap.filename + size, 0, machine->id_hdr_size); 236 + event->mmap.header.size += machine->id_hdr_size; 237 + event->mmap.pid = tgid; 238 + event->mmap.tid = pid; 235 239 236 240 if (process(tool, event, &synth_sample, machine) != 0) { 237 241 rc = -1;
-1
tools/perf/util/evsel.c
··· 678 678 attr->sample_type |= PERF_SAMPLE_WEIGHT; 679 679 680 680 attr->mmap = track; 681 - attr->mmap2 = track && !perf_missing_features.mmap2; 682 681 attr->comm = track; 683 682 684 683 /*
+1 -1
tools/perf/util/probe-finder.c
··· 1357 1357 goto post; 1358 1358 } 1359 1359 1360 + fname = dwarf_decl_file(&spdie); 1360 1361 if (addr == (unsigned long)baseaddr) { 1361 1362 /* Function entry - Relative line number is 0 */ 1362 1363 lineno = baseline; 1363 - fname = dwarf_decl_file(&spdie); 1364 1364 goto post; 1365 1365 } 1366 1366
+1 -1
tools/perf/util/scripting-engines/trace-event-perl.c
··· 282 282 283 283 event = find_cache_event(evsel); 284 284 if (!event) 285 - die("ug! no event found for type %" PRIu64, evsel->attr.config); 285 + die("ug! no event found for type %" PRIu64, (u64)evsel->attr.config); 286 286 287 287 pid = raw_field_value(event, "common_pid", data); 288 288