[PATCH][RFC] Signal-per-fd for RT signals

Vitaly Luban (vitaly@luban.org)
Fri, 18 May 2001 19:04:08 -0700


This is a multi-part message in MIME format.
--------------38798FB9CC11D20072E30BF4
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

I'm sorry, the previous message slipped out w/o subj.

Attached patch is an implementation of "signal-per-fd"
enhancement to kernel RT signal mechanism, AFAIK first
proposed by A. Chandra and D. Mosberger :

http://www.hpl.hp.com/techreports/2000/HPL-2000-174.html

which should dramatically increase linux based network
servers scalability.

Patch is made against 2.4.4 tree.

This patch allows to set signal-per-fd mode per each
file descriptor by introducing new fcntls "F_SETAUXFL"
and "F_GETAUXFL" with one possible argument "O_ONESIGFD"
to F_SETAUXFL defined.

When set, no additional siginfo will be queued for an
RT signal, generated by event on file descriptor, while
there is already one queued, though event report field
in already queued struct siginfo - "si_band" is updated.

I'd also like to hear an opinion on the signal filtering
capability. I.e, it's relatively easy to filter signals
upon an interest mask, supplied by the same F_SETAUXFL in
the form of POLL_... This will bring functionality of RT
signals event notification on the level with 'select' or
'poll' one, while more efficient and scalable. If there's
an interest in such a feature, I'd be eager to publish a
patch.

Thanks,
Vitaly.
--------------38798FB9CC11D20072E30BF4
Content-Type: application/x-gzip;
name="one-sig-perfd-2.4.4.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="one-sig-perfd-2.4.4.patch.gz"

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

--------------38798FB9CC11D20072E30BF4--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/