Re: bnx2i kthread madness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux