UBIFS: slightly optimize write-buffer timer usage
This patch adds the following minor optimization: 1. If write-buffer does not use the timer, indicate it with the wbuf->no_timer variable, instead of using the wbuf->softlimit variable. This is better because wbuf->softlimit is of ktime_t type, and the ktime_to_ns function contains 64-bit multiplication. 2. Do not call the 'hrtimer_cancel()' function for write-buffers which do not use timers. 3. Do not cancel the timer in 'ubifs_put_super()' because the synchronization function does this. This patch also removes a confusing comment. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
这个提交包含在:
@@ -312,7 +312,7 @@ static void new_wbuf_timer_nolock(struct ubifs_wbuf *wbuf)
|
||||
{
|
||||
ubifs_assert(!hrtimer_active(&wbuf->timer));
|
||||
|
||||
if (!ktime_to_ns(wbuf->softlimit))
|
||||
if (wbuf->no_timer)
|
||||
return;
|
||||
dbg_io("set timer for jhead %d, %llu-%llu millisecs", wbuf->jhead,
|
||||
ktime_to_ns(wbuf->softlimit)/USEC_PER_SEC,
|
||||
@@ -327,11 +327,8 @@ static void new_wbuf_timer_nolock(struct ubifs_wbuf *wbuf)
|
||||
*/
|
||||
static void cancel_wbuf_timer_nolock(struct ubifs_wbuf *wbuf)
|
||||
{
|
||||
/*
|
||||
* If the syncer is waiting for the lock (from the background thread's
|
||||
* context) and another task is changing write-buffer then the syncing
|
||||
* should be canceled.
|
||||
*/
|
||||
if (wbuf->no_timer)
|
||||
return;
|
||||
wbuf->need_sync = 0;
|
||||
hrtimer_cancel(&wbuf->timer);
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户