Commit ed24affa authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

torture: Make stutter use torture_hrtimeout_*() functions



This commit saves a few lines of code by making the stutter_wait()
and torture_stutter() functions use torture_hrtimeout_jiffies() and
torture_hrtimeout_us().

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent ea31fd9c
Loading
Loading
Loading
Loading
+5 −15
Original line number Diff line number Diff line
@@ -677,7 +677,6 @@ static int stutter_gap;
 */
bool stutter_wait(const char *title)
{
	ktime_t delay;
	unsigned int i = 0;
	bool ret = false;
	int spt;
@@ -693,11 +692,8 @@ bool stutter_wait(const char *title)
			schedule_timeout_interruptible(1);
		} else if (spt == 2) {
			while (READ_ONCE(stutter_pause_test)) {
				if (!(i++ & 0xffff)) {
					set_current_state(TASK_INTERRUPTIBLE);
					delay = 10 * NSEC_PER_USEC;
					schedule_hrtimeout(&delay, HRTIMER_MODE_REL);
				}
				if (!(i++ & 0xffff))
					torture_hrtimeout_us(10, 0, NULL);
				cond_resched();
			}
		} else {
@@ -715,7 +711,6 @@ EXPORT_SYMBOL_GPL(stutter_wait);
 */
static int torture_stutter(void *arg)
{
	ktime_t delay;
	DEFINE_TORTURE_RANDOM(rand);
	int wtime;

@@ -726,20 +721,15 @@ static int torture_stutter(void *arg)
			if (stutter > 2) {
				WRITE_ONCE(stutter_pause_test, 1);
				wtime = stutter - 3;
				delay = ktime_divns(NSEC_PER_SEC * wtime, HZ);
				delay += (torture_random(&rand) >> 3) % NSEC_PER_MSEC;
				set_current_state(TASK_INTERRUPTIBLE);
				schedule_hrtimeout(&delay, HRTIMER_MODE_REL);
				torture_hrtimeout_jiffies(wtime, &rand);
				wtime = 2;
			}
			WRITE_ONCE(stutter_pause_test, 2);
			delay = ktime_divns(NSEC_PER_SEC * wtime, HZ);
			set_current_state(TASK_INTERRUPTIBLE);
			schedule_hrtimeout(&delay, HRTIMER_MODE_REL);
			torture_hrtimeout_jiffies(wtime, NULL);
		}
		WRITE_ONCE(stutter_pause_test, 0);
		if (!torture_must_stop())
			schedule_timeout_interruptible(stutter_gap);
			torture_hrtimeout_jiffies(stutter_gap, NULL);
		torture_shutdown_absorb("torture_stutter");
	} while (!torture_must_stop());
	torture_kthread_stopping("torture_stutter");