linux_dsm_epyc7002/Documentation/ABI/testing
Jens Axboe f35546e072 Merge branch 'stable/for-jens-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-3.11/drivers
Konrad writes:

It has the 'feature-max-indirect-segments' implemented in both backend
and frontend. The current problem with the backend and frontend is that the
segment size is limited to 11 pages. It means we can at most squeeze in 44kB per
request. The ring can hold 32 (next power of two below 36) requests, meaning we
can do 1.4M of outstanding requests. Nowadays that is not enough.

The problem in the past was addressed in two ways - but neither one went upstream.
The first solution to this proposed by Justin from Spectralogic was to negotiate
the segment size.  This means that the ‘struct blkif_sring_entry’ is now a variable size.
It can expand from 112 bytes (cover 11 pages of data - 44kB) to 1580 bytes
(256 pages of data - so 1MB). It is a simple extension by just making the array in the
request expand from 11 to a variable size negotiated. But it had limits: this extension
still limits the number of segments per request to 255 (as the total number must be
specified in the request, which only has an 8-bit field for that purpose).

The other solution (from Intel - Ronghui) was to create one extra ring that only has the
‘struct blkif_request_segment’ in them. The ‘struct blkif_request’ would be changed to have
an index in said ‘segment ring’. There is only one segment ring. This means that the size of
the initial ring is still the same. The requests would point to the segment and enumerate out
how many of the indexes it wants to use. The limit is of course the size of the segment.
If one assumes a one-page segment this means we can in one request cover ~4MB.

Those patches were posted as RFC and the author never followed up on the ideas on changing
it to be a bit more flexible.

There is yet another mechanism that could be employed  (which these patches implement) - and it
borrows from VirtIO protocol. And that is the ‘indirect descriptors’. This very similar to
what Intel suggests, but with a twist. The twist is to negotiate how many of these
'segment' pages (aka indirect descriptor pages) we want to support (in reality we negotiate
how many entries in the segment we want to cover, and we module the number if it is
bigger than the segment size).

This means that with the existing 36 slots in the ring (single page) we can cover:
32 slots * each blkif_request_indirect covers: 512 * 4096 ~= 64M. Since we ample space
in the blkif_request_indirect to span more than one indirect page, that number (64M)
can be also multiplied by eight = 512MB.

Roger Pau Monne took the idea and implemented them in these patches. They work
great and the corner cases (migration between backends with and without this extension)
work nicely. The backend has a limit right now off how many indirect entries
it can handle: one indirect page, and at maximum 256 entries (out of 512 - so  50% of the page
is used). That comes out to 32 slots * 256 entries in a indirect page * 1 indirect page
per request * 4096 = 32MB.

This is a conservative number that can change in the future. Right now it strikes
a good balance between giving excellent performance, memory usage in the backend, and
balancing the needs of many guests.

In the patchset there is also the split of the blkback structure to be per-VBD.
This means that the spinlock contention we had with many guests trying to do I/O and
all the blkback threads hitting the same lock has been eliminated.

Also there are bug-fixes to deal with oddly sized sectors, insane amounts on
th ring, and also a security fix (posted earlier).
2013-06-28 16:01:14 +02:00
..
configfs-spear-pcie-gadget ST SPEAr: PCIE gadget suppport 2011-03-22 17:44:10 -07:00
debugfs-ec Documentation: Add new /sys/kernel/debug/ec/* files to ABI 2010-08-03 09:49:07 -04:00
debugfs-ideapad ideapad: add debugfs support 2011-10-24 16:52:39 +02:00
debugfs-olpc x86/olpc: Add debugfs interface for EC commands 2012-03-27 20:54:52 +02:00
debugfs-pfo-nx-crypto powerpc/crypto: debugfs routines and docs for the nx device driver 2012-05-16 15:05:45 +10:00
debugfs-pktcdvd doc: use correct debugfs mountpoint 2009-04-13 15:04:33 -07:00
dev-kmsg doc: fix quite a few typos within Documentation 2012-11-19 14:28:24 +01:00
evm evm: re-release 2011-07-18 12:29:40 -04:00
ima_policy ima: add policy support for file system uuid 2013-02-06 10:40:29 -05:00
procfs-diskstats tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
pstore pstore: Create a convenient mount point for pstore 2013-02-12 13:07:22 -08:00
sysfs-ata [libata] Add ATA transport class 2010-10-21 20:21:03 -04:00
sysfs-block block: Implement support for WRITE SAME 2012-09-20 14:31:45 +02:00
sysfs-block-bcache bcache: A block layer cache 2013-03-23 16:11:31 -07:00
sysfs-block-dm dm: document sysfs entries 2012-03-28 18:41:23 +01:00
sysfs-block-rssd mtip32xx: Remove 'registers' and 'flags' from sysfs 2012-06-05 09:13:48 +02:00
sysfs-block-zram Documentation: Add newline at end-of-file to files lacking one 2012-07-20 23:10:28 +02:00
sysfs-bus-bcma Documentation/ABI/: update version number references from 2.6.x to 3.x 2011-08-05 13:32:40 +02:00
sysfs-bus-css Fix common misspellings 2011-03-31 11:26:23 -03:00
sysfs-bus-event_source-devices-events perf: Document the ABI of perf sysfs entries 2013-01-31 13:07:51 -03:00
sysfs-bus-event_source-devices-format perf: Adding sysfs group format attribute for pmu device 2012-03-16 14:06:06 -03:00
sysfs-bus-fcoe libfcoe, fcoe, bnx2fc: Add new fcoe control interface 2012-12-14 10:38:54 -08:00
sysfs-bus-hsi HSI: Add HSI ABI documentation 2012-04-23 14:23:32 +03:00
sysfs-bus-i2c-devices-fsa9480 drivers/misc: add support the FSA9480 USB Switch 2011-07-25 20:57:14 -07:00
sysfs-bus-i2c-devices-hm6352 hmc6352: add driver for the HMC6352 compass 2010-08-09 20:45:10 -07:00
sysfs-bus-i2c-devices-lm3533 mfd: Remove lm3533 boost attributes 2012-05-20 17:27:01 +02:00
sysfs-bus-iio iio: Add pressure channel type 2012-11-20 21:26:38 +00:00
sysfs-bus-iio-frequency-ad9523 iio: frequency: New driver for AD9523 SPI Low Jitter Clock Generator 2012-06-04 21:19:05 -07:00
sysfs-bus-iio-frequency-adf4350 iio: frequency: New driver for Analog Devices ADF4350/ADF4351 Wideband Synthesizers 2012-06-04 21:19:40 -07:00
sysfs-bus-iio-light-lm3533-als iio: cleanup sysfs-bus-iio-light-lm3533-als 2012-06-15 14:39:18 -07:00
sysfs-bus-iio-mpu6050 Invensense MPU6050 Device Driver. 2013-02-10 17:42:43 +00:00
sysfs-bus-mdio phylib: mdio: Add sysfs attribute for PHY identifiers. 2012-11-09 16:38:15 -05:00
sysfs-bus-media [media] media: Media device 2011-03-22 04:53:09 -03:00
sysfs-bus-mei mei: bus: Initial MEI Client bus type implementation 2013-03-29 08:35:47 -07:00
sysfs-bus-pci PCI: SRIOV control and status via sysfs (documentation) 2012-11-28 11:25:47 -07:00
sysfs-bus-pci-devices-cciss cciss: add transport mode attribute to sys 2011-08-08 11:40:17 +02:00
sysfs-bus-pci-drivers-ehci_hcd USB: document ehci-hcd's "companion" sysfs attribute 2011-09-18 01:48:37 -07:00
sysfs-bus-rbd rbd: don't create sysfs entries for non-mapped snapshots 2013-05-01 21:19:25 -07:00
sysfs-bus-rpmsg rpmsg: add virtio-based remote processor messaging bus 2012-02-08 22:53:58 +02:00
sysfs-bus-umc uwb: document UWB and WUSB sysfs files 2008-09-17 16:54:35 +01:00
sysfs-bus-usb USB: remove CONFIG_USB_SUSPEND from Documentation 2013-03-28 14:45:56 -07:00
sysfs-bus-usb-devices-usbsevseg Documentation: Add newline at end-of-file to files lacking one 2012-07-20 23:10:28 +02:00
sysfs-c2port Add c2 port support 2008-11-12 17:17:18 -08:00
sysfs-cfq-target-latency Documentation: Add sysfs ABI change for cfq's target latency. 2012-04-01 14:33:40 -07:00
sysfs-class driver-core: documentation: fix up Greg's email address 2012-02-15 14:48:01 -08:00
sysfs-class-backlight-driver-adp8870 Documentation: Add newline at end-of-file to files lacking one 2012-07-20 23:10:28 +02:00
sysfs-class-backlight-driver-lm3533 backlight: add LM3533 backlight driver 2012-05-29 16:22:29 -07:00
sysfs-class-bdi bdi: allow block devices to say that they require stable page writes 2013-02-21 17:22:19 -08:00
sysfs-class-devfreq PM / devfreq: Add sysfs node to expose available governors 2012-11-20 18:46:24 +09:00
sysfs-class-extcon extcon: fix typos in sys-class-extcon 2012-09-05 12:18:11 -07:00
sysfs-class-lcd video/lcd: document sysfs interface 2009-08-28 15:21:12 -04:00
sysfs-class-led Fix common misspellings 2011-03-31 11:26:23 -03:00
sysfs-class-led-driver-lm3533 leds: add LM3533 LED driver 2012-05-29 16:22:32 -07:00
sysfs-class-mtd Documentation: mtd: amend the sysfs docs after mtdchar merge 2013-04-05 13:19:09 +01:00
sysfs-class-net-batman-adv batman-adv: sysfs documentation should keep alphabetical order 2012-11-21 12:34:50 +01:00
sysfs-class-net-grcan can: grcan: Add device driver for GRCAN and GRHCAN cores 2012-11-15 20:47:26 +01:00
sysfs-class-net-mesh batman-adv: network coding - add the initial infrastructure code 2013-03-13 22:53:48 +01:00
sysfs-class-pktcdvd [PATCH] pktcdvd: cleanup 2007-02-11 10:51:28 -08:00
sysfs-class-power ds2760_battery: Document ABI change 2010-05-19 12:25:39 +04:00
sysfs-class-regulator regulator: core: Support bypass mode 2012-09-10 11:25:10 +08:00
sysfs-class-rtc-rtc0-device-rtc_calibration rtc/ab8500: add calibration attribute to AB8500 RTC 2012-01-10 16:30:52 -08:00
sysfs-class-scsi_host [SCSI] isci: Adding documentation to API change and fixup sysfs registration 2011-08-23 19:54:24 -07:00
sysfs-class-uwb_rc uwb: add basic radio manager 2008-11-19 14:46:33 +00:00
sysfs-class-uwb_rc-wusbhc USB: wusb: add wusb_phy_rate sysfs file to host controllers 2009-12-11 11:55:16 -08:00
sysfs-dev sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor 2008-07-21 21:54:40 -07:00
sysfs-devices driver-core: documentation: fix up Greg's email address 2012-02-15 14:48:01 -08:00
sysfs-devices-edac Edac: Add ABI Documentation for the new device nodes 2012-06-11 13:23:47 -03:00
sysfs-devices-firmware_node ACPI: Add new sysfs interface to export device description 2012-10-06 15:52:16 -04:00
sysfs-devices-lpss_ltr ACPI / LPSS: Add support for exposing LTR registers to user space 2013-03-21 22:45:15 +01:00
sysfs-devices-memory Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
sysfs-devices-mmc mmc: export eMMC4.4 enhanced area details to sysfs 2011-03-15 13:48:01 -04:00
sysfs-devices-platform-_UDC_-gadget USB: gadget: storage: optional SCSI WRITE FUA bit 2010-08-10 14:35:42 -07:00
sysfs-devices-platform-docg3 Documentation: add sysfs entries for mtd docg3 chips 2012-01-09 18:12:17 +00:00
sysfs-devices-platform-sh_mobile_lcdc_fb fbdev: sh_mobile_lcdc: Implement overlays support 2012-06-20 10:02:54 +02:00
sysfs-devices-power Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
sysfs-devices-power_resources_D0 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D1 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D2 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D3hot ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_wakeup ACPI / PM: Expose lists of device wakeup power resources to user space 2013-04-11 22:41:48 +02:00
sysfs-devices-power_state ACPI / PM: Expose power states of ACPI devices to user space 2013-01-24 12:49:59 +01:00
sysfs-devices-real_power_state ACPI / PM: Expose power states of ACPI devices to user space 2013-01-24 12:49:59 +01:00
sysfs-devices-resource_in_use ACPI / PM: Expose current status of ACPI power resources 2013-01-24 12:50:09 +01:00
sysfs-devices-soc Documentation: add information for new sysfs soc bus functionality 2012-02-10 11:42:25 -08:00
sysfs-devices-sun ACPI: create _SUN sysfs file 2012-11-16 02:56:59 +01:00
sysfs-devices-system-cpu Documentation: Add ABI entry for crash_notes and crash_notes_size 2013-03-29 09:17:22 -07:00
sysfs-devices-system-ibm-rtl IBM Real-Time "SMI Free" mode driver -v7 2010-10-21 10:10:46 -04:00
sysfs-devices-system-xen_cpu xen/pcpu: Xen physical cpus online/offline sys interface 2012-07-19 15:51:39 -04:00
sysfs-driver-hid HID: Add HID Report Descriptor to sysfs 2011-02-17 13:23:14 +01:00
sysfs-driver-hid-lenovo-tpkbd HID: Driver for Lenovo Keyboard with Trackpoint 2012-06-08 10:44:10 +02:00
sysfs-driver-hid-logitech-lg4ff misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
sysfs-driver-hid-multitouch HID: multitouch: create sysfs attribute to control quirks from user-space 2011-11-23 14:50:38 +01:00
sysfs-driver-hid-picolcd HID: split picolcd's operation_mode sysfs attribute 2010-04-27 15:31:26 +02:00
sysfs-driver-hid-prodikeys HID: Prodikeys PC-MIDI HID Driver 2010-05-12 15:18:59 +02:00
sysfs-driver-hid-roccat-arvo HID: roccat: Add 'Users:' tag to sysfs documentation 2011-02-03 17:29:49 +01:00
sysfs-driver-hid-roccat-isku HID: roccat: add support for IskuFX 2013-03-14 11:50:49 +01:00
sysfs-driver-hid-roccat-kone Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
sysfs-driver-hid-roccat-koneplus HID: roccat: deprecate some Koneplus attributes 2012-11-12 15:30:28 +01:00
sysfs-driver-hid-roccat-konepure HID: roccat: add support for Roccat Kone Pure gaming mouse 2013-03-14 11:50:49 +01:00
sysfs-driver-hid-roccat-kovaplus HID: roccat: deprecate some Kovaplus attributes 2012-11-12 15:30:29 +01:00
sysfs-driver-hid-roccat-lua HID: roccat: add support for Roccat Lua 2012-10-17 10:44:47 +02:00
sysfs-driver-hid-roccat-pyra HID: roccat: deprecated some Pyra attributes 2012-11-12 15:30:28 +01:00
sysfs-driver-hid-roccat-savu HID: roccat: enable Savu device reset 2012-11-05 13:17:39 +01:00
sysfs-driver-hid-srws1 USB: HID: Steelseries SRW-S1 Add support controlling all LEDs simultaneously 2013-01-31 16:39:32 +01:00
sysfs-driver-hid-thingm HID: add ThingM blink(1) USB RGB LED support 2013-02-19 11:31:46 +01:00
sysfs-driver-hid-wiimote HID: wiimote: Add extension sysfs attribute 2011-11-22 23:09:08 +01:00
sysfs-driver-ppi doc: fix quite a few typos within Documentation 2012-11-19 14:28:24 +01:00
sysfs-driver-samsung-laptop Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2012-03-28 14:20:23 -07:00
sysfs-driver-wacom HID: wacom: OLEDs control over sysfs for Intuos4 2012-08-15 10:29:11 +02:00
sysfs-driver-xen-blkback xen-blkback/sysfs: Move the parameters for the persistent grant features 2013-06-04 15:58:43 -04:00
sysfs-driver-xen-blkfront xen-blkfront: Introduce a 'max' module parameter to alter the amount of indirect segments. 2013-06-04 15:58:35 -04:00
sysfs-firmware-acpi ACPI / hotplug: Introduce user space interface for hotplug profiles 2013-03-04 14:25:32 +01:00
sysfs-firmware-dmi firmware: Fix grammar in sysfs-firmware-dmi doc 2011-04-19 16:45:51 -07:00
sysfs-firmware-gsmi driver: Google EFI SMI 2011-04-29 18:09:34 -07:00
sysfs-firmware-log driver: Google Memory Console 2011-04-29 18:09:34 -07:00
sysfs-firmware-memmap Bernhard has moved 2009-02-18 15:37:56 -08:00
sysfs-firmware-sfi SFI: add sysfs interface for SFI tables. 2010-05-27 12:46:20 -04:00
sysfs-firmware-sgi_uv sysfs: document files in /sys/firmware/sgi_uv/ 2008-09-02 19:21:40 -07:00
sysfs-fs-ext4 ext4: make the zero-out chunk size tunable 2012-08-17 09:54:17 -04:00
sysfs-gpio gpiolib: allow poll() on value 2009-09-23 07:39:48 -07:00
sysfs-i2c-bmp085 drivers/misc: support for the pressure sensor BMP085 from Bosch Sensortec 2010-08-09 20:45:05 -07:00
sysfs-ibft Firmware: add iSCSI iBFT Support 2008-04-19 19:10:28 -07:00
sysfs-kernel-fscaps kernel/ksysfs.c: expose file_caps_enabled in sysfs 2011-04-19 16:45:51 -07:00
sysfs-kernel-iommu_groups iommu: IOMMU Groups 2012-06-25 13:48:15 +02:00
sysfs-kernel-mm mm: create /sys/kernel/mm 2008-07-24 10:47:17 -07:00
sysfs-kernel-mm-hugepages hugetlb: new sysfs interface 2008-07-24 10:47:17 -07:00
sysfs-kernel-mm-ksm ksm: add sysfs ABI Documentation 2013-02-23 17:50:19 -08:00
sysfs-kernel-slab slub: document setting min order with debug_guardpage_minorder > 0 2012-01-12 20:13:04 -08:00
sysfs-kernel-uids Documentation: create new scheduler/ subdirectory 2008-02-07 08:42:17 -08:00
sysfs-memory-page-offline HWPOISON: Add soft page offline support 2009-12-16 12:20:00 +01:00
sysfs-module modules: sysfs - export: taint, coresize, initsize 2012-01-13 09:32:15 +10:30
sysfs-ocfs2 ocfs2: Document /sys/fs/ocfs2 2008-04-18 08:56:07 -07:00
sysfs-platform-asus-laptop Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
sysfs-platform-asus-wmi asus-wmi: enable resume on lid open 2012-07-28 00:11:49 -04:00
sysfs-platform-at91 can: at91_can: make can_id of mailbox 0 configurable 2011-01-24 14:56:37 +01:00
sysfs-platform-eeepc-laptop eeepc-laptop: set the right paths in the documentation 2010-02-28 19:30:57 +01:00
sysfs-platform-ideapad-laptop ideapad: add Lenovo IdeaPad Z570 support (part 3) 2012-08-20 12:44:41 -04:00
sysfs-platform-kim drivers:misc: ti-st: move from rfkill to sysfs 2011-02-04 12:41:20 -08:00
sysfs-platform-msi-laptop msi-laptop: Add missing ABI documentation 2013-02-24 14:49:53 -08:00
sysfs-platform-ts5500 x86: Add TS-5500 platform support 2013-01-25 19:40:23 +01:00
sysfs-power PM / Sleep: add knob for printing device resume times 2012-07-01 13:31:22 +02:00
sysfs-pps LinuxPPS: core support 2009-06-18 13:04:04 -07:00
sysfs-profiling doc: Update the name of profiling based on sysfs 2012-12-03 11:11:51 +01:00
sysfs-ptp ptp: clarify the clock_name sysfs attribute 2012-09-22 15:42:46 -04:00
sysfs-tty uart: add other serial core layer get attributes 2012-10-30 14:05:32 -07:00
sysfs-wusb_cbaf uwb: document UWB and WUSB sysfs files 2008-09-17 16:54:35 +01:00