Modified Xen Blkbak layer with multiqueue support

Modified Xen Blkback driver providing private queues (per blkback interface) for Xen v3 and v4 for the OnApp Integrated Storage platform.

The need for private block request queues per blkbak interface emerged when using a special Xen virtual machine (VM) as a storage controller for managing storage devices. Serving block requests of a guest VM on top of a storage VM led to deadlocks when blkif requests were managed from one global queue / pool for all Xen guests. Adding private blkbak request pools / queues resolved this issue. Support for this feature has been implemented in later versions of Xen (4.6 or later).

Michail has writen this code while being part of the OnApp Emerging Technologies Group and the module has been used in the OnApp Integrated Storage product, which has been used in production by hundreds of OnApp clouds worldwide.

As a Xen module, the code was open sourced (GPL) and uploaded on Github.

Modified kernel module for Xen blkbk-multiqueue @ Github: https://github.com/flouris/blkback_mq

Also available at OnApp github repo: https://github.com/OnApp/blkback_mq