search for: nvmecmd

Displaying 11 results from an estimated 11 matches for "nvmecmd".

Did you mean: nvmecfg
2015 Nov 19
2
[PATCH -qemu] nvme: support Google vendor extension
On 18/11/2015 06:47, Ming Lin wrote: > @@ -726,7 +798,11 @@ static void nvme_process_db(NvmeCtrl *n, hwaddr addr, int val) > } > > start_sqs = nvme_cq_full(cq) ? 1 : 0; > - cq->head = new_head; > + /* When the mapped pointer memory area is setup, we don't rely on > + * the MMIO written values to update the head pointer. */ >
2015 Nov 19
2
[PATCH -qemu] nvme: support Google vendor extension
On 18/11/2015 06:47, Ming Lin wrote: > @@ -726,7 +798,11 @@ static void nvme_process_db(NvmeCtrl *n, hwaddr addr, int val) > } > > start_sqs = nvme_cq_full(cq) ? 1 : 0; > - cq->head = new_head; > + /* When the mapped pointer memory area is setup, we don't rely on > + * the MMIO written values to update the head pointer. */ >
2015 Nov 20
0
[PATCH -qemu] nvme: support Google vendor extension
...r and cq->timer. Here is a quick try. Too late now, I'll test it morning. Do you see obvious problem? diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 3e1c38d..d28690d 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -543,6 +543,44 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest *req) return NVME_SUCCESS; } +static void nvme_cq_notifier(EventNotifier *e) +{ + NvmeCQueue *cq = + container_of(e, NvmeCQueue, notifier); + + nvme_post_cqes(cq); +} + +static void nvme_init_cq_eventfd(NvmeCQueue *cq) +{ + NvmeCtrl *n = cq->ctrl; + u...
2015 Nov 18
0
[PATCH -qemu] nvme: support Google vendor extension
...cq->sq_list); + cq->db_addr = 0; + cq->eventidx_addr = 0; msix_vector_use(&n->parent_obj, cq->vector); n->cq[cqid] = cq; cq->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, nvme_post_cqes, cq); @@ -528,6 +543,40 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest *req) return NVME_SUCCESS; } +static uint16_t nvme_set_db_memory(NvmeCtrl *n, const NvmeCmd *cmd) +{ + uint64_t db_addr = le64_to_cpu(cmd->prp1); + uint64_t eventidx_addr = le64_to_cpu(cmd->prp2); + int i; + + /* Addresses should not be NULL and should be...
2015 Nov 20
2
[PATCH -qemu] nvme: support Google vendor extension
...; Too late now, I'll test it morning. > > Do you see obvious problem? > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 3e1c38d..d28690d 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -543,6 +543,44 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest *req) > return NVME_SUCCESS; > } > > +static void nvme_cq_notifier(EventNotifier *e) > +{ > + NvmeCQueue *cq = > + container_of(e, NvmeCQueue, notifier); > + > + nvme_post_cqes(cq); > +} > + > +static void nvme_init_cq_event...
2015 Nov 20
2
[PATCH -qemu] nvme: support Google vendor extension
...; Too late now, I'll test it morning. > > Do you see obvious problem? > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 3e1c38d..d28690d 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -543,6 +543,44 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest *req) > return NVME_SUCCESS; > } > > +static void nvme_cq_notifier(EventNotifier *e) > +{ > + NvmeCQueue *cq = > + container_of(e, NvmeCQueue, notifier); > + > + nvme_post_cqes(cq); > +} > + > +static void nvme_init_cq_event...
2015 Nov 18
3
[RFC PATCH 0/2] Google extension to improve qemu-nvme performance
Hi Rob & Mihai, I wrote vhost-nvme patches on top of Christoph's NVMe target. vhost-nvme still uses mmio. So the guest OS can run unmodified NVMe driver. But the tests I have done didn't show competitive performance compared to virtio-blk/virtio-scsi. The bottleneck is in mmio. Your nvme vendor extension patches reduces greatly the number of MMIO writes. So I'd like to push it
2015 Nov 18
3
[RFC PATCH 0/2] Google extension to improve qemu-nvme performance
Hi Rob & Mihai, I wrote vhost-nvme patches on top of Christoph's NVMe target. vhost-nvme still uses mmio. So the guest OS can run unmodified NVMe driver. But the tests I have done didn't show competitive performance compared to virtio-blk/virtio-scsi. The bottleneck is in mmio. Your nvme vendor extension patches reduces greatly the number of MMIO writes. So I'd like to push it
2015 Nov 20
0
[PATCH -qemu] nvme: support Google vendor extension
.... > > > > Do you see obvious problem? > > > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > > index 3e1c38d..d28690d 100644 > > --- a/hw/block/nvme.c > > +++ b/hw/block/nvme.c > > @@ -543,6 +543,44 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest *req) > > return NVME_SUCCESS; > > } > > > > +static void nvme_cq_notifier(EventNotifier *e) > > +{ > > + NvmeCQueue *cq = > > + container_of(e, NvmeCQueue, notifier); > > + > > + nvme_post_cqes(cq); > &...
2015 Sep 10
6
[RFC PATCH 0/2] virtio nvme
Hi all, These 2 patches added virtio-nvme to kernel and qemu, basically modified from virtio-blk and nvme code. As title said, request for your comments. Play it in Qemu with: -drive file=disk.img,format=raw,if=none,id=D22 \ -device virtio-nvme-pci,drive=D22,serial=1234,num_queues=4 The goal is to have a full NVMe stack from VM guest(virtio-nvme) to host(vhost_nvme) to LIO NVMe-over-fabrics
2015 Sep 10
6
[RFC PATCH 0/2] virtio nvme
Hi all, These 2 patches added virtio-nvme to kernel and qemu, basically modified from virtio-blk and nvme code. As title said, request for your comments. Play it in Qemu with: -drive file=disk.img,format=raw,if=none,id=D22 \ -device virtio-nvme-pci,drive=D22,serial=1234,num_queues=4 The goal is to have a full NVMe stack from VM guest(virtio-nvme) to host(vhost_nvme) to LIO NVMe-over-fabrics