Whamcloud - gitweb
LU-12930 various: use schedule_timeout_*interruptible
[fs/lustre-release.git] / libcfs / libcfs / workitem.c
index 168fea5..be11e32 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
  *
  * GPL HEADER END
  */
@@ -27,7 +23,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2014, Intel Corporation.
+ * Copyright (c) 2011, 2013, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -130,8 +126,6 @@ cfs_wi_exit(struct cfs_wi_sched *sched, struct cfs_workitem *wi)
 
        wi->wi_scheduled = 1; /* LBUG future schedule attempts */
        spin_unlock(&sched->ws_lock);
-
-       return;
 }
 EXPORT_SYMBOL(cfs_wi_exit);
 
@@ -202,7 +196,6 @@ cfs_wi_schedule(struct cfs_wi_sched *sched, struct cfs_workitem *wi)
 
        LASSERT (!list_empty(&wi->wi_list));
        spin_unlock(&sched->ws_lock);
-       return;
 }
 EXPORT_SYMBOL(cfs_wi_schedule);
 
@@ -216,7 +209,7 @@ cfs_wi_scheduler(void *arg)
        /* CPT affinity scheduler? */
        if (sched->ws_cptab != NULL)
                if (cfs_cpt_bind(sched->ws_cptab, sched->ws_cpt) != 0)
-                       CWARN("Failed to bind %s on CPT %d\n",
+                       CWARN("Unable to bind %s on CPU partition %d\n",
                                sched->ws_name, sched->ws_cpt);
 
        spin_lock(&cfs_wi_data.wi_glock);
@@ -317,14 +310,13 @@ cfs_wi_sched_destroy(struct cfs_wi_sched *sched)
                int i = 2;
 
                while (sched->ws_nthreads > 0) {
-                       CDEBUG(IS_PO2(++i) ? D_WARNING : D_NET,
-                              "waiting for %d threads of WI sched[%s] to "
-                              "terminate\n", sched->ws_nthreads,
-                              sched->ws_name);
+                       CDEBUG(is_power_of_2(++i / 20) ? D_WARNING : D_NET,
+                              "waiting %us for %d %s worker threads to exit\n",
+                              i / 20, sched->ws_nthreads, sched->ws_name);
 
                        spin_unlock(&cfs_wi_data.wi_glock);
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(cfs_time_seconds(1) / 20);
+                       schedule_timeout_uninterruptible(cfs_time_seconds(1)
+                                                        / 20);
                        spin_lock(&cfs_wi_data.wi_glock);
                }
        }
@@ -454,8 +446,8 @@ cfs_wi_shutdown (void)
 
                while (sched->ws_nthreads != 0) {
                        spin_unlock(&cfs_wi_data.wi_glock);
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(cfs_time_seconds(1) / 20);
+                       schedule_timeout_uninterruptible(cfs_time_seconds(1)
+                                                        / 20);
                        spin_lock(&cfs_wi_data.wi_glock);
                }
                spin_unlock(&cfs_wi_data.wi_glock);