Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b04be96 authored by NeilBrown's avatar NeilBrown
Browse files

md: change daemon_sleep to be in 'jiffies' rather than 'seconds'.



This removes a lot of multiplications by HZ.

Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 42a04b50
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -565,7 +565,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
	sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0);
	sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0);


	chunksize = le32_to_cpu(sb->chunksize);
	chunksize = le32_to_cpu(sb->chunksize);
	daemon_sleep = le32_to_cpu(sb->daemon_sleep);
	daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ;
	write_behind = le32_to_cpu(sb->write_behind);
	write_behind = le32_to_cpu(sb->write_behind);


	/* verify that the bitmap-specific fields are valid */
	/* verify that the bitmap-specific fields are valid */
@@ -578,7 +578,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
		reason = "bitmap chunksize too small";
		reason = "bitmap chunksize too small";
	else if ((1 << ffz(~chunksize)) != chunksize)
	else if ((1 << ffz(~chunksize)) != chunksize)
		reason = "bitmap chunksize not a power of 2";
		reason = "bitmap chunksize not a power of 2";
	else if (daemon_sleep < 1 || daemon_sleep > MAX_SCHEDULE_TIMEOUT / HZ)
	else if (daemon_sleep < 1 || daemon_sleep > MAX_SCHEDULE_TIMEOUT)
		reason = "daemon sleep period out of range";
		reason = "daemon sleep period out of range";
	else if (write_behind > COUNTER_MAX)
	else if (write_behind > COUNTER_MAX)
		reason = "write-behind limit out of range (0 - 16383)";
		reason = "write-behind limit out of range (0 - 16383)";
@@ -1100,7 +1100,7 @@ void bitmap_daemon_work(mddev_t *mddev)
		return;
		return;
	}
	}
	if (time_before(jiffies, bitmap->daemon_lastrun
	if (time_before(jiffies, bitmap->daemon_lastrun
			+ bitmap->mddev->bitmap_info.daemon_sleep*HZ))
			+ bitmap->mddev->bitmap_info.daemon_sleep))
		goto done;
		goto done;


	bitmap->daemon_lastrun = jiffies;
	bitmap->daemon_lastrun = jiffies;
@@ -1215,7 +1215,7 @@ void bitmap_daemon_work(mddev_t *mddev)
 done:
 done:
	if (bitmap->allclean == 0)
	if (bitmap->allclean == 0)
		bitmap->mddev->thread->timeout = 
		bitmap->mddev->thread->timeout = 
			bitmap->mddev->bitmap_info.daemon_sleep * HZ;
			bitmap->mddev->bitmap_info.daemon_sleep;
	mutex_unlock(&mddev->bitmap_info.mutex);
	mutex_unlock(&mddev->bitmap_info.mutex);
}
}


@@ -1484,7 +1484,7 @@ void bitmap_cond_end_sync(struct bitmap *bitmap, sector_t sector)
		return;
		return;
	}
	}
	if (time_before(jiffies, (bitmap->last_end_sync
	if (time_before(jiffies, (bitmap->last_end_sync
				  + bitmap->mddev->bitmap_info.daemon_sleep * HZ)))
				  + bitmap->mddev->bitmap_info.daemon_sleep)))
		return;
		return;
	wait_event(bitmap->mddev->recovery_wait,
	wait_event(bitmap->mddev->recovery_wait,
		   atomic_read(&bitmap->mddev->recovery_active) == 0);
		   atomic_read(&bitmap->mddev->recovery_active) == 0);
@@ -1553,7 +1553,7 @@ void bitmap_flush(mddev_t *mddev)
	/* run the daemon_work three time to ensure everything is flushed
	/* run the daemon_work three time to ensure everything is flushed
	 * that can be
	 * that can be
	 */
	 */
	sleep = mddev->bitmap_info.daemon_sleep * HZ * 2;
	sleep = mddev->bitmap_info.daemon_sleep * 2;
	bitmap->daemon_lastrun -= sleep;
	bitmap->daemon_lastrun -= sleep;
	bitmap_daemon_work(mddev);
	bitmap_daemon_work(mddev);
	bitmap->daemon_lastrun -= sleep;
	bitmap->daemon_lastrun -= sleep;
@@ -1694,7 +1694,7 @@ int bitmap_create(mddev_t *mddev)


	mddev->bitmap = bitmap;
	mddev->bitmap = bitmap;


	mddev->thread->timeout = mddev->bitmap_info.daemon_sleep * HZ;
	mddev->thread->timeout = mddev->bitmap_info.daemon_sleep;


	bitmap_update_sb(bitmap);
	bitmap_update_sb(bitmap);


+1 −1
Original line number Original line Diff line number Diff line
@@ -2277,7 +2277,7 @@ static void raid10_quiesce(mddev_t *mddev, int state)
	}
	}
	if (mddev->thread) {
	if (mddev->thread) {
		if (mddev->bitmap)
		if (mddev->bitmap)
			mddev->thread->timeout = mddev->bitmap_info.daemon_sleep * HZ;
			mddev->thread->timeout = mddev->bitmap_info.daemon_sleep;
		else
		else
			mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT;
			mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT;
		md_wakeup_thread(mddev->thread);
		md_wakeup_thread(mddev->thread);