On Wed, Sep 28, 2011 at 7:29 PM, Eddie Wai <eddie.wai@xxxxxxxxxxxx> wrote: > On Wed, 2011-09-28 at 08:05 -0700, Peter Zijlstra wrote: > > I accidentally looked at all kthreads in existence on my system and > > found I had: > > > > [iscsi_eh] > > [bnx2i_thread/0] > > [bnx2i_thread/1] > > [bnx2i_thread/2] > > [bnx2i_thread/3] > > [bnx2i_thread/4] > > [bnx2i_thread/5] > > [bnx2i_thread/6] > > [bnx2i_thread/7] > > [bnx2i_thread/8] > > [bnx2i_thread/9] > > [bnx2i_thread/10] > > [bnx2i_thread/11] > > [bnx2i_thread/12] > > [bnx2i_thread/13] > > [bnx2i_thread/14] > > [bnx2i_thread/15] > > [bnx2i_thread/16] > > [bnx2i_thread/17] > > [bnx2i_thread/18] > > [bnx2i_thread/19] > > [bnx2i_thread/20] > > [bnx2i_thread/21] > > [bnx2i_thread/22] > > [bnx2i_thread/23] > > > > This left me wondering why, because I most certainly am not using iSCSI. > > I don't even know why its enabled in my .config (and it won't be long). > > > > Please fix this muck to not create useless threads. > > Point noted. In the current bnx2i driver, one kthread is created per > cpu core upon module init (and destroyed upon module exit). The > kthreads are meant only to improve I/O performance when iSCSI is > employed. Otherwise, I agree that they should not exist. Why doesn't bnx2i use one of the system work queues defined in <linux/workqueue.h> ? $ git grep system include/linux/workqueue.h|cat include/linux/workqueue.h: * system_wq is the one used by schedule[_delayed]_work[_on](). include/linux/workqueue.h: * system_long_wq is similar to system_wq but may host long running include/linux/workqueue.h: * system_nrt_wq is non-reentrant and guarantees that any given work include/linux/workqueue.h: * system_unbound_wq is unbound workqueue. Workers are not bound to include/linux/workqueue.h: * system_freezable_wq is equivalent to system_wq except that it's include/linux/workqueue.h:extern struct workqueue_struct *system_wq; include/linux/workqueue.h:extern struct workqueue_struct *system_long_wq; include/linux/workqueue.h:extern struct workqueue_struct *system_nrt_wq; include/linux/workqueue.h:extern struct workqueue_struct *system_unbound_wq; include/linux/workqueue.h:extern struct workqueue_struct *system_freezable_wq; Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html