On Mon, 2009-11-23 at 14:34 +0100, stephane eranian wrote: > > Won't this give very funny results for mixed pmu groups? > > > > What do you mean by 'mixed pmu groups'?
We currently have a number of struct pmu objects: perf_ops_generic perf_ops_cpu_clock perf_ops_task_clock which are all software based PMUs, and one of: pmu (arch/x86/kernel/cpu/perf_event.c) power_pmu (arch/powerpc/kernel/perf_event.c) To represent the hardware PMU. Now say you mix software events and hardware events into a single group, the loop in validate_group: list_for_each_entry(sibling, &leader->sibling_list, group_entry) { if (!validate_event(&fake_pmu, sibling)) return -ENOSPC; } could pass a !hardware event into validate_event(), which currently ignores it because event->pmu won't be &pmu, however if you remove that check, it'll try and call x86 routines on a software event, which is bound to go funny. Now Frederic is going to make things more interesting by representing HW breakpoints as another HW PMU (the distinction between hw/sw pmu is in scheduling, you can always schedule a software event). This weakens the !is_software_event(), in that !software doesn't tell you which hardware event it is -- something which needs mending in your more complex x86 constraints scheduling patch. ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel