dm bufio: remove dm_bufio_cond_resched()
Use cond_resched() like everybody else. Mikulas explained why dm_bufio_cond_resched() was introduced to begin with (hopefully cond_resched can be improved accordingly) here: https://www.redhat.com/archives/dm-devel/2016-September/msg00112.html Cc: Ingo Molnar <mingo@kernel.org> Cc: Mikulas Patocka <mpatocka@redhat.com> Cc: Mike Snitzer <snitzer@redhat.com> Cc: Alasdair Kergon <agk@redhat.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Mike Snitzer <snitzer@redhat.com> # added last comment in header
This commit is contained in:
committed by
Mike Snitzer
parent
f659b10087
commit
7cd326747f
@@ -191,19 +191,6 @@ static void dm_bufio_unlock(struct dm_bufio_client *c)
|
|||||||
mutex_unlock(&c->lock);
|
mutex_unlock(&c->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* FIXME Move to sched.h?
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_PREEMPT_VOLUNTARY
|
|
||||||
# define dm_bufio_cond_resched() \
|
|
||||||
do { \
|
|
||||||
if (unlikely(need_resched())) \
|
|
||||||
_cond_resched(); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
|
||||||
# define dm_bufio_cond_resched() do { } while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------*/
|
/*----------------------------------------------------------------*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -741,7 +728,7 @@ static void __flush_write_list(struct list_head *write_list)
|
|||||||
list_entry(write_list->next, struct dm_buffer, write_list);
|
list_entry(write_list->next, struct dm_buffer, write_list);
|
||||||
list_del(&b->write_list);
|
list_del(&b->write_list);
|
||||||
submit_io(b, WRITE, b->block, write_endio);
|
submit_io(b, WRITE, b->block, write_endio);
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
blk_finish_plug(&plug);
|
blk_finish_plug(&plug);
|
||||||
}
|
}
|
||||||
@@ -780,7 +767,7 @@ static struct dm_buffer *__get_unclaimed_buffer(struct dm_bufio_client *c)
|
|||||||
__unlink_buffer(b);
|
__unlink_buffer(b);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
|
|
||||||
list_for_each_entry_reverse(b, &c->lru[LIST_DIRTY], lru_list) {
|
list_for_each_entry_reverse(b, &c->lru[LIST_DIRTY], lru_list) {
|
||||||
@@ -791,7 +778,7 @@ static struct dm_buffer *__get_unclaimed_buffer(struct dm_bufio_client *c)
|
|||||||
__unlink_buffer(b);
|
__unlink_buffer(b);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -923,7 +910,7 @@ static void __write_dirty_buffers_async(struct dm_bufio_client *c, int no_wait,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
__write_dirty_buffer(b, write_list);
|
__write_dirty_buffer(b, write_list);
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -973,7 +960,7 @@ static void __check_watermark(struct dm_bufio_client *c,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
__free_buffer_wake(b);
|
__free_buffer_wake(b);
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->n_buffers[LIST_DIRTY] > threshold_buffers)
|
if (c->n_buffers[LIST_DIRTY] > threshold_buffers)
|
||||||
@@ -1170,7 +1157,7 @@ void dm_bufio_prefetch(struct dm_bufio_client *c,
|
|||||||
submit_io(b, READ, b->block, read_endio);
|
submit_io(b, READ, b->block, read_endio);
|
||||||
dm_bufio_release(b);
|
dm_bufio_release(b);
|
||||||
|
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
|
|
||||||
if (!n_blocks)
|
if (!n_blocks)
|
||||||
goto flush_plug;
|
goto flush_plug;
|
||||||
@@ -1291,7 +1278,7 @@ again:
|
|||||||
!test_bit(B_WRITING, &b->state))
|
!test_bit(B_WRITING, &b->state))
|
||||||
__relink_lru(b, LIST_CLEAN);
|
__relink_lru(b, LIST_CLEAN);
|
||||||
|
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we dropped the lock, the list is no longer consistent,
|
* If we dropped the lock, the list is no longer consistent,
|
||||||
@@ -1574,7 +1561,7 @@ static unsigned long __scan(struct dm_bufio_client *c, unsigned long nr_to_scan,
|
|||||||
freed++;
|
freed++;
|
||||||
if (!--nr_to_scan || ((count - freed) <= retain_target))
|
if (!--nr_to_scan || ((count - freed) <= retain_target))
|
||||||
return freed;
|
return freed;
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return freed;
|
return freed;
|
||||||
@@ -1808,7 +1795,7 @@ static void __evict_old_buffers(struct dm_bufio_client *c, unsigned long age_hz)
|
|||||||
if (__try_evict_buffer(b, 0))
|
if (__try_evict_buffer(b, 0))
|
||||||
count--;
|
count--;
|
||||||
|
|
||||||
dm_bufio_cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
|
|
||||||
dm_bufio_unlock(c);
|
dm_bufio_unlock(c);
|
||||||
|
Reference in New Issue
Block a user