|
From: Ingo M. <mi...@el...> - 2009-11-14 01:04:14
|
* Roland McGrath <ro...@re...> wrote: > This is orthogonal to the core-dump tracepoint, I don't see why you > call them a unified patch series. > > The proper name for this event is "signal delivery". But since the > proper name for "send_signal" is "signal generation", I suppose "get" > is analogously improper to the existing "send" tracepoint. ;-) I'd suggest to add include/trace/events/signal.h and put these tracepoints there. > Especially if you call this "get" rather than "deliver", there is > another place that should invoke this tracepoint (or perhaps a third > one). sys_rt_sigtimedwait "gets" a signal without delivering it. In > POSIX terminology this is called "accepting" the signal: the three > things that can happen in the life of a signal are "generate", > "deliver", and "accept". If you are trying to match up what happened > to a signal generated by kill() or whatnot, then you want to notice > both delivery and acceptance as the complementary event. > > (And again I have no clue why this signal stuff should be called > "sched" at all.) it shouldnt be called 'sched' - it should go into 'events/signal.h'. But we also need fuller coverage than this. Coredumps and signal delivery events are just a small part of all things signals, we also want: - signal generation events (send_sig*() variants) - signal IPI/wakeup events - signal loss events (queue overflow) - [ optional: signal blocking/unblocking events ] - [ optional: specific signal handler installation/deinstallation ] That's what we generally require of new events: they should form a coherent whole, a logical set of events that 'make sense' and explain the workings of a subsystem on a given level of detail. How finegrained or coarse the level of details is is an open question, but if a given level of detail has been picked, we want completeness on that level. So for example in the list above, the '[ optional ]' events are finegrained ones that could be left out of the initial version. We've done this consistently for all subsystems that added tracepoints: scheduling, locking, timers, workqueues, block IO, SLAB, IRQs, etc., and we want a similar approach for newly covered subsystems (such as signals) as well. Thanks, Ingo |