Is notify_die being overloaded?

Robin Holt
2006-04-13T19:47:09Z

notify_die seems to be called to indicate the machine is going down as
well as there are trapped events for the process.

Specifically, the following call notify_die when there are machine
related events:
ia64_mca_rendez_int_handler (DIE_MCA_RENDZVOUS_ENTER,
DIE_MCA_RENDZVOUS_PROCESS, DIE_MCA_RENDZVOUS_LEAVE)
ia64_mca_handler (DIE_MCA_MONARCH_ENTER, DIE_MCA_MONARCH_PROCESS,
DIE_MCA_MONARCH_LEAVE)
ia64_init_handler (DIE_INIT_ENTER,
DIE_INIT_{SLAVE|MONARCH}_{ENTER|PROCESS|LEAVE})
ia64_mca_init (DIE_MCA_NEW_TIMEOUT)
machine_restart (DIE_MACHINE_RESTART)
machine_halt (DIE_MACHINE_HALT)
die (DIE_OOPS)

The following seem to be process related:
ia64_bad_break (DIE_BREAK, DIE_FAULT)
ia64_do_page_fault (DIE_PAGE_FAULT)

Shouldn't these really be seperated into two seperate notifier chains?
One for OS level die() type activity and another for process faults
which a debugger et. al. would want to know about?

The specific concern is some testing we have been doing with an upcoming
OSD release. We see notify_die being called from ia64_do_page_fault
frequently in our performance samples. On these machines, xpc has
registers a die notifier and therefore callouts are occuring which have
no relationship to a processes page faulting. XPC is looking for events
which indicate the OS is stopping. Additionally, kdb is installed on
this machine as well and it has registered a die notifier as well.

Thanks,
Robin Holt