On Sunday 11 January 2004 03:42 pm, Daan Vreeken [PA4DAN] wrote: > Hi, > > I am writing a kernel module in which I have created a kernel thread with > kthread_create. For debugging I have added a couple of printf's in the > thread routine. Running the module on a single-proc system works fine, but > when running it on one of my SMP machines the console freezes after a > couple of seconds. > > I have been looking through the archives and through some other drivers ( > for example randomdev.c uses a kthread and printf's from it ). I found a > version of randomdev.c with google that lock's Giant while calling printf, > but randomdev.c in my src-tree has no locking there. (I'm using > 5.1-RELEASE) Right now I have changed all printf's in my module into a > macro-function that checks if ( curproc == our thread ) and locks Giant if > true, then printf's. (since some of the routines get called both from the > thread and from other places.) > > What is the current state of printf-locking when called from a kernel > thread? Is locking Giant the only possible way to avoid problems on SMP > systems, or is there a more fine-grained printf lock available? (on > 5.1-RELEASE or -current) printf really probably does require Giant right now, it just happens to be used very often after bootup when SMP is running. -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Mon Jan 12 2004 - 07:42:44 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:37 UTC