From: highguy on

Hi all,

Here's an initial RFC patch for the parallallism
events for perf_events.

It works with a low number of tasks, but runs into a
couple of issues:
- something goes wrong when a thread exits. Apparently
the count is decremented twice. I'm still figuring this
one out, perhaps sync_stat is to blame.
This causes things to break with more than 3 threads if
I recall correctly.
- the count is stored with the parent event only. This means
the child list lock is not taken too often.
- adding threshold support to poll() breaks use with mmap.
poll() returns when count < threshold although no new
entries might be added to the memory map.
- min threshold is actually useless so it should be dropped.

There's definately more wrong with this early patchset
and I'm doubting whether perf_events is actually fit for
this purpose.
Currently, by design, it's not meant to support counters
that may also decrement. Also, the foreseen use of poll
to block execution of the thread doesn't seem to work
together well with the mmap()-use.

Some hints, pointers and remarks are definately welcome
at this stage.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)
More majordomo info at
Please read the FAQ at