From: Peter Zijlstra <peterz@infradead.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [rfc][patch] perf,tools: Remove test_attr_* muck from perf.h
Date: Fri, 2 May 2014 13:52:01 +0200 [thread overview]
Message-ID: <20140502115201.GI30445@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20140501183505.GA2317@krava.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2548 bytes --]
On Thu, May 01, 2014 at 08:35:05PM +0200, Jiri Olsa wrote:
> On Thu, May 01, 2014 at 10:27:30AM +0200, Peter Zijlstra wrote:
> > Hi,
> >
> > I occasionally build the odd program against raw perf and use perf.h for
> > this.
> >
> > Now I find that no longer works because of:
> >
> > 52502bf201a85 ("perf tests: Add framework for automated perf_event_attr tests")
> >
> > So revert the hunk touching on perf.h.
>
> But but but, then you'll brake attr tests
>
> >
> > Also, it seems to be for snake shit only, and snakes stink, except on a
> > plane :-)
>
> wanna get to lwn quotes page, huh? ;)
>
> any details about the breakage? maybe we could find some
> way to make you happy and keep the snake shit in place
linux-2.6/tools/perf# gcc -o perf_bug perf_bug.c
/tmp/cclObJsz.o: In function `sys_perf_event_open':
perf_bug.c:(.text+0x48): undefined reference to `test_attr__enabled'
perf_bug.c:(.text+0x72): undefined reference to `test_attr__open'
collect2: error: ld returned 1 exit status
Initially perf.h was meant to have just the syscall wrapper and few
system level defines (like the membars etc..)
But now its grown all kinds of gunk outside of that.
So ideally we'd split the thing into two files, one which is a
stand-alone syscall wrapper + system utils things and one which includes
the former and adds all the perf (tool, not kernel) gunk on.
I see all sorts of extern perf_{host,guest} things and util/target.h
includes.. that all should definitely move elsewhere.
---
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/mman.h>
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
#include "perf.h"
struct perf_event_attr perf_attr = {
.type = PERF_TYPE_SOFTWARE,
.config = PERF_COUNT_SW_EMULATION_FAULTS,
.sample_period = 0,
.inherit = 1,
};
int main(void)
{
void *page;
pid_t pid;
int fd[16];
fd[0] = sys_perf_event_open(&perf_attr, 0, -1, -1, 0);
if (fd[0] < 0) {
perror("sys_perf_event_open 0");
return 0;
}
perf_attr.inherit = 0;
fd[1] = sys_perf_event_open(&perf_attr, 0, -1, fd[0], 0);
if (fd[1] < 0) {
perror("sys_perf_event_open 1");
return 0;
}
page = mmap(NULL, 3*4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd[1], 0);
if (page == ((void *)-1)) {
perror("mmap");
return 0;
}
pid = fork();
if (!pid) {
/* child */
while (1) ;
return 0;
}
usleep(500000);
munmap(page, 3*4096);
close(fd[1]);
kill(pid, SIGTERM);
waitpid(pid, NULL, 0);
return 0;
}
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-05-02 11:52 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-01 8:27 [rfc][patch] perf,tools: Remove test_attr_* muck from perf.h Peter Zijlstra
2014-05-01 18:35 ` Jiri Olsa
2014-05-02 11:52 ` Peter Zijlstra [this message]
2014-05-04 11:20 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140502115201.GI30445@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=acme@ghostprotocols.net \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.