lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 22 Apr 2011 10:37:36 -0600
From:	David Ahern <dsahern@...il.com>
To:	Arnaldo Carvalho de Melo <acme@...stprotocols.net>
CC:	Tim Blechmann <tim@...ngt.org>, linux-kernel@...r.kernel.org
Subject: Re: [2.6.39-rc2] perf top fails to mmap - bisected to 70db7533

I know you've been busy with other stuff the past few weeks, but have
you had a chance to look into this? Basically, perf in 2.6.39 is broken
when trying to profile a process (-p argument to record or top).

David


> On 04/06/11 16:15, David Ahern wrote:
>>
>>
>> On 04/06/11 14:48, Tim Blechmann wrote:
>>>>> David
>>>>>
>>>>>> this happens when running perf as the same process as the process and
>>>>>> when running perf as root.
>>>>
>>>> yep, works for me as well:
>>>>
>>>> [acme@...lia ~]$ cat vsyscall.c
>>>
>>> after including unistd.h, this compiles and works fine. however i cannot profile 
>>> any multithreaded program. does this work for you?
>>>
>>> tim
>>>
>>
>> That does fail:
>> # ps -C rsyslogd -L
>>   PID   LWP TTY          TIME CMD
>>   795   795 ?        00:00:00 rsyslogd
>>   795   797 ?        00:00:00 rsyslogd
>>   795   798 ?        00:00:00 rsyslogd
>>
>> # /tmp/build-perf/perf top -p 795
>> Failed to mmap with 22 (Invalid argument)
>>
>> strace shows it failing at:
>> ioctl(4, PERF_EVENT_IOC_SET_OUTPUT, 0x3) = -1 EINVAL (Invalid argument)
>>
>> Changing to use thread only works:
>> # /tmp/build-perf/perf top -t 795
> 
> git bisect points to:
> 
> 70db7533caef02350ec8d6852e589491bca3a951 is the first bad commit
> commit 70db7533caef02350ec8d6852e589491bca3a951
> Author: Arnaldo Carvalho de Melo <acme@...hat.com>
> Date:   Wed Jan 12 22:39:13 2011 -0200
> 
> perf evlist: Move the mmap array from perf_evsel
> 
> Adopting the new model used in 'perf record', where we don't have a map
> per thread per cpu, instead we have an mmap per cpu, established on the
> first fd for that cpu and ask the kernel using the
> PERF_EVENT_IOC_SET_OUTPUT ioctl to send events for the other fds on that
> cpu for the one with the mmap.
> 
> The methods moved from perf_evsel to perf_evlist, but for easing review
> they were modified in place, in evsel.c, the next patch will move the
> migrated methods to evlist.c.
> 
> With this 'perf top' now uses the same mmap model used by 'perf record'
> and the next patches will make 'perf record' use these new routines,
> establishing a common codebase for both tools.
> 
> ----------
> 
> Coincidentally, perf-record is also broken. git bisect points to:
> 
> dd7927f4f8ee75b032ff15aeef4bda49719a443a is the first bad commit
> commit dd7927f4f8ee75b032ff15aeef4bda49719a443a
> Author: Arnaldo Carvalho de Melo <acme@...hat.com>
> Date:   Wed Jan 12 14:28:51 2011 -0200
> 
> perf record: Use perf_evsel__open
> 
> Now its time to factor out the mmap handling bits into the perf_evsel
> class.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ