diff for duplicates of <539B6577.503@fb.com> diff --git a/a/1.txt b/N1/1.txt index e4e6d8a..83e51d7 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -68,11 +68,3 @@ queues later, I don't see that as a huge issue at all. -- Jens Axboe - --------------- next part -------------- -A non-text attachment was scrubbed... -Name: nvme-affinity-hint.patch -Type: text/x-patch -Size: 1537 bytes -Desc: not available -URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20140613/80bec08c/attachment.bin> diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..03fcc48 --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,3 @@ +Content-Type: text/x-patch; name="nvme-affinity-hint.patch" +Content-Transfer-Encoding: 7bit +Content-Disposition: attachment; filename="nvme-affinity-hint.patch" diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..8418e51 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,38 @@ +diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c +index ee48ac5..8dc5d36 100644 +--- a/drivers/block/nvme-core.c ++++ b/drivers/block/nvme-core.c +@@ -178,6 +178,9 @@ static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, + nvmeq->hctx = hctx; + else + WARN_ON(nvmeq->hctx->tags != hctx->tags); ++ ++ irq_set_affinity_hint(dev->entry[nvmeq->cq_vector].vector, ++ hctx->cpumask); + hctx->driver_data = nvmeq; + return 0; + } +@@ -581,6 +584,7 @@ static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx, struct request *req) + enum dma_data_direction dma_dir; + int psegs = req->nr_phys_segments; + int result = BLK_MQ_RQ_QUEUE_BUSY; ++ + /* + * Requeued IO has already been prepped + */ +@@ -1788,6 +1792,7 @@ static struct nvme_ns *nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid, + queue_flag_set_unlocked(QUEUE_FLAG_DEFAULT, ns->queue); + queue_flag_set_unlocked(QUEUE_FLAG_NOMERGES, ns->queue); + queue_flag_set_unlocked(QUEUE_FLAG_NONROT, ns->queue); ++ queue_flag_set_unlocked(QUEUE_FLAG_VIRT_HOLE, ns->queue); + queue_flag_clear_unlocked(QUEUE_FLAG_IO_STAT, ns->queue); + ns->dev = dev; + ns->queue->queuedata = ns; +@@ -1801,7 +1806,6 @@ static struct nvme_ns *nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid, + lbaf = id->flbas & 0xf; + ns->lba_shift = id->lbaf[lbaf].ds; + ns->ms = le16_to_cpu(id->lbaf[lbaf].ms); +- blk_queue_max_segments(ns->queue, 1); + blk_queue_logical_block_size(ns->queue, 1 << ns->lba_shift); + if (dev->max_hw_sectors) + blk_queue_max_hw_sectors(ns->queue, dev->max_hw_sectors); diff --git a/a/content_digest b/N1/content_digest index 5cf1fff..9f3143c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -21,10 +21,18 @@ "ref\0539B3F75.7040700@fb.com\0" "ref\0alpine.LRH.2.03.1406131307330.4699@AMR\0" "ref\0539B5124.3090302@fb.com\0" - "From\0axboe@fb.com (Jens Axboe)\0" - "Subject\0[PATCH v7] NVMe: conversion to blk-mq\0" + "From\0Jens Axboe <axboe@fb.com>\0" + "Subject\0Re: [PATCH v7] NVMe: conversion to blk-mq\0" "Date\0Fri, 13 Jun 2014 14:56:23 -0600\0" - "\00:1\0" + "To\0Keith Busch <keith.busch@intel.com>\0" + "Cc\0Matias Bj\303\270rling <m@bjorling.me>" + Matthew Wilcox <willy@linux.intel.com> + sbradshaw@micron.com <sbradshaw@micron.com> + tom.leiming@gmail.com <tom.leiming@gmail.com> + hch@infradead.org <hch@infradead.org> + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + " linux-nvme@lists.infradead.org <linux-nvme@lists.infradead.org>\0" + "\01:1\0" "b\0" "On 2014-06-13 13:29, Jens Axboe wrote:\n" "> On 06/13/2014 01:22 PM, Keith Busch wrote:\n" @@ -95,14 +103,47 @@ "queues later, I don't see that as a huge issue at all.\n" "\n" "-- \n" - "Jens Axboe\n" - "\n" - "-------------- next part --------------\n" - "A non-text attachment was scrubbed...\n" - "Name: nvme-affinity-hint.patch\n" - "Type: text/x-patch\n" - "Size: 1537 bytes\n" - "Desc: not available\n" - URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20140613/80bec08c/attachment.bin> + Jens Axboe + "\01:2\0" + "fn\0nvme-affinity-hint.patch\0" + "b\0" + "diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c\n" + "index ee48ac5..8dc5d36 100644\n" + "--- a/drivers/block/nvme-core.c\n" + "+++ b/drivers/block/nvme-core.c\n" + "@@ -178,6 +178,9 @@ static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,\n" + " \t\tnvmeq->hctx = hctx;\n" + " \telse\n" + " \t\tWARN_ON(nvmeq->hctx->tags != hctx->tags);\n" + "+\n" + "+\tirq_set_affinity_hint(dev->entry[nvmeq->cq_vector].vector,\n" + "+\t\t\t\thctx->cpumask);\n" + " \thctx->driver_data = nvmeq;\n" + " \treturn 0;\n" + " }\n" + "@@ -581,6 +584,7 @@ static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx, struct request *req)\n" + " \tenum dma_data_direction dma_dir;\n" + " \tint psegs = req->nr_phys_segments;\n" + " \tint result = BLK_MQ_RQ_QUEUE_BUSY;\n" + "+\n" + " \t/*\n" + " \t * Requeued IO has already been prepped\n" + " \t */\n" + "@@ -1788,6 +1792,7 @@ static struct nvme_ns *nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid,\n" + " \tqueue_flag_set_unlocked(QUEUE_FLAG_DEFAULT, ns->queue);\n" + " \tqueue_flag_set_unlocked(QUEUE_FLAG_NOMERGES, ns->queue);\n" + " \tqueue_flag_set_unlocked(QUEUE_FLAG_NONROT, ns->queue);\n" + "+\tqueue_flag_set_unlocked(QUEUE_FLAG_VIRT_HOLE, ns->queue);\n" + " \tqueue_flag_clear_unlocked(QUEUE_FLAG_IO_STAT, ns->queue);\n" + " \tns->dev = dev;\n" + " \tns->queue->queuedata = ns;\n" + "@@ -1801,7 +1806,6 @@ static struct nvme_ns *nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid,\n" + " \tlbaf = id->flbas & 0xf;\n" + " \tns->lba_shift = id->lbaf[lbaf].ds;\n" + " \tns->ms = le16_to_cpu(id->lbaf[lbaf].ms);\n" + "-\tblk_queue_max_segments(ns->queue, 1);\n" + " \tblk_queue_logical_block_size(ns->queue, 1 << ns->lba_shift);\n" + " \tif (dev->max_hw_sectors)\n" + " \t\tblk_queue_max_hw_sectors(ns->queue, dev->max_hw_sectors);" -918299a82c4c88cc0632ab201a914095e8385d47c902841c52efde60b5bdbafa +6d8e9e6ea0925a6feaf2db75c810d1280ea8943060e963af54737fe25ff4932c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.