Thread (53 messages) 53 messages, 5 authors, 2017-03-31

Re: [PATCH RFC 10/14] block, bfq: add Early Queue Merge (EQM)

From: Jens Axboe <axboe@kernel.dk>
Date: 2017-03-15 16:56:32
Also in: lkml

On 03/04/2017 09:01 AM, Paolo Valente wrote:
quoted hunk ↗ jump to hunk
@@ -6330,7 +7012,41 @@ static void bfq_rq_enqueued(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 
 static void __bfq_insert_request(struct bfq_data *bfqd, struct request *rq)
 {
-	struct bfq_queue *bfqq = RQ_BFQQ(rq);
+	struct bfq_queue *bfqq = RQ_BFQQ(rq), *new_bfqq;
+
+	/*
+	 * An unplug may trigger a requeue of a request from the device
+	 * driver: make sure we are in process context while trying to
+	 * merge two bfq_queues.
+	 */
+	if (!in_interrupt()) {
What's the reason for this? Don't use in_interrupt() to guide any of
your decision making here.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help