blk_mq_tagset_busy_iter is not safe that it could get stale request
in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here.
Signed-off-by: Jianchao Wang
---
drivers/block/mtip32xx/mtip32xx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/block/mtip3
he blk_mq_tagset_busy_iter.
Change log
V1 -> V2:
- Add wrapper to hide the 'infligh' parameter to user based on Sagi's
suggestion.
- Other misc changes on comment.
Jianchao Wang (8)
blk-mq: get rid of the synchronize_rcu in
blk-mq: use static_rqs instead of rqs to iterate tags
blk-mq:
blk_mq_tagset_inflight_iter is not safe that it could get stale request
in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here. A new helper
interface nvme_iterate_inflight_rqs is introduced to iterate
all of the ns under a ctrl.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/core.c |
ueue cleanup.
Add 'inflight' parameter to determine to iterate in-flight
requests or just busy tags and add a new helper interface
blk_mq_queue_tag_inflight_iter to iterate all of the in-flight
tags and export this interface for drivers.
Signed-off-by: Jianchao Wang
---
block/blk-mq-tag.c | 96 +
blk_mq_tagset_busy_iter is not safe that it could get stale request
in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here.
Signed-off-by: Jianchao Wang
---
drivers/block/nbd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
in
blk_mq_tagset_busy_iter is not safe that it could get stale request
in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here.
Signed-off-by: Jianchao Wang
---
drivers/block/skd_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/skd_main.c b/drivers/bl
As nobody uses blk_mq_tagset_busy_iter, remove it.
Signed-off-by: Jianchao Wang
---
block/blk-mq-tag.c | 95 --
include/linux/blk-mq.h | 2 --
2 files changed, 97 deletions(-)
diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index
In commit 530ca2c (blk-mq: Allow blocking queue tag iter callbacks),
we try to get a non-zero q_usage_counter to avoid access hctxs that
being modified. So the synchronize_rcu is useless and should be
removed.
Reviewed-by: Ming Lei
Signed-off-by: Jianchao Wang
---
block/blk-mq-tag.c | 4
blk_mq_tagset_busy_iter is not safe that it could get stale request
in tags->rqs[]. Use blk_mq_queue_tag_inflight_iter here.
Signed-off-by: Jianchao Wang
---
block/blk-mq-debugfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-mq-debugfs.c b/block/blk
of (32776 + 8) is not expected.
Suggested-by: Jens Axboe
Signed-off-by: Jianchao Wang
---
V2:
- refactor the code based on Jens' suggestion
block/blk-mq.c | 12 ++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 8f5b533..9437a5e 100644
of (32776 + 8) is not expected.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 12
1 file changed, 12 insertions(+)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 8f5b533..2d93eb5 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -737,6 +737,18 @@ static void blk_mq_requeue_work
check and clear the RESTART flag.
Fixes: bd166ef1 (blk-mq-sched: add framework for MQ capable IO schedulers)
Reported-by: Florian Stecker
Tested-by: Florian Stecker
Signed-off-by: Jianchao Wang
---
block/blk-flush.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-flu
Swap REQ_NOWAIT and REQ_NOUNMAP and add REQ_HIPRI.
Signed-off-by: Jianchao Wang
---
block/blk-mq-debugfs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 90d6876..f812083 100644
--- a/block/blk-mq-debugfs.c
+++ b/block
hctx type, like,
ctx->hctxs[type]
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 2 +-
block/blk-mq-tag.c | 2 +-
block/blk-mq.c | 4 ++--
block/blk-mq.h | 7 ---
block/blk.h | 2 +-
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/block/blk-
Hi Jens
These two patches are small optimization for accessing the queue mapping
in hot path. It saves the queue mapping results into blk_mq_ctx directly,
then we needn't do the complicated bounce on queue_hw_ctx[] map[] and
mq_map[].
Jianchao Wang (2)
blk-mq: save queue mapping result into ctx
e poll is enabled or not, because
the caller would clear the REQ_HIPRI in that case.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 9 -
block/blk-mq.h | 13 +
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 445d0a2..8a825ae
e poll is enabled or not, because
the caller would clear the REQ_HIPRI in that case.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 9 -
block/blk-mq.h | 15 ++-
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 6898d24..1dab467
Hi Jens
These two patches are small optimization for accessing the queue mapping
in hot path. It saves the queue mapping results into blk_mq_ctx directly,
then we needn't do the complicated bounce on queue_hw_ctx[] map[] and
mq_map[].
Jianchao Wang(2)
blk-mq: save queue mapping result into ctx
hctx type, like,
ctx->hctxs[type]
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 2 +-
block/blk-mq-tag.c | 2 +-
block/blk-mq.c | 4 ++--
block/blk-mq.h | 5 +++--
block/blk.h | 2 +-
5 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/block/blk-
We only set the nr_maps to 3 if poll queues are supported.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/pci.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 5a0bf6a..cc65fa8 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme
blk_mq_try_issue_directly can handle it well.If request is
direct-issued unsuccessfully, insert the reset.
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 8 +++-
block/blk-mq.c | 20 +---
2 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/block/blk-mq-sched.c b/block
est with blk_mq_request_bypass_insert.
- Modify the code to adapt the new patch 1.
V2:
- Add 1st and 2nd patch to refactor the code.
Jianchao Wang (3)
blk-mq: refactor the code of issue request directly
blk-mq: issue directly with bypass 'false' in
blk-mq: replace and kill blk_mq_request_issue_direc
the merging. We just need to do that for
the requests that has been through .queue_rq. This patch also
could fix this.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 103 ++---
1 file changed, 54 insertions(+), 49 deletions(-)
diff --git a/block/blk
Replace blk_mq_request_issue_directly with blk_mq_try_issue_directly
in blk_insert_cloned_request and kill it as nobody uses it any more.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4 +++-
block/blk-mq.c | 9 +
block/blk-mq.h | 6 --
3 files changed, 8 insertions(+), 11
sed on the return value of .queue_rq
and bypass_insert (1/4)
- Add the 2nd patch. It introduce a new decision result which indicates to
insert request with blk_mq_request_bypass_insert.
- Modify the code to adapt the new patch 1.
V2:
- Add 1st and 2nd patch to refactor the code.
Jianchao W
blk_mq_try_issue_directly can handle it well.If request is
direct-issued unsuccessfully, insert the reset.
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 8 +++-
block/blk-mq.c | 20 +---
2 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/block/blk-mq-sched.c b/block
needn't any other
handling any more and then code could be cleaned up.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 103 ++---
1 file changed, 54 insertions(+), 49 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index b645275
Replace blk_mq_request_issue_directly with blk_mq_try_issue_directly
in blk_insert_cloned_request and kill it as nobody uses it any more.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4 +++-
block/blk-mq.c | 9 +
block/blk-mq.h | 6 --
3 files changed, 8 insertions(+), 11
blk_mq_try_issue_directly can handle it well.If request is
direct-issued unsuccessfully, insert the reset.
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 8 +++-
block/blk-mq.c | 20 +---
2 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/block/blk-mq-sched.c b/block
Replace blk_mq_request_issue_directly with blk_mq_try_issue_directly
in blk_insert_cloned_request and kill it as nobody uses it any more.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4 +++-
block/blk-mq.c | 9 +
block/blk-mq.h | 6 --
3 files changed, 8 insertions(+), 11
_rq
and bypass_insert (1/4)
- Add the 2nd patch. It introduce a new decision result which indicates to
insert request with blk_mq_request_bypass_insert.
- Modify the code to adapt the new patch 1.
V2:
- Add 1st and 2nd patch to refactor the code.
Jianchao Wang (3)
blk-mq: refactor the code of is
needn't any other
handling any more and then code could be cleaned up.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 104 ++---
1 file changed, 55 insertions(+), 49 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index b645275
Replace blk_mq_request_issue_directly with blk_mq_try_issue_directly
in blk_insert_cloned_request and kill it as nobody uses it any more.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4 +++-
block/blk-mq.c | 9 +
block/blk-mq.h | 6 --
3 files changed, 8 insertions(+), 11
-read-write request to hctx dispatch
list to avoid to involve merge and io scheduler when bypass_insert
is true.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 18 --
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 9005505
ert request with blk_mq_request_bypass_insert.
- Modify the code to adapt the new patch 1.
V2:
- Add 1st and 2nd patch to refactor the code.
Jianchao Wang (4)
blk-mq: insert to hctx dispatch list when
blk-mq: refactor the code of issue request directly
blk-mq: issue directly with bypass 'false' in
needn't any other
handling any more and then code could be cleaned up.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 120 -
1 file changed, 59 insertions(+), 61 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 01802bf
blk_mq_try_issue_directly can handle it well.If request is
direct-issued unsuccessfully, insert the reset.
Signed-off-by: Jianchao Wang
---
block/blk-mq-sched.c | 8 +++-
block/blk-mq.c | 29 ++---
2 files changed, 13 insertions(+), 24 deletions(-)
diff --git a/block/blk-mq-sched.c b
blk_mq_realloc_hw_ctxs could be invoked during update hw queues.
At the momemt, IO is blocked. Change the gfp flags from GFP_KERNEL
to GFP_NOIO to avoid forever hang during memory allocation in
blk_mq_realloc_hw_ctxs.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 2 +-
block/blk-flush.c
irq affinity to map hw and cpu, fallback
nr_hw_queues will cause lack of some cpu's map to hw, so use default
blk_mq_map_queues to do that.
Reported-by: syzbot+83e8cbe702263932d...@syzkaller.appspotmail.com
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 27 ---
1 file chan
blk_mq_realloc_hw_ctxs could be invoked during update hw queues.
At the momemt, IO is blocked. Change the gfp flags from GFP_KERNEL
to GFP_NOIO to avoid forever hang during memory allocation in
blk_mq_realloc_hw_ctxs.
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 2 +-
block/blk-flush.c
irq affinity to map hw and cpu, fallback
nr_hw_queues will cause lack of some cpu's map to hw, so use default
blk_mq_map_queues to do that.
Reported-by: syzbot+83e8cbe702263932d...@syzkaller.appspotmail.com
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 27 ---
1 file chan
leak mapping of
some cpus due the fallback nr_hw_queues.
- Add Ming's Reviewed-by in 1st patch.
Jianchao Wang[4]
blk-mq: adjust debugfs and sysfs register when
blk-mq: change gfp flags to GFP_NOIO in
blk-mq: realloc hctx when hw queue is mapped to
blk-mq: fallback to previous nr_hw_queues when
leak mapping of
some cpus due the fallback nr_hw_queues.
- Add Ming's Reviewed-by in 1st patch.
Jianchao Wang[4]
blk-mq: adjust debugfs and sysfs register when
blk-mq: change gfp flags to GFP_NOIO in
blk-mq: realloc hctx when hw queue is mapped to
blk-mq: fallback to previous nr_hw_queues when
recovery works.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang
---
drivers/scsi/qla2xxx/qla_os.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/qla2xxx
recovery works.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang
---
drivers/scsi/qla2xxx/qla_os.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/qla2xxx
emove do nothing
-> blk_cleanup_queue
-> blk_freeze_queue
Finally, the request_queue is quiesced state when wait freeze,
we will get io hang here. To fix it, move the nvme_kill_queues
from nvme_remove_dead_ctrl_work to nvme_remove_dead_ctrl.
Suggested-by: Keith Busch
S
emove do nothing
-> blk_cleanup_queue
-> blk_freeze_queue
Finally, the request_queue is quiesced state when wait freeze,
we will get io hang here. To fix it, move the nvme_kill_queues
from nvme_remove_dead_ctrl_work to nvme_remove_dead_ctrl.
Suggested-by: Keith Busch
S
state in nvme_reset_work, the only
reason is someone has changed state to DELETING. So it is not
necessary to invoke nvme_remove_dead_ctrl in that case.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/pci.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/d
state in nvme_reset_work, the only
reason is someone has changed state to DELETING. So it is not
necessary to invoke nvme_remove_dead_ctrl in that case.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/pci.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/d
to fix this.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/pci.c | 25 -
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 17a0190..70b79f2 100644
--- a/drivers/nvm
to fix this.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/pci.c | 25 -
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 17a0190..70b79f2 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host
.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/pci.c | 10 +-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 70b79f2..4ce1c89 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host
.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/pci.c | 10 +-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 70b79f2..4ce1c89 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1478,7 +1478,15
, ocfs2 heartbeat, etc, just before
scsi recovery work completes and get back the HBA.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/scsi/q
, ocfs2 heartbeat, etc, just before
scsi recovery work completes and get back the HBA.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang
---
drivers/scsi/qla2xxx/qla_os.c | 2 +-
1 file
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
Suggested-by: Sagi Grimberg <s...@grimberg.me>
Reviewed-by: Max Gurtovoy <m...@mellanox.com>
---
V3:
add Suggested-by Sagi
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang
Suggested-by: Sagi Grimberg
Reviewed-by: Max Gurtovoy
---
V3:
add Suggested-by Sagi
V2:
based on Sagi's suggestion, add out_stop_queue lable and inv
From: Jens Axboe
No functional changes in this patch, just a prep patch for utilizing
this in an IO scheduler.
Signed-off-by: Jens Axboe
---
block/blk-mq-sched.c | 34 --
include/linux/blk-mq.h | 3 ++-
2 files changed, 26
From: Jens Axboe
No functional changes in this patch, just a prep patch for utilizing
this in an IO scheduler.
Signed-off-by: Jens Axboe
---
block/blk-mq-sched.c | 34 --
include/linux/blk-mq.h | 3 ++-
2 files changed, 26 insertions(+), 11 deletions(-)
.
- allocate kcqs per khd
Jens Axboe (1)
0001-blk-mq-abstract-out-blk-mq-sched-rq-list-iteration-b.patch
Jianchao Wang (1)
0002-block-kyber-make-kyber-more-friendly-with-merging.patch
block/blk-mq-sched.c | 34 ++---
block/kyber-iosched.c | 197
each 1662MB/s and 425k
on my platform.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
Tested-by: Holger Hoffstätte <hol...@applied-asynchrony.com>
---
block/kyber-iosched.c | 197 +-
1 file changed, 162 insertions(+), 35 deletion
.
- allocate kcqs per khd
Jens Axboe (1)
0001-blk-mq-abstract-out-blk-mq-sched-rq-list-iteration-b.patch
Jianchao Wang (1)
0002-block-kyber-make-kyber-more-friendly-with-merging.patch
block/blk-mq-sched.c | 34 ++---
block/kyber-iosched.c | 197
each 1662MB/s and 425k
on my platform.
Signed-off-by: Jianchao Wang
Tested-by: Holger Hoffstätte
---
block/kyber-iosched.c | 197 +-
1 file changed, 162 insertions(+), 35 deletions(-)
diff --git a/block/kyber-iosched.c b/block/kyber-iosched.c
i
0/0 |
+--+
| w/ | 1083/616 | 277k/154k | 4.93/6.95 | 1830.62/3279.95 | 223k/3k |
+--+
When set numjobs to 16, the bw and iops could reach 1662MB/s and 425k
on my platform.
Signed-off-by: Jianchao Wang <jianchao.w.w...@ora
0/0 |
+--+
| w/ | 1083/616 | 277k/154k | 4.93/6.95 | 1830.62/3279.95 | 223k/3k |
+--+
When set numjobs to 16, the bw and iops could reach 1662MB/s and 425k
on my platform.
Signed-off-by: Jianchao Wang
---
block/kyber-iosch
There is no plug trace event for multiple hw queues. This is
confusing when check block trace event log and find unplug one
there. Add plug trace event when request is added to a empty plug
list.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
block/blk-mq.c | 3 +++
1 file c
There is no plug trace event for multiple hw queues. This is
confusing when check block trace event log and find unplug one
there. Add plug trace event when request is added to a empty plug
list.
Signed-off-by: Jianchao Wang
---
block/blk-mq.c | 3 +++
1 file changed, 3 insertions(+)
diff
.
applications have to take some workarounds such as sync_min/max to avoid
resync.
It is easy and convevient for md to zero the older sb position after
write sb to new position, so do it here.
Cc: robert.but...@oracle.com
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/md/md.
.
applications have to take some workarounds such as sync_min/max to avoid
resync.
It is easy and convevient for md to zero the older sb position after
write sb to new position, so do it here.
Cc: robert.but...@oracle.com
Signed-off-by: Jianchao Wang
---
drivers/md/md.c | 27
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
V2:
based on Sagi's suggestion, add out_stop_queue lable and invoke
nvme_rdma_stop_queue in all the failed ca
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang
---
V2:
based on Sagi's suggestion, add out_stop_queue lable and invoke
nvme_rdma_stop_queue in all the failed cases after nvme_rdma_start_queue
drivers/nvme/host/rdm
ctrl_work
-> nvme_rdma_shutdown_ctrl
->nvme_rdma_destroy_admin_queue
-> nvme_rdma_free_queue
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
V2:
handle it in nvme_rdma_free_queue and add some comment to explain it.
drivers/nvme/host/rdma.c | 15 ---
1 file changed, 12 in
ctrl_work
-> nvme_rdma_shutdown_ctrl
->nvme_rdma_destroy_admin_queue
-> nvme_rdma_free_queue
Signed-off-by: Jianchao Wang
---
V2:
handle it in nvme_rdma_free_queue and add some comment to explain it.
drivers/nvme/host/rdma.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
di
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/rdma.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/host/rdma.c
x24/0x30
To fix it, call nvme_rdma_stop_queue for all the failed cases after
nvme_rdma_start_queue.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/rdma.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
in
x30
To fix it, clear the NVME_RDMA_Q_LIVE before free the ctrl->queues[0].
The queue will be freed, so it certainly is not LIVE any more.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/rdma.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/drivers/nvme
x30
To fix it, clear the NVME_RDMA_Q_LIVE before free the ctrl->queues[0].
The queue will be freed, so it certainly is not LIVE any more.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/rdma.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/
/0x380
task_work_run+0xaf/0xe0
do_exit+0x501/0x1440
do_group_exit+0x89/0x140
__x64_sys_exit_group+0x28/0x30
do_syscall_64+0x72/0x230
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/core.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/driver
down_ctrl
->nvme_rdma_destroy_admin_queue
-> nvme_rdma_free_queue
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/rdma.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index a0ead1d..fd965d0 100644
--- a/drivers/n
/0x380
task_work_run+0xaf/0xe0
do_exit+0x501/0x1440
do_group_exit+0x89/0x140
__x64_sys_exit_group+0x28/0x30
do_syscall_64+0x72/0x230
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/core.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme
down_ctrl
->nvme_rdma_destroy_admin_queue
-> nvme_rdma_free_queue
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/rdma.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index a0ead1d..fd965d0 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/n
with last_psn 0
is still there. This causes large amount of io timeout when
nvmeof is over rxe.
Add RXE_START_MASK for IB_OPCODE_RC_SEND_ONLY_INV to fix this.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
1 file changed, 1 ins
with last_psn 0
is still there. This causes large amount of io timeout when
nvmeof is over rxe.
Add RXE_START_MASK for IB_OPCODE_RC_SEND_ONLY_INV to fix this.
Signed-off-by: Jianchao Wang
---
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
t_queue directly before nvme_ns_remove.
We have spliced the ctrl->namespaces, so nobody could access them
and quiesce the queue any more.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/core.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
d
t_queue directly before nvme_ns_remove.
We have spliced the ctrl->namespaces, so nobody could access them
and quiesce the queue any more.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/core.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/co
With lockdep enabled, when trigger nvme_remove, suspicious RCU
usage warning will be printed out.
Fix it with adding srcu_read_lock/unlock in it.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/nvme/host/nvme.h | 9 +++--
1 file changed, 7 insertions(+), 2 del
With lockdep enabled, when trigger nvme_remove, suspicious RCU
usage warning will be printed out.
Fix it with adding srcu_read_lock/unlock in it.
Signed-off-by: Jianchao Wang
---
drivers/nvme/host/nvme.h | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme
.
Cc: Bart Van Assche <bart.vanass...@wdc.com>
Cc: Tejun Heo <t...@kernel.org>
Cc: Ming Lei <ming@redhat.com>
Cc: Martin Steigerwald <mar...@lichtvoll.de>
Cc: sta...@vger.kernel.org
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
block/blk-core.c |
.
Cc: Bart Van Assche
Cc: Tejun Heo
Cc: Ming Lei
Cc: Martin Steigerwald
Cc: sta...@vger.kernel.org
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4
block/blk-mq.c | 7 +++
2 files changed, 11 insertions(+)
diff --git a/block/blk-core.c b/block/blk-core.c
index abcb868.
.
Cc: Bart Van Assche <bart.vanass...@wdc.com>
Cc: Tejun Heo <t...@kernel.org>
Cc: Ming Lei <ming@redhat.com>
Cc: Martin Steigerwald <mar...@lichtvoll.de>
Cc: sta...@vger.kernel.org
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
block/blk-core.c |
.
Cc: Bart Van Assche
Cc: Tejun Heo
Cc: Ming Lei
Cc: Martin Steigerwald
Cc: sta...@vger.kernel.org
Signed-off-by: Jianchao Wang
---
block/blk-core.c | 4
block/blk-mq.c | 7 +++
2 files changed, 11 insertions(+)
diff --git a/block/blk-core.c b/block/blk-core.c
index abcb868.
When get budget fails, blk_mq_sched_dispatch_requests does not do
anything to ensure the hctx to be restarted. We can survive from
this, because only the scsi implements .get_budget and it always
runs the hctx queues when request is completed.
Signed-off-by: Jianchao Wang <jianchao.
When get budget fails, blk_mq_sched_dispatch_requests does not do
anything to ensure the hctx to be restarted. We can survive from
this, because only the scsi implements .get_budget and it always
runs the hctx queues when request is completed.
Signed-off-by: Jianchao Wang
---
block/blk-mq
recovery works.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
drivers/scsi/qla2xxx/qla_os.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
recovery works.
Change the granularity to 1ms, even though more context switches
would be introduced, but it should be ok as it is not hot path.
Signed-off-by: Jianchao Wang
---
drivers/scsi/qla2xxx/qla_os.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/qla2xxx
not update last_low_overflow_time
at the moment. Otherwise, it will be hard to upgrade limit_index
when there is always bios to be submitted.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
block/blk-throttle.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff
not update last_low_overflow_time
at the moment. Otherwise, it will be hard to upgrade limit_index
when there is always bios to be submitted.
Signed-off-by: Jianchao Wang
---
block/blk-throttle.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/block/blk-throttle.c b/block
bps/iops are indeed lower
than low limit, return 0 as the last_low_overflow_time which
indicates it is stale. We will discard the stale last_low_overflow_time,
but if both types are stale, return 0, Otherwise, the cgroups which
don't have any traffic will prevent upgrade.
Signed-off-by: Jianchao
bps/iops are indeed lower
than low limit, return 0 as the last_low_overflow_time which
indicates it is stale. We will discard the stale last_low_overflow_time,
but if both types are stale, return 0, Otherwise, the cgroups which
don't have any traffic will prevent upgrade.
Signed-off-by: Jianchao
the first
one to adminq which will have affinity cpumask with all possible
cpus. On the other hand, if controller has only legacy or single
-message MSI, we will setup adminq and 1 ioq and let them share
the only one irq vector.
Signed-off-by: Jianchao Wang <jianchao.w.w...@oracle.com>
---
1 - 100 of 275 matches
Mail list logo