On Tue, 8 Jan 2013, Roger Pau Monne wrote: > This protocol extension reuses the same set of grant pages for all > transactions between the front/back drivers, avoiding expensive tlb > flushes, grant table lock contention and switches between userspace > and kernel space. The full description of the protocol can be found in > the public blkif.h header. > > http://xenbits.xen.org/gitweb/?p=xen.git;a=blob_plain;f=xen/include/public/io/blkif.h > > Speed improvement with 15 guests performing I/O is ~450%. > > Signed-off-by: Roger Pau Monné <roger....@citrix.com> > Cc: xen-de...@lists.xen.org > Cc: Stefano Stabellini <stefano.stabell...@eu.citrix.com> > Cc: Anthony PERARD <anthony.per...@citrix.com> > --- > Performance comparison with the previous implementation can be seen in > the followign graph: > > http://xenbits.xen.org/people/royger/persistent_read_qemu.png > --- > Changes since v1: > * Fix coding style issues. > * Add more comments regarding how ioreq_map works.
The patch looks good now, I only have a very small stylistic comment. > + for (i = 0; i < ioreq->v.niov; i++) { > + ioreq->v.iov[i].iov_base = page[i] + > + (uintptr_t)ioreq->v.iov[i].iov_base; ioreq->v.iov[i].iov_base += (uintptr_t)page[i] ?