All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagi Grimberg <sagi@grimberg.me>
To: Keith Busch <keith.busch@intel.com>, Oliver <oohall@gmail.com>
Cc: "Jens Axboe" <axboe@kernel.dk>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	linux-rdma@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	linux-block@vger.kernel.org,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Jason Gunthorpe" <jgg@mellanox.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Max Gurtovoy" <maxg@mellanox.com>,
	"Christoph Hellwig" <hch@lst.de>
Subject: Re: [PATCH v2 07/10] nvme-pci: Use PCI p2pmem subsystem to manage the CMB
Date: Mon, 5 Mar 2018 21:57:27 +0200	[thread overview]
Message-ID: <36c78987-006a-a97f-1d18-b0a08cbea9d4@grimberg.me> (raw)
In-Reply-To: <20180305160004.GA30975@localhost.localdomain>


>>> -       if (nvmeq->sq_cmds_io)
>>> -               memcpy_toio(&nvmeq->sq_cmds_io[tail], cmd, sizeof(*cmd));
>>> -       else
>>> -               memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>> +       memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>
>> Hmm, how safe is replacing memcpy_toio() with regular memcpy()? On PPC
>> the _toio() variant enforces alignment, does the copy with 4 byte
>> stores, and has a full barrier after the copy. In comparison our
>> regular memcpy() does none of those things and may use unaligned and
>> vector load/stores. For normal (cacheable) memory that is perfectly
>> fine, but they can cause alignment faults when targeted at MMIO
>> (cache-inhibited) memory.
>>
>> I think in this particular case it might be ok since we know SEQs are
>> aligned to 64 byte boundaries and the copy is too small to use our
>> vectorised memcpy(). I'll assume we don't need explicit ordering
>> between writes of SEQs since the existing code doesn't seem to care
>> unless the doorbell is being rung, so you're probably fine there too.
>> That said, I still think this is a little bit sketchy and at the very
>> least you should add a comment explaining what's going on when the CMB
>> is being used. If someone more familiar with the NVMe driver could
>> chime in I would appreciate it.
> 
> I may not be understanding the concern, but I'll give it a shot.
> 
> You're right, the start of any SQE is always 64-byte aligned, so that
> should satisfy alignment requirements.
> 
> The order when writing multiple/successive SQEs in a submission queue
> does matter, and this is currently serialized through the q_lock.
> 
> The order in which the bytes of a single SQE is written doesn't really
> matter as long as the entire SQE is written into the CMB prior to writing
> that SQ's doorbell register.
> 
> The doorbell register is written immediately after copying a command
> entry into the submission queue (ignore "shadow buffer" features),
> so the doorbells written to commands submitted is 1:1.
> 
> If a CMB SQE and DB order is not enforced with the memcpy, then we do
> need a barrier after the SQE's memcpy and before the doorbell's writel.

Keith, while we're on this, regardless of cmb, is SQE memcopy and DB 
update ordering always guaranteed?

If you look at mlx4 (rdma device driver) that works exactly the same as
nvme you will find:
--
                 qp->sq.head += nreq;

                 /*
                  * Make sure that descriptors are written before
                  * doorbell record.
                  */
                 wmb();

                 writel(qp->doorbell_qpn,
                        to_mdev(ibqp->device)->uar_map + 
MLX4_SEND_DOORBELL);

                 /*
                  * Make sure doorbells don't leak out of SQ spinlock
                  * and reach the HCA out of order.
                  */
                 mmiowb();
--

That seems to explicitly make sure to place a barrier before updating
the doorbell. So as I see it, either ordering is guaranteed and the
above code is redundant, or nvme needs to do the same.

Thoughts?
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

WARNING: multiple messages have this Message-ID (diff)
From: Sagi Grimberg <sagi@grimberg.me>
To: Keith Busch <keith.busch@intel.com>, Oliver <oohall@gmail.com>
Cc: "Jens Axboe" <axboe@kernel.dk>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	linux-rdma@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	linux-block@vger.kernel.org,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Jason Gunthorpe" <jgg@mellanox.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Max Gurtovoy" <maxg@mellanox.com>,
	"Christoph Hellwig" <hch@lst.de>
Subject: Re: [PATCH v2 07/10] nvme-pci: Use PCI p2pmem subsystem to manage the CMB
Date: Mon, 5 Mar 2018 21:57:27 +0200	[thread overview]
Message-ID: <36c78987-006a-a97f-1d18-b0a08cbea9d4@grimberg.me> (raw)
In-Reply-To: <20180305160004.GA30975@localhost.localdomain>


>>> -       if (nvmeq->sq_cmds_io)
>>> -               memcpy_toio(&nvmeq->sq_cmds_io[tail], cmd, sizeof(*cmd));
>>> -       else
>>> -               memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>> +       memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>
>> Hmm, how safe is replacing memcpy_toio() with regular memcpy()? On PPC
>> the _toio() variant enforces alignment, does the copy with 4 byte
>> stores, and has a full barrier after the copy. In comparison our
>> regular memcpy() does none of those things and may use unaligned and
>> vector load/stores. For normal (cacheable) memory that is perfectly
>> fine, but they can cause alignment faults when targeted at MMIO
>> (cache-inhibited) memory.
>>
>> I think in this particular case it might be ok since we know SEQs are
>> aligned to 64 byte boundaries and the copy is too small to use our
>> vectorised memcpy(). I'll assume we don't need explicit ordering
>> between writes of SEQs since the existing code doesn't seem to care
>> unless the doorbell is being rung, so you're probably fine there too.
>> That said, I still think this is a little bit sketchy and at the very
>> least you should add a comment explaining what's going on when the CMB
>> is being used. If someone more familiar with the NVMe driver could
>> chime in I would appreciate it.
> 
> I may not be understanding the concern, but I'll give it a shot.
> 
> You're right, the start of any SQE is always 64-byte aligned, so that
> should satisfy alignment requirements.
> 
> The order when writing multiple/successive SQEs in a submission queue
> does matter, and this is currently serialized through the q_lock.
> 
> The order in which the bytes of a single SQE is written doesn't really
> matter as long as the entire SQE is written into the CMB prior to writing
> that SQ's doorbell register.
> 
> The doorbell register is written immediately after copying a command
> entry into the submission queue (ignore "shadow buffer" features),
> so the doorbells written to commands submitted is 1:1.
> 
> If a CMB SQE and DB order is not enforced with the memcpy, then we do
> need a barrier after the SQE's memcpy and before the doorbell's writel.

Keith, while we're on this, regardless of cmb, is SQE memcopy and DB 
update ordering always guaranteed?

If you look at mlx4 (rdma device driver) that works exactly the same as
nvme you will find:
--
                 qp->sq.head += nreq;

                 /*
                  * Make sure that descriptors are written before
                  * doorbell record.
                  */
                 wmb();

                 writel(qp->doorbell_qpn,
                        to_mdev(ibqp->device)->uar_map + 
MLX4_SEND_DOORBELL);

                 /*
                  * Make sure doorbells don't leak out of SQ spinlock
                  * and reach the HCA out of order.
                  */
                 mmiowb();
--

That seems to explicitly make sure to place a barrier before updating
the doorbell. So as I see it, either ordering is guaranteed and the
above code is redundant, or nvme needs to do the same.

Thoughts?

WARNING: multiple messages have this Message-ID (diff)
From: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
To: Keith Busch <keith.busch-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Oliver <oohall-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "Jens Axboe" <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>,
	"linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org"
	<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Alex Williamson"
	<alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Jason Gunthorpe" <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	"Jérôme Glisse" <jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Benjamin Herrenschmidt"
	<benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>,
	"Bjorn Helgaas"
	<bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	"Max Gurtovoy" <maxg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	"Christoph Hellwig" <hch-jcswGhMUV9g@public.gmane.org>
Subject: Re: [PATCH v2 07/10] nvme-pci: Use PCI p2pmem subsystem to manage the CMB
Date: Mon, 5 Mar 2018 21:57:27 +0200	[thread overview]
Message-ID: <36c78987-006a-a97f-1d18-b0a08cbea9d4@grimberg.me> (raw)
In-Reply-To: <20180305160004.GA30975-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>


>>> -       if (nvmeq->sq_cmds_io)
>>> -               memcpy_toio(&nvmeq->sq_cmds_io[tail], cmd, sizeof(*cmd));
>>> -       else
>>> -               memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>> +       memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>
>> Hmm, how safe is replacing memcpy_toio() with regular memcpy()? On PPC
>> the _toio() variant enforces alignment, does the copy with 4 byte
>> stores, and has a full barrier after the copy. In comparison our
>> regular memcpy() does none of those things and may use unaligned and
>> vector load/stores. For normal (cacheable) memory that is perfectly
>> fine, but they can cause alignment faults when targeted at MMIO
>> (cache-inhibited) memory.
>>
>> I think in this particular case it might be ok since we know SEQs are
>> aligned to 64 byte boundaries and the copy is too small to use our
>> vectorised memcpy(). I'll assume we don't need explicit ordering
>> between writes of SEQs since the existing code doesn't seem to care
>> unless the doorbell is being rung, so you're probably fine there too.
>> That said, I still think this is a little bit sketchy and at the very
>> least you should add a comment explaining what's going on when the CMB
>> is being used. If someone more familiar with the NVMe driver could
>> chime in I would appreciate it.
> 
> I may not be understanding the concern, but I'll give it a shot.
> 
> You're right, the start of any SQE is always 64-byte aligned, so that
> should satisfy alignment requirements.
> 
> The order when writing multiple/successive SQEs in a submission queue
> does matter, and this is currently serialized through the q_lock.
> 
> The order in which the bytes of a single SQE is written doesn't really
> matter as long as the entire SQE is written into the CMB prior to writing
> that SQ's doorbell register.
> 
> The doorbell register is written immediately after copying a command
> entry into the submission queue (ignore "shadow buffer" features),
> so the doorbells written to commands submitted is 1:1.
> 
> If a CMB SQE and DB order is not enforced with the memcpy, then we do
> need a barrier after the SQE's memcpy and before the doorbell's writel.

Keith, while we're on this, regardless of cmb, is SQE memcopy and DB 
update ordering always guaranteed?

If you look at mlx4 (rdma device driver) that works exactly the same as
nvme you will find:
--
                 qp->sq.head += nreq;

                 /*
                  * Make sure that descriptors are written before
                  * doorbell record.
                  */
                 wmb();

                 writel(qp->doorbell_qpn,
                        to_mdev(ibqp->device)->uar_map + 
MLX4_SEND_DOORBELL);

                 /*
                  * Make sure doorbells don't leak out of SQ spinlock
                  * and reach the HCA out of order.
                  */
                 mmiowb();
--

That seems to explicitly make sure to place a barrier before updating
the doorbell. So as I see it, either ordering is guaranteed and the
above code is redundant, or nvme needs to do the same.

Thoughts?

WARNING: multiple messages have this Message-ID (diff)
From: sagi@grimberg.me (Sagi Grimberg)
Subject: [PATCH v2 07/10] nvme-pci: Use PCI p2pmem subsystem to manage the CMB
Date: Mon, 5 Mar 2018 21:57:27 +0200	[thread overview]
Message-ID: <36c78987-006a-a97f-1d18-b0a08cbea9d4@grimberg.me> (raw)
In-Reply-To: <20180305160004.GA30975@localhost.localdomain>


>>> -       if (nvmeq->sq_cmds_io)
>>> -               memcpy_toio(&nvmeq->sq_cmds_io[tail], cmd, sizeof(*cmd));
>>> -       else
>>> -               memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>> +       memcpy(&nvmeq->sq_cmds[tail], cmd, sizeof(*cmd));
>>
>> Hmm, how safe is replacing memcpy_toio() with regular memcpy()? On PPC
>> the _toio() variant enforces alignment, does the copy with 4 byte
>> stores, and has a full barrier after the copy. In comparison our
>> regular memcpy() does none of those things and may use unaligned and
>> vector load/stores. For normal (cacheable) memory that is perfectly
>> fine, but they can cause alignment faults when targeted at MMIO
>> (cache-inhibited) memory.
>>
>> I think in this particular case it might be ok since we know SEQs are
>> aligned to 64 byte boundaries and the copy is too small to use our
>> vectorised memcpy(). I'll assume we don't need explicit ordering
>> between writes of SEQs since the existing code doesn't seem to care
>> unless the doorbell is being rung, so you're probably fine there too.
>> That said, I still think this is a little bit sketchy and at the very
>> least you should add a comment explaining what's going on when the CMB
>> is being used. If someone more familiar with the NVMe driver could
>> chime in I would appreciate it.
> 
> I may not be understanding the concern, but I'll give it a shot.
> 
> You're right, the start of any SQE is always 64-byte aligned, so that
> should satisfy alignment requirements.
> 
> The order when writing multiple/successive SQEs in a submission queue
> does matter, and this is currently serialized through the q_lock.
> 
> The order in which the bytes of a single SQE is written doesn't really
> matter as long as the entire SQE is written into the CMB prior to writing
> that SQ's doorbell register.
> 
> The doorbell register is written immediately after copying a command
> entry into the submission queue (ignore "shadow buffer" features),
> so the doorbells written to commands submitted is 1:1.
> 
> If a CMB SQE and DB order is not enforced with the memcpy, then we do
> need a barrier after the SQE's memcpy and before the doorbell's writel.

Keith, while we're on this, regardless of cmb, is SQE memcopy and DB 
update ordering always guaranteed?

If you look at mlx4 (rdma device driver) that works exactly the same as
nvme you will find:
--
                 qp->sq.head += nreq;

                 /*
                  * Make sure that descriptors are written before
                  * doorbell record.
                  */
                 wmb();

                 writel(qp->doorbell_qpn,
                        to_mdev(ibqp->device)->uar_map + 
MLX4_SEND_DOORBELL);

                 /*
                  * Make sure doorbells don't leak out of SQ spinlock
                  * and reach the HCA out of order.
                  */
                 mmiowb();
--

That seems to explicitly make sure to place a barrier before updating
the doorbell. So as I see it, either ordering is guaranteed and the
above code is redundant, or nvme needs to do the same.

Thoughts?

  parent reply	other threads:[~2018-03-05 19:51 UTC|newest]

Thread overview: 504+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28 23:39 [PATCH v2 00/10] Copy Offload in NVMe Fabrics with P2P PCI Memory Logan Gunthorpe
2018-02-28 23:39 ` Logan Gunthorpe
2018-02-28 23:39 ` Logan Gunthorpe
2018-02-28 23:39 ` Logan Gunthorpe
     [not found] ` <20180228234006.21093-1-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2018-02-28 23:39   ` [PATCH v2 01/10] PCI/P2PDMA: Support peer to peer memory Logan Gunthorpe
2018-02-28 23:39     ` Logan Gunthorpe
2018-02-28 23:39     ` Logan Gunthorpe
2018-03-01 17:37     ` Bjorn Helgaas
2018-03-01 17:37       ` Bjorn Helgaas
2018-03-01 17:37       ` Bjorn Helgaas
2018-03-01 17:37       ` Bjorn Helgaas
2018-03-01 18:55       ` Logan Gunthorpe
2018-03-01 18:55         ` Logan Gunthorpe
2018-03-01 18:55         ` Logan Gunthorpe
2018-03-01 18:55         ` Logan Gunthorpe
2018-03-01 23:00         ` Bjorn Helgaas
2018-03-01 23:00           ` Bjorn Helgaas
2018-03-01 23:00           ` Bjorn Helgaas
2018-03-01 23:00           ` Bjorn Helgaas
2018-03-01 23:06           ` Logan Gunthorpe
2018-03-01 23:06             ` Logan Gunthorpe
2018-03-01 23:06             ` Logan Gunthorpe
2018-03-01 23:06             ` Logan Gunthorpe
2018-03-01 23:14             ` Stephen  Bates
2018-03-01 23:14               ` Stephen  Bates
2018-03-01 23:14               ` Stephen  Bates
2018-03-01 23:14               ` Stephen  Bates
2018-03-01 23:14               ` Stephen  Bates
2018-03-01 23:45               ` Bjorn Helgaas
2018-03-01 23:45                 ` Bjorn Helgaas
2018-03-01 23:45                 ` Bjorn Helgaas
2018-03-01 23:45                 ` Bjorn Helgaas
2018-02-28 23:39   ` [PATCH v2 03/10] PCI/P2PDMA: Add PCI p2pmem dma mappings to adjust the bus offset Logan Gunthorpe
2018-02-28 23:39     ` Logan Gunthorpe
2018-02-28 23:39     ` Logan Gunthorpe
2018-03-01 17:49     ` Bjorn Helgaas
2018-03-01 17:49       ` Bjorn Helgaas
2018-03-01 17:49       ` Bjorn Helgaas
2018-03-01 17:49       ` Bjorn Helgaas
2018-03-01 19:36       ` Logan Gunthorpe
2018-03-01 19:36         ` Logan Gunthorpe
2018-03-01 19:36         ` Logan Gunthorpe
2018-03-01 19:36         ` Logan Gunthorpe
2018-02-28 23:39 ` [PATCH v2 02/10] PCI/P2PDMA: Add sysfs group to display p2pmem stats Logan Gunthorpe
2018-02-28 23:39   ` Logan Gunthorpe
2018-02-28 23:39   ` Logan Gunthorpe
2018-02-28 23:39   ` Logan Gunthorpe
2018-03-01 17:44   ` Bjorn Helgaas
2018-03-01 17:44     ` Bjorn Helgaas
2018-03-01 17:44     ` Bjorn Helgaas
2018-03-01 17:44     ` Bjorn Helgaas
2018-03-02  0:15     ` Logan Gunthorpe
2018-03-02  0:15       ` Logan Gunthorpe
2018-03-02  0:15       ` Logan Gunthorpe
2018-03-02  0:15       ` Logan Gunthorpe
2018-03-02  0:36       ` Dan Williams
2018-03-02  0:36         ` Dan Williams
2018-03-02  0:36         ` Dan Williams
2018-03-02  0:36         ` Dan Williams
2018-03-02  0:37         ` Logan Gunthorpe
2018-03-02  0:37           ` Logan Gunthorpe
2018-03-02  0:37           ` Logan Gunthorpe
2018-03-02  0:37           ` Logan Gunthorpe
2018-02-28 23:40 ` [PATCH v2 04/10] PCI/P2PDMA: Clear ACS P2P flags for all devices behind switches Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 18:02   ` Bjorn Helgaas
2018-03-01 18:02     ` Bjorn Helgaas
2018-03-01 18:02     ` Bjorn Helgaas
2018-03-01 18:02     ` Bjorn Helgaas
2018-03-01 18:54     ` Stephen  Bates
2018-03-01 18:54       ` Stephen  Bates
2018-03-01 18:54       ` Stephen  Bates
2018-03-01 18:54       ` Stephen  Bates
2018-03-01 18:54       ` Stephen  Bates
2018-03-01 21:21       ` Alex Williamson
2018-03-01 21:21         ` Alex Williamson
2018-03-01 21:21         ` Alex Williamson
2018-03-01 21:21         ` Alex Williamson
2018-03-01 21:26         ` Logan Gunthorpe
2018-03-01 21:26           ` Logan Gunthorpe
2018-03-01 21:26           ` Logan Gunthorpe
2018-03-01 21:26           ` Logan Gunthorpe
2018-03-01 21:32         ` Stephen  Bates
2018-03-01 21:32           ` Stephen  Bates
2018-03-01 21:32           ` Stephen  Bates
2018-03-01 21:32           ` Stephen  Bates
2018-03-01 21:32           ` Stephen  Bates
2018-03-01 21:35           ` Jerome Glisse
2018-03-01 21:35             ` Jerome Glisse
2018-03-01 21:35             ` Jerome Glisse
2018-03-01 21:35             ` Jerome Glisse
2018-03-01 21:35             ` Jerome Glisse
2018-03-01 21:37             ` Logan Gunthorpe
2018-03-01 21:37               ` Logan Gunthorpe
2018-03-01 21:37               ` Logan Gunthorpe
2018-03-01 21:37               ` Logan Gunthorpe
2018-03-01 23:15       ` Bjorn Helgaas
2018-03-01 23:15         ` Bjorn Helgaas
2018-03-01 23:15         ` Bjorn Helgaas
2018-03-01 23:15         ` Bjorn Helgaas
2018-03-01 23:59         ` Logan Gunthorpe
2018-03-01 23:59           ` Logan Gunthorpe
2018-03-01 23:59           ` Logan Gunthorpe
2018-03-01 23:59           ` Logan Gunthorpe
2018-03-01 19:13     ` Logan Gunthorpe
2018-03-01 19:13       ` Logan Gunthorpe
2018-03-01 19:13       ` Logan Gunthorpe
2018-03-01 19:13       ` Logan Gunthorpe
2018-03-05 22:28       ` Bjorn Helgaas
2018-03-05 22:28         ` Bjorn Helgaas
2018-03-05 22:28         ` Bjorn Helgaas
2018-03-05 22:28         ` Bjorn Helgaas
2018-03-05 23:01         ` Logan Gunthorpe
2018-03-05 23:01           ` Logan Gunthorpe
2018-03-05 23:01           ` Logan Gunthorpe
2018-03-05 23:01           ` Logan Gunthorpe
2018-02-28 23:40 ` [PATCH v2 05/10] block: Introduce PCI P2P flags for request and request queue Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 11:08   ` Sagi Grimberg
2018-03-01 11:08     ` Sagi Grimberg
2018-03-01 11:08     ` Sagi Grimberg
2018-03-01 11:08     ` Sagi Grimberg
2018-02-28 23:40 ` [PATCH v2 06/10] IB/core: Add optional PCI P2P flag to rdma_rw_ctx_[init|destroy]() Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 10:32   ` Sagi Grimberg
2018-03-01 10:32     ` Sagi Grimberg
2018-03-01 10:32     ` Sagi Grimberg
2018-03-01 10:32     ` Sagi Grimberg
2018-03-01 17:16     ` Logan Gunthorpe
2018-03-01 17:16       ` Logan Gunthorpe
2018-03-01 17:16       ` Logan Gunthorpe
2018-03-01 17:16       ` Logan Gunthorpe
2018-02-28 23:40 ` [PATCH v2 07/10] nvme-pci: Use PCI p2pmem subsystem to manage the CMB Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-05  1:33   ` Oliver
2018-03-05  1:33     ` Oliver
2018-03-05  1:33     ` Oliver
2018-03-05  1:33     ` Oliver
2018-03-05 16:00     ` Keith Busch
2018-03-05 16:00       ` Keith Busch
2018-03-05 16:00       ` Keith Busch
2018-03-05 16:00       ` Keith Busch
2018-03-05 17:10       ` Logan Gunthorpe
2018-03-05 17:10         ` Logan Gunthorpe
2018-03-05 17:10         ` Logan Gunthorpe
2018-03-05 17:10         ` Logan Gunthorpe
2018-03-05 18:02         ` Sinan Kaya
2018-03-05 18:02           ` Sinan Kaya
2018-03-05 18:02           ` Sinan Kaya
2018-03-05 18:09           ` Logan Gunthorpe
2018-03-05 18:09             ` Logan Gunthorpe
2018-03-05 18:09             ` Logan Gunthorpe
2018-03-06  0:49         ` Oliver
2018-03-06  0:49           ` Oliver
2018-03-06  0:49           ` Oliver
2018-03-06  0:49           ` Oliver
2018-03-06  1:14           ` Logan Gunthorpe
2018-03-06  1:14             ` Logan Gunthorpe
2018-03-06  1:14             ` Logan Gunthorpe
2018-03-06  1:14             ` Logan Gunthorpe
2018-03-06 10:40             ` Oliver
2018-03-06 10:40               ` Oliver
2018-03-06 10:40               ` Oliver
2018-03-06 10:40               ` Oliver
2018-03-05 19:57       ` Sagi Grimberg [this message]
2018-03-05 19:57         ` Sagi Grimberg
2018-03-05 19:57         ` Sagi Grimberg
2018-03-05 19:57         ` Sagi Grimberg
2018-03-05 20:10         ` Jason Gunthorpe
2018-03-05 20:10           ` Jason Gunthorpe
2018-03-05 20:10           ` Jason Gunthorpe
2018-03-05 20:10           ` Jason Gunthorpe
2018-03-05 20:16           ` Logan Gunthorpe
2018-03-05 20:16             ` Logan Gunthorpe
2018-03-05 20:16             ` Logan Gunthorpe
2018-03-05 20:42           ` Keith Busch
2018-03-05 20:42             ` Keith Busch
2018-03-05 20:42             ` Keith Busch
2018-03-05 20:42             ` Keith Busch
2018-03-05 20:50             ` Jason Gunthorpe
2018-03-05 20:50               ` Jason Gunthorpe
2018-03-05 20:50               ` Jason Gunthorpe
2018-03-05 20:13         ` Logan Gunthorpe
2018-03-05 20:13           ` Logan Gunthorpe
2018-03-05 20:13           ` Logan Gunthorpe
2018-03-05 20:13           ` Logan Gunthorpe
2018-02-28 23:40 ` [PATCH v2 08/10] nvme-pci: Add support for P2P memory in requests Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 11:07   ` Sagi Grimberg
2018-03-01 11:07     ` Sagi Grimberg
2018-03-01 11:07     ` Sagi Grimberg
2018-03-01 11:07     ` Sagi Grimberg
2018-03-01 15:58     ` Stephen  Bates
2018-03-01 15:58       ` Stephen  Bates
2018-03-01 15:58       ` Stephen  Bates
2018-03-01 15:58       ` Stephen  Bates
2018-03-01 15:58       ` Stephen  Bates
2018-03-09  5:08       ` Bart Van Assche
2018-03-09  5:08         ` Bart Van Assche
2018-03-09  5:08         ` Bart Van Assche
2018-03-09  5:08         ` Bart Van Assche
2018-03-09  5:08         ` Bart Van Assche
2018-02-28 23:40 ` [PATCH v2 09/10] nvme-pci: Add a quirk for a pseudo CMB Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 11:03   ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-02-28 23:40 ` [PATCH v2 10/10] nvmet: Optionally use PCI P2P memory Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-02-28 23:40   ` Logan Gunthorpe
2018-03-01 11:03   ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-03-01 11:03     ` Sagi Grimberg
2018-03-01 16:15     ` Stephen  Bates
2018-03-01 16:15       ` Stephen  Bates
2018-03-01 16:15       ` Stephen  Bates
2018-03-01 16:15       ` Stephen  Bates
2018-03-01 16:15       ` Stephen  Bates
2018-03-01 17:40     ` Logan Gunthorpe
2018-03-01 17:40       ` Logan Gunthorpe
2018-03-01 17:40       ` Logan Gunthorpe
2018-03-01 17:40       ` Logan Gunthorpe
2018-03-01 18:35       ` Sagi Grimberg
2018-03-01 18:35         ` Sagi Grimberg
2018-03-01 18:35         ` Sagi Grimberg
2018-03-01 18:35         ` Sagi Grimberg
2018-03-01 18:42         ` Jason Gunthorpe
2018-03-01 18:42           ` Jason Gunthorpe
2018-03-01 19:01           ` Stephen  Bates
2018-03-01 19:01             ` Stephen  Bates
2018-03-01 19:01             ` Stephen  Bates
2018-03-01 19:01             ` Stephen  Bates
2018-03-01 19:01             ` Stephen  Bates
2018-03-01 19:27           ` Logan Gunthorpe
2018-03-01 19:27             ` Logan Gunthorpe
2018-03-01 19:27             ` Logan Gunthorpe
2018-03-01 19:27             ` Logan Gunthorpe
2018-03-01 22:45             ` Jason Gunthorpe
2018-03-01 22:45               ` Jason Gunthorpe
2018-03-01 22:56               ` Logan Gunthorpe
2018-03-01 22:56                 ` Logan Gunthorpe
2018-03-01 22:56                 ` Logan Gunthorpe
2018-03-01 22:56                 ` Logan Gunthorpe
2018-03-01 23:00               ` Stephen  Bates
2018-03-01 23:00                 ` Stephen  Bates
2018-03-01 23:00                 ` Stephen  Bates
2018-03-01 23:00                 ` Stephen  Bates
2018-03-01 23:00                 ` Stephen  Bates
2018-03-01 23:20                 ` Jason Gunthorpe
2018-03-01 23:20                   ` Jason Gunthorpe
2018-03-01 23:20                   ` Jason Gunthorpe
2018-03-01 23:29                   ` Logan Gunthorpe
2018-03-01 23:29                     ` Logan Gunthorpe
2018-03-01 23:29                     ` Logan Gunthorpe
2018-03-01 23:29                     ` Logan Gunthorpe
2018-03-01 23:32                   ` Stephen  Bates
2018-03-01 23:32                     ` Stephen  Bates
2018-03-01 23:32                     ` Stephen  Bates
2018-03-01 23:32                     ` Stephen  Bates
2018-03-01 23:32                     ` Stephen  Bates
2018-03-01 23:49                 ` Keith Busch
2018-03-01 23:49                   ` Keith Busch
2018-03-01 23:49                   ` Keith Busch
2018-03-01 23:49                   ` Keith Busch
2018-03-01 23:52                   ` Logan Gunthorpe
2018-03-01 23:52                     ` Logan Gunthorpe
2018-03-01 23:52                     ` Logan Gunthorpe
2018-03-01 23:52                     ` Logan Gunthorpe
2018-03-01 23:53                   ` Stephen  Bates
2018-03-01 23:53                     ` Stephen  Bates
2018-03-01 23:53                     ` Stephen  Bates
2018-03-01 23:53                     ` Stephen  Bates
2018-03-01 23:53                     ` Stephen  Bates
2018-03-02 15:53                     ` Christoph Hellwig
2018-03-02 15:53                       ` Christoph Hellwig
2018-03-02 15:53                       ` Christoph Hellwig
2018-03-02 15:53                       ` Christoph Hellwig
2018-03-02 20:51                       ` Stephen  Bates
2018-03-02 20:51                         ` Stephen  Bates
2018-03-02 20:51                         ` Stephen  Bates
2018-03-02 20:51                         ` Stephen  Bates
2018-03-01 23:57                   ` Stephen  Bates
2018-03-01 23:57                     ` Stephen  Bates
2018-03-01 23:57                     ` Stephen  Bates
2018-03-01 23:57                     ` Stephen  Bates
2018-03-01 23:57                     ` Stephen  Bates
2018-03-02  0:03                     ` Logan Gunthorpe
2018-03-02  0:03                       ` Logan Gunthorpe
2018-03-02  0:03                       ` Logan Gunthorpe
2018-03-02  0:03                       ` Logan Gunthorpe
2018-03-02 16:18                     ` Jason Gunthorpe
2018-03-02 16:18                       ` Jason Gunthorpe
2018-03-02 16:18                       ` Jason Gunthorpe
2018-03-02 17:10                       ` Logan Gunthorpe
2018-03-02 17:10                         ` Logan Gunthorpe
2018-03-02 17:10                         ` Logan Gunthorpe
2018-03-02 17:10                         ` Logan Gunthorpe
2018-03-01 19:10         ` Logan Gunthorpe
2018-03-01 19:10           ` Logan Gunthorpe
2018-03-01 19:10           ` Logan Gunthorpe
2018-03-01 19:10           ` Logan Gunthorpe
2018-03-01  3:54 ` [PATCH v2 00/10] Copy Offload in NVMe Fabrics with P2P PCI Memory Benjamin Herrenschmidt
2018-03-01  3:54   ` Benjamin Herrenschmidt
2018-03-01  3:54   ` Benjamin Herrenschmidt
2018-03-01  3:54   ` Benjamin Herrenschmidt
2018-03-01  3:56   ` Benjamin Herrenschmidt
2018-03-01  3:56     ` Benjamin Herrenschmidt
2018-03-01  3:56     ` Benjamin Herrenschmidt
2018-03-01  3:56     ` Benjamin Herrenschmidt
2018-03-01 18:04     ` Logan Gunthorpe
2018-03-01 18:04       ` Logan Gunthorpe
2018-03-01 18:04       ` Logan Gunthorpe
2018-03-01 18:04       ` Logan Gunthorpe
2018-03-01 20:29       ` Benjamin Herrenschmidt
2018-03-01 20:29         ` Benjamin Herrenschmidt
2018-03-01 20:29         ` Benjamin Herrenschmidt
2018-03-01 20:29         ` Benjamin Herrenschmidt
2018-03-01 20:55         ` Jerome Glisse
2018-03-01 20:55           ` Jerome Glisse
2018-03-01 20:55           ` Jerome Glisse
2018-03-01 20:55           ` Jerome Glisse
2018-03-01 20:55           ` Jerome Glisse
2018-03-01 21:03           ` Logan Gunthorpe
2018-03-01 21:03             ` Logan Gunthorpe
2018-03-01 21:03             ` Logan Gunthorpe
2018-03-01 21:03             ` Logan Gunthorpe
2018-03-01 21:10             ` Jerome Glisse
2018-03-01 21:10               ` Jerome Glisse
2018-03-01 21:10               ` Jerome Glisse
2018-03-01 21:10               ` Jerome Glisse
2018-03-01 21:10               ` Jerome Glisse
2018-03-01 21:15               ` Logan Gunthorpe
2018-03-01 21:15                 ` Logan Gunthorpe
2018-03-01 21:15                 ` Logan Gunthorpe
2018-03-01 21:15                 ` Logan Gunthorpe
2018-03-01 21:25                 ` Jerome Glisse
2018-03-01 21:25                   ` Jerome Glisse
2018-03-01 21:25                   ` Jerome Glisse
2018-03-01 21:25                   ` Jerome Glisse
2018-03-01 21:25                   ` Jerome Glisse
2018-03-01 21:37               ` Stephen  Bates
2018-03-01 21:37                 ` Stephen  Bates
2018-03-01 21:37                 ` Stephen  Bates
2018-03-01 21:37                 ` Stephen  Bates
2018-03-01 21:37                 ` Stephen  Bates
2018-03-02 21:38               ` Stephen  Bates
2018-03-02 21:38                 ` Stephen  Bates
2018-03-02 21:38                 ` Stephen  Bates
2018-03-02 21:38                 ` Stephen  Bates
2018-03-02 21:38                 ` Stephen  Bates
2018-03-02 22:09                 ` Jerome Glisse
2018-03-02 22:09                   ` Jerome Glisse
2018-03-02 22:09                   ` Jerome Glisse
2018-03-02 22:09                   ` Jerome Glisse
2018-03-02 22:09                   ` Jerome Glisse
2018-03-05 20:36                   ` Stephen  Bates
2018-03-05 20:36                     ` Stephen  Bates
2018-03-05 20:36                     ` Stephen  Bates
2018-03-05 20:36                     ` Stephen  Bates
2018-03-05 20:36                     ` Stephen  Bates
2018-03-01 20:55         ` Logan Gunthorpe
2018-03-01 20:55           ` Logan Gunthorpe
2018-03-01 20:55           ` Logan Gunthorpe
2018-03-01 20:55           ` Logan Gunthorpe
2018-03-01 18:09     ` Stephen  Bates
2018-03-01 18:09       ` Stephen  Bates
2018-03-01 18:09       ` Stephen  Bates
2018-03-01 18:09       ` Stephen  Bates
2018-03-01 18:09       ` Stephen  Bates
2018-03-01 20:32       ` Benjamin Herrenschmidt
2018-03-01 20:32         ` Benjamin Herrenschmidt
2018-03-01 20:32         ` Benjamin Herrenschmidt
2018-03-01 20:32         ` Benjamin Herrenschmidt
2018-03-01 19:21     ` Dan Williams
2018-03-01 19:21       ` Dan Williams
2018-03-01 19:21       ` Dan Williams
2018-03-01 19:21       ` Dan Williams
2018-03-01 19:30       ` Logan Gunthorpe
2018-03-01 19:30         ` Logan Gunthorpe
2018-03-01 19:30         ` Logan Gunthorpe
2018-03-01 19:30         ` Logan Gunthorpe
2018-03-01 20:34       ` Benjamin Herrenschmidt
2018-03-01 20:34         ` Benjamin Herrenschmidt
2018-03-01 20:34         ` Benjamin Herrenschmidt
2018-03-01 20:34         ` Benjamin Herrenschmidt
2018-03-01 20:40         ` Benjamin Herrenschmidt
2018-03-01 20:40           ` Benjamin Herrenschmidt
2018-03-01 20:40           ` Benjamin Herrenschmidt
2018-03-01 20:40           ` Benjamin Herrenschmidt
2018-03-01 20:53           ` Jason Gunthorpe
2018-03-01 20:53             ` Jason Gunthorpe
2018-03-01 20:57             ` Logan Gunthorpe
2018-03-01 20:57               ` Logan Gunthorpe
2018-03-01 20:57               ` Logan Gunthorpe
2018-03-01 20:57               ` Logan Gunthorpe
2018-03-01 22:06             ` Benjamin Herrenschmidt
2018-03-01 22:06               ` Benjamin Herrenschmidt
2018-03-01 22:06               ` Benjamin Herrenschmidt
2018-03-01 22:06               ` Benjamin Herrenschmidt
2018-03-01 22:31               ` Linus Torvalds
2018-03-01 22:31                 ` Linus Torvalds
2018-03-01 22:31                 ` Linus Torvalds
2018-03-01 22:31                 ` Linus Torvalds
2018-03-01 22:34                 ` Benjamin Herrenschmidt
2018-03-01 22:34                   ` Benjamin Herrenschmidt
2018-03-01 22:34                   ` Benjamin Herrenschmidt
2018-03-01 22:34                   ` Benjamin Herrenschmidt
2018-03-02 16:22                   ` Kani, Toshi
2018-03-02 16:22                     ` Kani, Toshi
2018-03-02 16:22                     ` Kani, Toshi
2018-03-02 16:22                     ` Kani, Toshi
2018-03-02 16:22                     ` Kani, Toshi
2018-03-02 16:57                     ` Linus Torvalds
2018-03-02 16:57                       ` Linus Torvalds
2018-03-02 16:57                       ` Linus Torvalds
2018-03-02 16:57                       ` Linus Torvalds
2018-03-02 17:34                       ` Linus Torvalds
2018-03-02 17:34                         ` Linus Torvalds
2018-03-02 17:34                         ` Linus Torvalds
2018-03-02 17:34                         ` Linus Torvalds
2018-03-02 17:38                       ` Kani, Toshi
2018-03-02 17:38                         ` Kani, Toshi
2018-03-02 17:38                         ` Kani, Toshi
2018-03-02 17:38                         ` Kani, Toshi
2018-03-02 17:38                         ` Kani, Toshi
2018-03-01 21:37         ` Dan Williams
2018-03-01 21:37           ` Dan Williams
2018-03-01 21:37           ` Dan Williams
2018-03-01 21:37           ` Dan Williams
2018-03-01 21:45           ` Logan Gunthorpe
2018-03-01 21:45             ` Logan Gunthorpe
2018-03-01 21:45             ` Logan Gunthorpe
2018-03-01 21:57             ` Logan Gunthorpe
2018-03-01 21:57               ` Logan Gunthorpe
2018-03-01 21:57               ` Logan Gunthorpe
2018-03-01 21:57               ` Logan Gunthorpe
2018-03-01 23:00               ` Benjamin Herrenschmidt
2018-03-01 23:00                 ` Benjamin Herrenschmidt
2018-03-01 23:00                 ` Benjamin Herrenschmidt
2018-03-01 23:00                 ` Benjamin Herrenschmidt
2018-03-01 23:19                 ` Logan Gunthorpe
2018-03-01 23:19                   ` Logan Gunthorpe
2018-03-01 23:19                   ` Logan Gunthorpe
2018-03-01 23:19                   ` Logan Gunthorpe
2018-03-01 23:25                   ` Benjamin Herrenschmidt
2018-03-01 23:25                     ` Benjamin Herrenschmidt
2018-03-01 23:25                     ` Benjamin Herrenschmidt
2018-03-01 23:25                     ` Benjamin Herrenschmidt
2018-03-02 21:44                     ` Benjamin Herrenschmidt
2018-03-02 21:44                       ` Benjamin Herrenschmidt
2018-03-02 21:44                       ` Benjamin Herrenschmidt
2018-03-02 21:44                       ` Benjamin Herrenschmidt
2018-03-02 22:24                       ` Logan Gunthorpe
2018-03-02 22:24                         ` Logan Gunthorpe
2018-03-02 22:24                         ` Logan Gunthorpe
2018-03-02 22:24                         ` Logan Gunthorpe
2018-03-01 23:26                   ` Benjamin Herrenschmidt
2018-03-01 23:26                     ` Benjamin Herrenschmidt
2018-03-01 23:26                     ` Benjamin Herrenschmidt
2018-03-01 23:26                     ` Benjamin Herrenschmidt
2018-03-01 23:54                     ` Logan Gunthorpe
2018-03-01 23:54                       ` Logan Gunthorpe
2018-03-01 23:54                       ` Logan Gunthorpe
2018-03-01 23:54                       ` Logan Gunthorpe
2018-03-01 21:03       ` Benjamin Herrenschmidt
2018-03-01 21:03         ` Benjamin Herrenschmidt
2018-03-01 21:03         ` Benjamin Herrenschmidt
2018-03-01 21:03         ` Benjamin Herrenschmidt
2018-03-01 21:11         ` Logan Gunthorpe
2018-03-01 21:11           ` Logan Gunthorpe
2018-03-01 21:11           ` Logan Gunthorpe
2018-03-01 21:11           ` Logan Gunthorpe
2018-03-01 21:18           ` Jerome Glisse
2018-03-01 21:18             ` Jerome Glisse
2018-03-01 21:18             ` Jerome Glisse
2018-03-01 21:18             ` Jerome Glisse
2018-03-01 21:18             ` Jerome Glisse
2018-03-01 21:22             ` Logan Gunthorpe
2018-03-01 21:22               ` Logan Gunthorpe
2018-03-01 21:22               ` Logan Gunthorpe
2018-03-01 21:22               ` Logan Gunthorpe
2018-03-01 10:31 ` Sagi Grimberg
2018-03-01 10:31   ` Sagi Grimberg
2018-03-01 10:31   ` Sagi Grimberg
2018-03-01 10:31   ` Sagi Grimberg
2018-03-01 19:33   ` Logan Gunthorpe
2018-03-01 19:33     ` Logan Gunthorpe
2018-03-01 19:33     ` Logan Gunthorpe
2018-03-01 19:33     ` Logan Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=36c78987-006a-a97f-1d18-b0a08cbea9d4@grimberg.me \
    --to=sagi@grimberg.me \
    --cc=alex.williamson@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=hch@lst.de \
    --cc=jgg@mellanox.com \
    --cc=jglisse@redhat.com \
    --cc=keith.busch@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=maxg@mellanox.com \
    --cc=oohall@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.