summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-02-08 18:27:58 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-08 18:27:58 -0800
commitcdecbb336e64b8a846bf97c5a275dc94fdb1083d (patch)
tree305449237d969d0476bf66ccf401132f8265c287
parent4e02370f64167a30ff7ba35ae5bc296f09b964d3 (diff)
parent9c9ce763b114e608b5cf3aa6cb69ad9f6e8b6adf (diff)
downloadlinux-cdecbb336e64b8a846bf97c5a275dc94fdb1083d.tar.bz2
Merge git://git.kvack.org/~bcrl/aio-fixes
Pull aio nested sleep annotation from Ben LaHaise, * git://git.kvack.org/~bcrl/aio-fixes: aio: annotate aio_read_event_ring for sleep patterns
-rw-r--r--fs/aio.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/aio.c b/fs/aio.c
index 1b7893ecc296..c428871f1093 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1140,6 +1140,13 @@ static long aio_read_events_ring(struct kioctx *ctx,
long ret = 0;
int copy_ret;
+ /*
+ * The mutex can block and wake us up and that will cause
+ * wait_event_interruptible_hrtimeout() to schedule without sleeping
+ * and repeat. This should be rare enough that it doesn't cause
+ * peformance issues. See the comment in read_events() for more detail.
+ */
+ sched_annotate_sleep();
mutex_lock(&ctx->ring_lock);
/* Access to ->ring_pages here is protected by ctx->ring_lock. */