>Hello List... > >I am working on trying to port a LINUX kernel >driver from RedHat AS 4/5 to Fedora 11 & 12. > >Within this driver, I create some threads. >The threads call skb_rec_datagram(). > >When it is time to shut down the system, >my main kernel code ( in RH 4 & 5 ) called kill_proc( pid, SIGTERM, 0 ) >to terminate the threads created above. >The skb_rec_datagram() would return with an error, >and the threads would then exit cleanly. > >Now for Fedora 11 & 12, I understand that kill_proc() is no >longer available to use. So, I have performed experiments that >replace the kill_proc() with kill_pid() >or with send_sig_info(). >Neither of these routines are terminating my threads. > >I have added extra debug to the code. The return codes from >kill_pid() and send_sig_info() are zero, implying that >what I asked for was accomplished. > >Yet, my threads did not terminate. I added code >after the skb_rec_datagram() call to print out the error value. >This printk statement does not execute when the SIGTERM >is genereated. > >Using "crash" on a live Fedora 12 system, I see that my threads >are, as expected, sitting inside skb_rec_datagram(). > >So, I am left with two choices. Either the >replacements for kill_proc() are not functioning, or >skb_rec_datagram() has changed its behavior that ignores >SIGTERM. >Interestingly, I can "kill -9 " my threads as ROOT from the command >line on a RH 4/5 system. But >I can not do so on a Fedora 11/12 system. This would seem to imply that >my signals are not masked correctly. However, inspection via >'crash' on a live system seems to indicate that my signal mask is ok. > > >Does anyone know if the behavior of skb_rec_datagram() has changed >in the newer kernels ? > >thanks > >wr In Fedora 11 code for net/core/datagram.c, the skb_rec_datagram() and wait_for_packet() functions seem to have changed such that there is a new ( to me anyway ) function named receiver_wake_function(). This function, based on the comments, appears to be filtering signals. Can anyone tell me if this receiver_wake_function() is filtering out SIGTERM and SIGKILL signals ? ( I have not been able to determine how these SIG signals convert to the poll bits in the code... ) wr -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list