linux-nvme.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Version 0.8 uploaded
@ 2012-01-11 14:50 Matthew Wilcox
  0 siblings, 0 replies; only message in thread
From: Matthew Wilcox @ 2012-01-11 14:50 UTC (permalink / raw)



I've just pushed out version 0.8 of the driver.  Here's the shortlog:

Matthew Wilcox (13):
      NVMe: Implement doorbell stride capability
      NVMe: Update Identify Controller data structure
      NVMe: Simplify completion handling
      NVMe: Change get_nvmeq to take a dev instead of a namespace
      NVMe: Change nvme_completion_fn to take a dev
      NVMe: Merge the nvme_bio and nvme_prp data structures
      NVMe: Rename IO_TIMEOUT to NVME_IO_TIMEOUT
      NVMe: Fix DMA mapping for admin commands
      NVMe: Mark the end of the sg list
      NVMe: Simplify nvme_unmap_user_pages
      NVMe: Set queue flags correctly
      NVMe: Version 0.8
      NVMe: Set number of queues correctly

Mostly bugfixes, but the big change is merging the nvme_bio and nvme_prp
data structures.  I've been made aware that certain applications mostly
send I/Os larger than a single page; in particular MySQL uses 16k I/Os.
That was probably the pessimal size for the NVMe driver; just large
enough to cause it to allocate an nvme_prp data structure and small
enough that per-I/O overhead is still meaningful.

So I merged the nvme_bio and nvme_prp data structures into the new
nvme_iod data structure.  This was a bit of a challenge since it needs
to contain two variable-length arrays, which C does not permit you to
express neatly.  I hope the comments around the data structure make it
clear what I'm doing.  I saw noticable reductions in per-I/O CPU overhead
with the new scheme, so I think it's worthwhile.  Also, the additional
overhead for 512-byte I/Os was down in the noise and it was completely
unmeasurable for 4k I/Os.

I plan to ask Linus to merge this version of the driver for Linux 3.3.
I know there's still a lot on the TODO list, but we'll have a chance to
merge more patches in April.  I have a couple of patches from Keith Busch
still to review (adding a character device to represent the controller
and the beginnings of an error handler), but I'd rather get what we have
merged now than wait for the next merge window.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-01-11 14:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-11 14:50 Version 0.8 uploaded Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).