Messages in this thread | | | Subject | Re: [PATCH v2 1/6] perf: Add interface to add general events to sysfs | From | Lin Ming <> | Date | Tue, 26 Jul 2011 09:06:07 +0800 |
| |
On Mon, 2011-07-25 at 23:20 +0800, Greg KH wrote: > On Mon, Jul 25, 2011 at 10:32:03AM +0200, Peter Zijlstra wrote: > > On Mon, 2011-07-25 at 16:11 +0800, Lin Ming wrote: > > > It's strange that I didn't find a way to check if a directory is present > > > in sysfs. Any hint? > > > > sysfs is voodoo for me, best I can come up with is, ask the sysfs > > folks ;-) > > > > Kay, Greg? > > What are you trying to do here specifically?
Now there are perf event source devices in sysfs.
$ tree /sys/bus/event_source/devices/ /sys/bus/event_source/devices/ |-- breakpoint |-- cpu |-- software `-- tracepoint
I want to create a "events" directory to hold the most useful events under the event_source.
$ tree /sys/bus/event_source/devices/cpu | -- events
Then add one event each time to the "events" dir.
Add "event1" $ tree /sys/bus/event_source/devices/cpu | -- events | -- event1
Add "event2" $ tree /sys/bus/event_source/devices/cpu | -- events | -- event1 | -- event2
So at the first time to add a event I need to check if the "events" directory is present. If not, create it.
Like below pseudo code,
int perf_pmu_add_event(struct pmu *pmu, const char *name, ....) { if there is no "events" dir under pmu->dev->kobj then create "events" dir
add event "name" to "events"
return .... }
So the problem is, for example, how to check if there is a "events" dir under /sys/bus/event_source/devices/cpu in kernel.
Thanks, Lin Ming
> > sysfs is not ment to be walked from within the kernel, only from > userspace. Perhaps that is your problem here? > > greg k-h
| |