opnsense-src/sys/xen/interface
Colin Percival aaebf69062 Add support for Xen blkif indirect segment I/Os. This makes it possible for
the blkfront driver to perform I/Os of up to 2 MB, subject to support from
the blkback to which it is connected and the initiation of such large I/Os
by the rest of the kernel.  In practice, the I/O size is increased from 40 kB
to 128 kB.

The changes to xen/interface/io/blkif.h consist merely of merging updates
from the upstream Xen repository.

In dev/xen/blkfront/block.h we add some convenience macros and structure
fields used for indirect-page I/Os: The device records its negotiated limit
on the number of indirect pages used, while each I/O command structure gains
permanently allocated page(s) for indirect page references and the Xen grant
references for those pages.

In dev/xen/blkfront/blkfront.c we now check in xbd_queue_cb whether a request
is small enough to handle without an indirection page, and either follow the
previous behaviour or use new code for issuing an indirect segment I/O.  In
xbd_connect we read the size of indirect segment I/Os supported by the backend
and select the maximum size we will use; then allocate the pages and Xen grant
references for each I/O command structure.  In xbd_free those grants and pages
are released.

A new loader tunable, hw.xbd.xbd_enable_indirect, can be set to 0 in order to
disable this functionality; it works by pretending that the backend does not
support this feature.  Some backends exhibit a loss of performance with large
I/Os, so users may wish to test with and without this functionality enabled.

Reviewed by:	royger
MFC after:	3 days
Relnotes:	yes
2015-07-30 03:50:01 +00:00
..
arch-arm/hvm Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
arch-x86 Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
foreign Adjust i386 Xen PV support for updated Xen interface files. 2013-06-17 01:43:07 +00:00
hvm Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
io Add support for Xen blkif indirect segment I/Os. This makes it possible for 2015-07-30 03:50:01 +00:00
xsm Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
acm.h
acm_ops.h
arch-arm.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
arch-powerpc.h
arch-x86_32.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
arch-x86_64.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
callback.h
COPYING
dom0_ops.h
domctl.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
elfnote.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
elfstructs.h
event_channel.h Implement vector callback for PVHVM and unify event channel implementations 2013-08-29 19:52:18 +00:00
features.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
grant_table.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
kexec.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
libelf.h
mem_event.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
memory.h xen: implement the privcmd user-space device 2014-10-22 17:07:20 +00:00
nmi.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
physdev.h msi: add Xen MSI implementation 2014-09-30 16:46:45 +00:00
platform.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
sched.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
sysctl.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
tmem.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
trace.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
vcpu.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
version.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
xen-compat.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00
xen.h xen: implement the privcmd user-space device 2014-10-22 17:07:20 +00:00
xencomm.h
xenoprof.h Upgrade Xen interface headers to Xen 4.2.1. 2013-06-14 23:43:44 +00:00