diff options
author | Anton Blanchard <anton@samba.org> | 2007-10-30 14:57:43 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-30 14:57:43 -0700 |
commit | 3f776e8a25a9d281125490562e1cc5bd7c14cf7c (patch) | |
tree | 6f47d656cf44fe1f38c9b3cf2476c4f209209bec /drivers/infiniband/core | |
parent | 164ef7a25285bbc42d8177f454b31631ca4d3ec7 (diff) | |
download | op-kernel-dev-3f776e8a25a9d281125490562e1cc5bd7c14cf7c.zip op-kernel-dev-3f776e8a25a9d281125490562e1cc5bd7c14cf7c.tar.gz |
IB/fmr_pool: Stop ib_fmr threads from contributing to load average
I noticed my machine was at a constant load average of 1. This was
because ib_create_fmr_pool calls kthread_create but does not
immediately wake the thread up.
Change to using kthread_run so we enter ib_fmr_cleanup_thread(), set
TASK_INTERRUPTIBLE, then go to sleep.
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/fmr_pool.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c index d7f6452..e8d5f6b 100644 --- a/drivers/infiniband/core/fmr_pool.c +++ b/drivers/infiniband/core/fmr_pool.c @@ -291,10 +291,10 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd, atomic_set(&pool->flush_ser, 0); init_waitqueue_head(&pool->force_wait); - pool->thread = kthread_create(ib_fmr_cleanup_thread, - pool, - "ib_fmr(%s)", - device->name); + pool->thread = kthread_run(ib_fmr_cleanup_thread, + pool, + "ib_fmr(%s)", + device->name); if (IS_ERR(pool->thread)) { printk(KERN_WARNING PFX "couldn't start cleanup thread\n"); ret = PTR_ERR(pool->thread); |