diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2020-07-25 14:42:00 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-07-25 09:47:44 -0600 |
commit | b089ed390b5c9bc248a32168709cfa01099caf9d (patch) | |
tree | 555fbe15cab41ee6f75c68ebcf61651f0317b181 /fs | |
parent | f063c5477eb392c315aa25ad538b4920b367ea05 (diff) | |
download | lwn-b089ed390b5c9bc248a32168709cfa01099caf9d.tar.gz lwn-b089ed390b5c9bc248a32168709cfa01099caf9d.zip |
io-wq: update hash bits
Linked requests are hashed, remove a comment stating otherwise. Also
move hash bits to emphasise that we don't carry it through loop
iteration and set it every time.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/io-wq.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/io-wq.c b/fs/io-wq.c index 8702d3c3b291..e92c4724480c 100644 --- a/fs/io-wq.c +++ b/fs/io-wq.c @@ -490,7 +490,6 @@ static void io_worker_handle_work(struct io_worker *worker) do { struct io_wq_work *work; - unsigned int hash; get_next: /* * If we got some work, mark us as busy. If we didn't, but @@ -513,6 +512,7 @@ get_next: /* handle a whole dependent link */ do { struct io_wq_work *old_work, *next_hashed, *linked; + unsigned int hash = io_get_work_hash(work); next_hashed = wq_next_work(work); io_impersonate_work(worker, work); @@ -523,7 +523,6 @@ get_next: if (test_bit(IO_WQ_BIT_CANCEL, &wq->state)) work->flags |= IO_WQ_WORK_CANCEL; - hash = io_get_work_hash(work); old_work = work; linked = wq->do_work(work); @@ -542,8 +541,6 @@ get_next: spin_lock_irq(&wqe->lock); wqe->hash_map &= ~BIT_ULL(hash); wqe->flags &= ~IO_WQE_FLAG_STALLED; - /* dependent work is not hashed */ - hash = -1U; /* skip unnecessary unlock-lock wqe->lock */ if (!work) goto get_next; |