mbox series

[PULL] nvme updates

Message ID 20200819192240.GA25305@dhcp-10-100-145-180.wdl.wdc.com
State New
Headers show
Series [PULL] nvme updates | expand

Pull-request

git://git.infradead.org/qemu-nvme.git nvme-next

Message

Keith Busch Aug. 19, 2020, 7:22 p.m. UTC
We're trying our first nvme pull request from a dedicated development
tree containing various fixes, cleanups, spec compliance, and welcoming
Klaus Jensen to maintaining the emulated nvme device development.

The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:

  Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)

are available in the Git repository at:

  git://git.infradead.org/qemu-nvme.git nvme-next

for you to fetch changes up to 9257c77e4f0feaefb76f02fff3dc8d60b420ea4d:

  hw/block/nvme: remove explicit qsg/iov parameters (2020-08-17 08:40:54 +0200)

----------------------------------------------------------------
Keith Busch (1):
      MAINTAINERS: update nvme entry

Klaus Jensen (34):
      hw/block/nvme: bump spec data structures to v1.3
      hw/block/nvme: fix missing endian conversion
      hw/block/nvme: additional tracing
      hw/block/nvme: add support for the abort command
      hw/block/nvme: add temperature threshold feature
      hw/block/nvme: mark fw slot 1 as read-only
      hw/block/nvme: add support for the get log page command
      hw/block/nvme: add support for the asynchronous event request command
      hw/block/nvme: move NvmeFeatureVal into hw/block/nvme.h
      hw/block/nvme: flush write cache when disabled
      hw/block/nvme: add remaining mandatory controller parameters
      hw/block/nvme: support the get/set features select and save fields
      hw/block/nvme: make sure ncqr and nsqr is valid
      hw/block/nvme: support identify namespace descriptor list
      hw/block/nvme: reject invalid nsid values in active namespace id list
      hw/block/nvme: enforce valid queue creation sequence
      hw/block/nvme: provide the mandatory subnqn field
      hw/block/nvme: bump supported version to v1.3
      hw/block/nvme: memset preallocated requests structures
      hw/block/nvme: add mapping helpers
      hw/block/nvme: replace dma_acct with blk_acct equivalent
      hw/block/nvme: remove redundant has_sg member
      hw/block/nvme: destroy request iov before reuse
      hw/block/nvme: refactor dma read/write
      hw/block/nvme: add tracing to nvme_map_prp
      hw/block/nvme: add request mapping helper
      hw/block/nvme: verify validity of prp lists in the cmb
      hw/block/nvme: refactor request bounds checking
      hw/block/nvme: add check for mdts
      hw/block/nvme: be consistent about zeros vs zeroes
      hw/block/nvme: add ns/cmd references in NvmeRequest
      hw/block/nvme: consolidate qsg/iov clearing
      hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp
      hw/block/nvme: remove explicit qsg/iov parameters

Philippe Mathieu-Daudé (4):
      hw/block/nvme: Update specification URL
      hw/block/nvme: Use QEMU_PACKED on hardware/packet structures
      hw/block/nvme: Fix pmrmsc register size
      hw/block/nvme: Align I/O BAR to 4 KiB

 MAINTAINERS           |    2 +
 block/nvme.c          |   22 +-
 hw/block/nvme.c       | 1136 +++++++++++++++++++++++++++++++++++++++++--------
 hw/block/nvme.h       |   26 +-
 hw/block/trace-events |   31 +-
 include/block/nvme.h  |  271 +++++++++---
 6 files changed, 1248 insertions(+), 240 deletions(-)

Comments

Peter Maydell Aug. 23, 2020, 1:56 p.m. UTC | #1
On Wed, 19 Aug 2020 at 20:23, Keith Busch <kbusch@kernel.org> wrote:
>
> We're trying our first nvme pull request from a dedicated development
> tree containing various fixes, cleanups, spec compliance, and welcoming
> Klaus Jensen to maintaining the emulated nvme device development.
>
> The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
>
>   Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
>
> are available in the Git repository at:
>
>   git://git.infradead.org/qemu-nvme.git nvme-next

Hi; it looks like this isn't a gpg-signed tag?

error: remotes/nvme/nvme-next: cannot verify a non-tag object of type commit.

thanks
-- PMM
Keith Busch Aug. 25, 2020, 8:12 p.m. UTC | #2
On Sun, Aug 23, 2020 at 02:56:12PM +0100, Peter Maydell wrote:
> On Wed, 19 Aug 2020 at 20:23, Keith Busch <kbusch@kernel.org> wrote:
> >
> > We're trying our first nvme pull request from a dedicated development
> > tree containing various fixes, cleanups, spec compliance, and welcoming
> > Klaus Jensen to maintaining the emulated nvme device development.
> >
> > The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:
> >
> >   Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
> >
> > are available in the Git repository at:
> >
> >   git://git.infradead.org/qemu-nvme.git nvme-next
> 
> Hi; it looks like this isn't a gpg-signed tag?
> 
> error: remotes/nvme/nvme-next: cannot verify a non-tag object of type commit.

Oops, sorry I forgot about that part of the procedure here. The repo should
have a signed tag now:

The following changes since commit d0ed6a69d399ae193959225cdeaa9382746c91cc:

  Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)

are available in the Git repository at:

  git://git.infradead.org/qemu-nvme.git tags/for-upstream

for you to fetch changes up to 9257c77e4f0feaefb76f02fff3dc8d60b420ea4d:

  hw/block/nvme: remove explicit qsg/iov parameters (2020-08-17 08:40:54 +0200)
Peter Maydell Aug. 25, 2020, 9:43 p.m. UTC | #3
On Tue, 25 Aug 2020 at 21:12, Keith Busch <kbusch@kernel.org> wrote:
>
> On Sun, Aug 23, 2020 at 02:56:12PM +0100, Peter Maydell wrote:
> > Hi; it looks like this isn't a gpg-signed tag?
> >
> > error: remotes/nvme/nvme-next: cannot verify a non-tag object of type commit.
>
> Oops, sorry I forgot about that part of the procedure here. The repo should
> have a signed tag now:

Thanks; the gpg key setup looks ok.

I notice that all the commits in the repo have Klaus's signed-off-by.
Usually the expectation is that the person who sends the pull req
is the one who's curated the tree and added their signed-off-by,
but are you doing a jointly-administered tree here ?

The build has a format string issue that shows up on OSX, Windows,
and 32-bit builds:

In file included from ../../hw/block/trace.h:1:0,
                 from ../../hw/block/fdc.c:48:
./trace/trace-hw_block.h: In function '_nocheck__trace_pci_nvme_err_mdts':
./trace/trace-hw_block.h:2162:18: error: format '%llu' expects
argument of type 'long long unsigned int', but argument 6 has type
'size_t {aka unsigned int}' [-Werror=format=]
         qemu_log("%d@%zu.%06zu:pci_nvme_err_mdts " "cid %"PRIu16" len
%"PRIu64"" "\n",
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

thanks
-- PMM
Keith Busch Aug. 25, 2020, 10:28 p.m. UTC | #4
On Tue, Aug 25, 2020 at 10:43:23PM +0100, Peter Maydell wrote:
> On Tue, 25 Aug 2020 at 21:12, Keith Busch <kbusch@kernel.org> wrote:
> >
> > On Sun, Aug 23, 2020 at 02:56:12PM +0100, Peter Maydell wrote:
> > > Hi; it looks like this isn't a gpg-signed tag?
> > >
> > > error: remotes/nvme/nvme-next: cannot verify a non-tag object of type commit.
> >
> > Oops, sorry I forgot about that part of the procedure here. The repo should
> > have a signed tag now:
> 
> Thanks; the gpg key setup looks ok.
> 
> I notice that all the commits in the repo have Klaus's signed-off-by.
> Usually the expectation is that the person who sends the pull req
> is the one who's curated the tree and added their signed-off-by,
> but are you doing a jointly-administered tree here ?

Right, Klaus is the primary committer for our joint repository, and I
added his info to the MAINTAINERS file in the first commit of this pull.
Since he's not currently listed upstream, I thought it made sense to
make the introduction here. We'll coordinate pull requests as you've
described going forward.
 
> The build has a format string issue that shows up on OSX, Windows,
> and 32-bit builds:

Sorry about that, we'll fix it up ASAP.

> In file included from ../../hw/block/trace.h:1:0,
>                  from ../../hw/block/fdc.c:48:
> ./trace/trace-hw_block.h: In function '_nocheck__trace_pci_nvme_err_mdts':
> ./trace/trace-hw_block.h:2162:18: error: format '%llu' expects
> argument of type 'long long unsigned int', but argument 6 has type
> 'size_t {aka unsigned int}' [-Werror=format=]
>          qemu_log("%d@%zu.%06zu:pci_nvme_err_mdts " "cid %"PRIu16" len
> %"PRIu64"" "\n",
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> thanks
> -- PMM
Klaus Jensen Aug. 26, 2020, 5:51 a.m. UTC | #5
On Aug 26 07:28, Keith Busch wrote:
> On Tue, Aug 25, 2020 at 10:43:23PM +0100, Peter Maydell wrote:
> > On Tue, 25 Aug 2020 at 21:12, Keith Busch <kbusch@kernel.org> wrote:
> > >
> > > On Sun, Aug 23, 2020 at 02:56:12PM +0100, Peter Maydell wrote:
> > > > Hi; it looks like this isn't a gpg-signed tag?
> > > >
> > > > error: remotes/nvme/nvme-next: cannot verify a non-tag object of type commit.
> > >
> > > Oops, sorry I forgot about that part of the procedure here. The repo should
> > > have a signed tag now:
> > 
> > Thanks; the gpg key setup looks ok.
> > 
> > I notice that all the commits in the repo have Klaus's signed-off-by.
> > Usually the expectation is that the person who sends the pull req
> > is the one who's curated the tree and added their signed-off-by,
> > but are you doing a jointly-administered tree here ?
> 
> Right, Klaus is the primary committer for our joint repository, and I
> added his info to the MAINTAINERS file in the first commit of this pull.
> Since he's not currently listed upstream, I thought it made sense to
> make the introduction here. We'll coordinate pull requests as you've
> described going forward.
>  
> > The build has a format string issue that shows up on OSX, Windows,
> > and 32-bit builds:
> 
> Sorry about that, we'll fix it up ASAP.
> 
> > In file included from ../../hw/block/trace.h:1:0,
> >                  from ../../hw/block/fdc.c:48:
> > ./trace/trace-hw_block.h: In function '_nocheck__trace_pci_nvme_err_mdts':
> > ./trace/trace-hw_block.h:2162:18: error: format '%llu' expects
> > argument of type 'long long unsigned int', but argument 6 has type
> > 'size_t {aka unsigned int}' [-Werror=format=]
> >          qemu_log("%d@%zu.%06zu:pci_nvme_err_mdts " "cid %"PRIu16" len
> > %"PRIu64"" "\n",
> >                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 

That's on me. Keith, fixed in our tree now.

Peter, this doesn't seem to get picked up by, say, `make
docker-test-mingw@fedora`. Should it?