Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched, cleanup, treewide: Remove set_current_state(TASK_RUNNING) after schedule()

schedule(), io_schedule() and schedule_timeout() always return
with TASK_RUNNING state set, so one more setting is unnecessary.

(All places in patch are visible good, only exception is
kiblnd_scheduler() from:

drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c

Its schedule() is one line above standard 3 lines of unified diff)

No places where set_current_state() is used for mb().

Signed-off-by: Kirill Tkhai <ktkhai@parallels.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1410529254.3569.23.camel@tkhai
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Anil Belur <askb23@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dave Kleikamp <shaggy@kernel.org>
Cc: David Airlie <airlied@linux.ie>
Cc: David Howells <dhowells@redhat.com>
Cc: Dmitry Eremin <dmitry.eremin@intel.com>
Cc: Frank Blaschka <blaschka@linux.vnet.ibm.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Isaac Huang <he.huang@intel.com>
Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: James E.J. Bottomley <jejb@parisc-linux.org>
Cc: J. Bruce Fields <bfields@fieldses.org>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Laura Abbott <lauraa@codeaurora.org>
Cc: Liang Zhen <liang.zhen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Masaru Nomura <massa.nomura@gmail.com>
Cc: Michael Opdenacker <michael.opdenacker@free-electrons.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Neil Brown <neilb@suse.de>
Cc: Oleg Drokin <green@linuxhacker.ru>
Cc: Peng Tao <bergwolf@gmail.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Robert Love <robert.w.love@intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: Ursula Braun <ursula.braun@de.ibm.com>
Cc: Zi Shen Lim <zlim.lnx@gmail.com>
Cc: devel@driverdev.osuosl.org
Cc: dm-devel@redhat.com
Cc: dri-devel@lists.freedesktop.org
Cc: fcoe-devel@open-fcoe.org
Cc: jfs-discussion@lists.sourceforge.net
Cc: linux390@de.ibm.com
Cc: linux-afs@lists.infradead.org
Cc: linux-cris-kernel@axis.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: qla2xxx-upstream@qlogic.com
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: user-mode-linux-user@lists.sourceforge.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Kirill Tkhai and committed by
Ingo Molnar
f139caf2 9c368b5b

-29
-1
arch/cris/arch-v10/drivers/sync_serial.c
··· 1086 1086 } 1087 1087 local_irq_restore(flags); 1088 1088 schedule(); 1089 - set_current_state(TASK_RUNNING); 1090 1089 remove_wait_queue(&port->out_wait_q, &wait); 1091 1090 if (signal_pending(current)) 1092 1091 return -EINTR;
-1
arch/cris/arch-v32/drivers/sync_serial.c
··· 1089 1089 } 1090 1090 1091 1091 schedule(); 1092 - set_current_state(TASK_RUNNING); 1093 1092 remove_wait_queue(&port->out_wait_q, &wait); 1094 1093 1095 1094 if (signal_pending(current))
-1
arch/um/drivers/random.c
··· 79 79 set_task_state(current, TASK_INTERRUPTIBLE); 80 80 81 81 schedule(); 82 - set_task_state(current, TASK_RUNNING); 83 82 remove_wait_queue(&host_read_wait, &wait); 84 83 85 84 if (atomic_dec_and_test(&host_sleep_count)) {
-1
drivers/gpu/vga/vgaarb.c
··· 403 403 } 404 404 schedule(); 405 405 remove_wait_queue(&vga_wait_queue, &wait); 406 - set_current_state(TASK_RUNNING); 407 406 } 408 407 return rc; 409 408 }
-1
drivers/md/dm-bufio.c
··· 720 720 721 721 io_schedule(); 722 722 723 - set_task_state(current, TASK_RUNNING); 724 723 remove_wait_queue(&c->free_buffer_wait, &wait); 725 724 726 725 dm_bufio_lock(c);
-1
drivers/parisc/power.c
··· 121 121 unsigned long soft_power_reg = (unsigned long) param; 122 122 123 123 schedule_timeout_interruptible(pwrsw_enabled ? HZ : HZ/POWERSWITCH_POLL_PER_SEC); 124 - __set_current_state(TASK_RUNNING); 125 124 126 125 if (unlikely(!pwrsw_enabled)) 127 126 continue;
-2
drivers/s390/net/claw.c
··· 481 481 spin_unlock_irqrestore( 482 482 get_ccwdev_lock(privptr->channel[i].cdev), saveflags); 483 483 schedule(); 484 - set_current_state(TASK_RUNNING); 485 484 remove_wait_queue(&privptr->channel[i].wait, &wait); 486 485 if(rc != 0) 487 486 ccw_check_return_code(privptr->channel[i].cdev, rc); ··· 827 828 spin_unlock_irqrestore( 828 829 get_ccwdev_lock(privptr->channel[i].cdev), saveflags); 829 830 schedule(); 830 - set_current_state(TASK_RUNNING); 831 831 remove_wait_queue(&privptr->channel[i].wait, &wait); 832 832 if (rc != 0) { 833 833 ccw_check_return_code(privptr->channel[i].cdev, rc);
-1
drivers/scsi/fcoe/fcoe.c
··· 1884 1884 set_current_state(TASK_INTERRUPTIBLE); 1885 1885 spin_unlock_bh(&p->fcoe_rx_list.lock); 1886 1886 schedule(); 1887 - set_current_state(TASK_RUNNING); 1888 1887 goto retry; 1889 1888 } 1890 1889
-1
drivers/scsi/qla2xxx/qla_os.c
··· 4853 4853 "DPC handler sleeping.\n"); 4854 4854 4855 4855 schedule(); 4856 - __set_current_state(TASK_RUNNING); 4857 4856 4858 4857 if (!base_vha->flags.init_done || ha->flags.mbox_busy) 4859 4858 goto end_loop;
-3
drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
··· 3215 3215 3216 3216 schedule_timeout(timeout); 3217 3217 3218 - set_current_state(TASK_RUNNING); 3219 3218 remove_wait_queue(&kiblnd_data.kib_connd_waitq, &wait); 3220 3219 spin_lock_irqsave(&kiblnd_data.kib_connd_lock, flags); 3221 3220 } ··· 3431 3432 busy_loops = 0; 3432 3433 3433 3434 remove_wait_queue(&sched->ibs_waitq, &wait); 3434 - set_current_state(TASK_RUNNING); 3435 3435 spin_lock_irqsave(&sched->ibs_lock, flags); 3436 3436 } 3437 3437 ··· 3505 3507 3506 3508 rc = schedule_timeout(long_sleep ? cfs_time_seconds(10) : 3507 3509 cfs_time_seconds(1)); 3508 - set_current_state(TASK_RUNNING); 3509 3510 remove_wait_queue(&kiblnd_data.kib_failover_waitq, &wait); 3510 3511 write_lock_irqsave(glock, flags); 3511 3512
-1
drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c
··· 2233 2233 nloops = 0; 2234 2234 schedule_timeout(timeout); 2235 2235 2236 - set_current_state(TASK_RUNNING); 2237 2236 remove_wait_queue(&ksocknal_data.ksnd_connd_waitq, &wait); 2238 2237 spin_lock_bh(connd_lock); 2239 2238 }
-1
drivers/staging/lustre/lustre/libcfs/fail.c
··· 131 131 id, ms); 132 132 set_current_state(TASK_UNINTERRUPTIBLE); 133 133 schedule_timeout(cfs_time_seconds(ms) / 1000); 134 - set_current_state(TASK_RUNNING); 135 134 CERROR("cfs_fail_timeout id %x awake\n", id); 136 135 } 137 136 return ret;
-1
drivers/tty/bfin_jtag_comm.c
··· 77 77 pr_debug("waiting for readers\n"); 78 78 __set_current_state(TASK_UNINTERRUPTIBLE); 79 79 schedule(); 80 - __set_current_state(TASK_RUNNING); 81 80 continue; 82 81 } 83 82
-1
fs/afs/vlocation.c
··· 130 130 /* second+ BUSY - sleep a little bit */ 131 131 set_current_state(TASK_UNINTERRUPTIBLE); 132 132 schedule_timeout(1); 133 - __set_current_state(TASK_RUNNING); 134 133 } 135 134 continue; 136 135 }
-2
fs/jfs/jfs_logmgr.c
··· 1585 1585 set_current_state(TASK_UNINTERRUPTIBLE); 1586 1586 LOGGC_UNLOCK(log); 1587 1587 schedule(); 1588 - __set_current_state(TASK_RUNNING); 1589 1588 LOGGC_LOCK(log); 1590 1589 remove_wait_queue(&target->gcwait, &__wait); 1591 1590 } ··· 2358 2359 set_current_state(TASK_INTERRUPTIBLE); 2359 2360 spin_unlock_irq(&log_redrive_lock); 2360 2361 schedule(); 2361 - __set_current_state(TASK_RUNNING); 2362 2362 } 2363 2363 } while (!kthread_should_stop()); 2364 2364
-3
fs/jfs/jfs_txnmgr.c
··· 136 136 set_current_state(TASK_UNINTERRUPTIBLE); 137 137 TXN_UNLOCK(); 138 138 io_schedule(); 139 - __set_current_state(TASK_RUNNING); 140 139 remove_wait_queue(event, &wait); 141 140 } 142 141 ··· 2807 2808 set_current_state(TASK_INTERRUPTIBLE); 2808 2809 LAZY_UNLOCK(flags); 2809 2810 schedule(); 2810 - __set_current_state(TASK_RUNNING); 2811 2811 remove_wait_queue(&jfs_commit_thread_wait, &wq); 2812 2812 } 2813 2813 } while (!kthread_should_stop()); ··· 2994 2996 set_current_state(TASK_INTERRUPTIBLE); 2995 2997 TXN_UNLOCK(); 2996 2998 schedule(); 2997 - __set_current_state(TASK_RUNNING); 2998 2999 } 2999 3000 } while (!kthread_should_stop()); 3000 3001
-1
fs/nfs/blocklayout/blocklayoutdev.c
··· 146 146 147 147 set_current_state(TASK_UNINTERRUPTIBLE); 148 148 schedule(); 149 - __set_current_state(TASK_RUNNING); 150 149 remove_wait_queue(&nn->bl_wq, &wq); 151 150 152 151 if (reply->status != BL_DEVICE_REQUEST_PROC) {
-1
fs/nfs/blocklayout/blocklayoutdm.c
··· 76 76 77 77 set_current_state(TASK_UNINTERRUPTIBLE); 78 78 schedule(); 79 - __set_current_state(TASK_RUNNING); 80 79 remove_wait_queue(&nn->bl_wq, &wq); 81 80 82 81 out:
-1
fs/nfsd/nfs4recover.c
··· 670 670 } 671 671 672 672 schedule(); 673 - set_current_state(TASK_RUNNING); 674 673 675 674 if (msg.errno < 0) 676 675 ret = msg.errno;
-1
kernel/time/hrtimer.c
··· 1776 1776 */ 1777 1777 if (!expires) { 1778 1778 schedule(); 1779 - __set_current_state(TASK_RUNNING); 1780 1779 return -EINTR; 1781 1780 } 1782 1781
-3
kernel/trace/ring_buffer_benchmark.c
··· 205 205 break; 206 206 207 207 schedule(); 208 - __set_current_state(TASK_RUNNING); 209 208 } 210 209 reader_finish = 0; 211 210 complete(&read_done); ··· 378 379 break; 379 380 380 381 schedule(); 381 - __set_current_state(TASK_RUNNING); 382 382 } 383 383 __set_current_state(TASK_RUNNING); 384 384 ··· 405 407 trace_printk("Sleeping for 10 secs\n"); 406 408 set_current_state(TASK_INTERRUPTIBLE); 407 409 schedule_timeout(HZ * SLEEP_TIME); 408 - __set_current_state(TASK_RUNNING); 409 410 } 410 411 411 412 if (kill_test)