On 06/02/2014 12:08 PM, Christoph Hellwig wrote:
+static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
+ struct request *req, enum dma_data_direction dma_dir,
+ int psegs)
{
sg_init_table(iod->sg, psegs);
+ iod->nents =
> +static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
> + struct request *req, enum dma_data_direction dma_dir,
> + int psegs)
> {
> sg_init_table(iod->sg, psegs);
> + iod->nents = blk_rq_map_sg(req->q, req, iod->sg);
>
> + if
+static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
+ struct request *req, enum dma_data_direction dma_dir,
+ int psegs)
{
sg_init_table(iod-sg, psegs);
+ iod-nents = blk_rq_map_sg(req-q, req, iod-sg);
+ if
On 06/02/2014 12:08 PM, Christoph Hellwig wrote:
+static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
+ struct request *req, enum dma_data_direction dma_dir,
+ int psegs)
{
sg_init_table(iod-sg, psegs);
+ iod-nents =
On 05/30/2014 09:00 AM, Matthew Wilcox wrote:
> On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
>> -static int nvme_map_bio(struct nvme_queue *nvmeq, struct nvme_iod *iod,
>> -struct bio *bio, enum dma_data_direction dma_dir, int psegs)
>> +static int
On 05/30/2014 06:48 PM, Keith Busch wrote:
> On Thu, 29 May 2014, Matias Bjørling wrote:
>> This converts the current NVMe driver to utilize the blk-mq layer.
>
> I'm pretty darn sure this new nvme_remove can cause a process
> with an open reference to use queues after they're freed in the
>
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
> +static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
> + unsigned int i)
> {
> + struct nvme_dev *dev = data;
> + struct nvme_queue *nvmeq = dev->queues[(i % dev->queue_count) + 1];
> +
On Thu, 29 May 2014, Matias Bjørling wrote:
This converts the current NVMe driver to utilize the blk-mq layer.
I'm pretty darn sure this new nvme_remove can cause a process
with an open reference to use queues after they're freed in the
nvme_submit_sync_command path, maybe even the admin tags
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
> -static int nvme_map_bio(struct nvme_queue *nvmeq, struct nvme_iod *iod,
> - struct bio *bio, enum dma_data_direction dma_dir, int psegs)
> +static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
> +
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
> @@ -816,9 +671,7 @@ static irqreturn_t nvme_irq(int irq, void *data)
> irqreturn_t result;
> struct nvme_queue *nvmeq = data;
> spin_lock(>q_lock);
> - nvme_process_cq(nvmeq);
> - result = nvmeq->cqe_seen
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
@@ -816,9 +671,7 @@ static irqreturn_t nvme_irq(int irq, void *data)
irqreturn_t result;
struct nvme_queue *nvmeq = data;
spin_lock(nvmeq-q_lock);
- nvme_process_cq(nvmeq);
- result = nvmeq-cqe_seen ?
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
-static int nvme_map_bio(struct nvme_queue *nvmeq, struct nvme_iod *iod,
- struct bio *bio, enum dma_data_direction dma_dir, int psegs)
+static int nvme_map_rq(struct nvme_queue *nvmeq, struct nvme_iod *iod,
+
On Thu, 29 May 2014, Matias Bjørling wrote:
This converts the current NVMe driver to utilize the blk-mq layer.
I'm pretty darn sure this new nvme_remove can cause a process
with an open reference to use queues after they're freed in the
nvme_submit_sync_command path, maybe even the admin tags
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
+static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
+ unsigned int i)
{
+ struct nvme_dev *dev = data;
+ struct nvme_queue *nvmeq = dev-queues[(i % dev-queue_count) + 1];
+
On 05/30/2014 06:48 PM, Keith Busch wrote:
On Thu, 29 May 2014, Matias Bjørling wrote:
This converts the current NVMe driver to utilize the blk-mq layer.
I'm pretty darn sure this new nvme_remove can cause a process
with an open reference to use queues after they're freed in the
On 05/30/2014 09:00 AM, Matthew Wilcox wrote:
On Thu, May 29, 2014 at 11:51:25PM +0200, Matias Bjørling wrote:
-static int nvme_map_bio(struct nvme_queue *nvmeq, struct nvme_iod *iod,
-struct bio *bio, enum dma_data_direction dma_dir, int psegs)
+static int nvme_map_rq(struct
This converts the current NVMe driver to utilize the blk-mq layer.
Contributions in this patch from:
Sam Bradshaw
Jens Axboe
Signed-off-by: Matias Bjørling
---
drivers/block/nvme-core.c | 1100 ++---
include/linux/nvme.h | 11 +-
2 files
This converts the current NVMe driver to utilize the blk-mq layer.
Contributions in this patch from:
Sam Bradshaw sbrads...@micron.com
Jens Axboe ax...@kernel.dk
Signed-off-by: Matias Bjørling m...@bjorling.me
---
drivers/block/nvme-core.c | 1100
18 matches
Mail list logo