Re: perfmon3 interface overview

From: stephane eranian
Date: Sat Oct 04 2008 - 03:20:22 EST


David,

On Sat, Oct 4, 2008 at 8:05 AM, David Gibson
<david@xxxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> If we wanted to go even further, we could combine start/stop, attach/detach
>> into a single syscall:
>
> Well, you could. But the attach/detach take a parameter which
> start/stop don't, making it a less obvious merge to make.
>
Unless you make the 3rd argument optional and hide this in a
user library. This is how this is handled for pfm_create_session()
for instance. The library would define this as follows:

int pfm_control_session(int fd, int flags, ...);

Based upon flags, it would use va_arg() to get to the 3rd argument and
pass it to the syscall which implements the version below. A dummy value
would be passed with the flags is not equal to PFM_CTFL_ATTACH.

>> int pfm_control_session(int fd, int flags, int target);
>> With flags:
>> PFM_CTFL_START : start monitoring
>> PFM_CTFL_STOP : stop monitoring
>> PFM_CTFL_RESTART: resume after overflow notification
>>
>> PFM_CTFL_ATTACH: attach to thread or cpu designated by 'target'
>> PFM_CTFL_DETACH: detach session
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/