On Mon, Aug 10, 2009 at 7:03 PM, Oleg Nesterov<o...@redhat.com> wrote:
> On 08/10, stephane eranian wrote:
>>
>> You must use F_SETSIG on SIGIO if you want your signal handler to
>> receive the file descriptor in siginfo. This is useful if you want to perform
>> some actions on the descriptor. That is the case in perfmon and this is
>> the case in certain situations with perfcounters as well.
>>
>> Setting SA_SIGINFO provides siginfo, but the si_fd field is NOT set
>> correctly without F_SETSIG. I have verified this with perfcounters, and
>> this is indeed the case.
>>
>> This behavior seems kind of odd to me.
>
> Agreed, this looks a bit odd. But at least this is documented. From
> man 2 fcntl:
>
>        By using F_SETSIG with a nonzero value, and setting SA_SIGINFO for the
>        signal handler (see sigac- tion(2)), extra information about I/O events
>        is passed to the handler in a  siginfo_t  structure.  If  the si_code
>        field indicates the source is SI_SIGIO, the si_fd field gives the file
>        descriptor associated with the event.  Otherwise, there is no 
> indication
>        which file descriptors are pending,
>
> Not sure if it is safe to change the historical behaviour.
>
Don't need to change it.
But for SIGIO, if you see SA_SIGINFO, then pass the si_fd.
From Jamie, it seems F_SETSIG was not added just for this file descriptor trick.
The initial goal seems orthogonal to the file descriptor passing in si_fd.

> (the manpage is not exactly right though, and the comment in 
> send_sigio_to_task()
>  is not right too: SI_SIGIO (and, btw, SI_QUEUE/SI_DETHREAD) is never used).
>
> Oleg.
>
>

------------------------------------------------------------------------------
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

Reply via email to