[Pkg-xen-devel] Bug#586772: Bug#586772: Bug#586772: blktap2 Support

Ian Campbell ijc at hellion.org.uk
Wed Mar 14 13:34:21 UTC 2012


On Thu, 2012-03-08 at 21:03 +0100, Niccolò Belli wrote:
> Il 08/03/2012 18:47, Ian Campbell ha scritto:
> > There was a breakage of the blktap userspace<->  kernel ABI at one
> > point, which might stop 4.1 working with 2.6.32 era kernel wihch might
> > also explain this.
> 
> That may be the problem indeed, the only reason Squeeze didn't get 
> blktap2 was a stupid license issue (stupid because it has been solved 
> but no one cared reverting the "disable blktap2" commit in debian).
> 
> Unfortunately I don't think backporting blktap-dkms will be an easy task:
> 
> DKMS make.log for blktap-2.0.91 for kernel 2.6.32-5-xen-amd64 (x86_64)
> gio  8 mar 2012, 19.48.20, CET
> make: Entering directory `/usr/src/linux-headers-2.6.32-5-xen-amd64'
>    CC [M]  /var/lib/dkms/blktap/2.0.91/build/control.o
>    CC [M]  /var/lib/dkms/blktap/2.0.91/build/ring.o
>    CC [M]  /var/lib/dkms/blktap/2.0.91/build/device.o
> /var/lib/dkms/blktap/2.0.91/build/device.c: In function 
> ‘blktap_device_make_request’:
> /var/lib/dkms/blktap/2.0.91/build/device.c:212: error: ‘REQ_FLUSH’ 
> undeclared (first use in this function)

Hrm, that's unfortunate.

I suspect it wouldn't be that hard for someone to add the necessary
compat #ifdefs etc to allow these modules to build on a variety of
kernels (e.g. a diff vs. the 2.6.32 branch from xen.git would give some
guidance).

Perhaps an alternative solution is to use the blktap driver from the
2.6.32 kernel package but revert 21707:feee0abed6aa from the userspace
side, I think (although I'm not 100% sure[0]) that this is the changeset
which caused the incompatibility.

FWIW the corresponding commit in the xen.git kernel tree seems to be
9ccc03593edcfb70ea846da414d5671952e7e831.

BTW, back in <4F5887CE.3050100 at gmail.com> you said:
        Forget about blktap2 in Squeeze... Unfortunately it doesn't work
        even backporting 4.1.2-3.
I should have asked -- what exactly didn't work, what was the failure
mode? (I'm wondering if my thoughts about this compatibility issue I
mentioned above might have been jumping to a conclusion without
sufficient data?)

Ian.

[0] my memory of the particular issue I'm thinking of is very fuzzy.
I've had a look back over the xen-devel archives to see if it jogged my
memory, but no luck.


> /var/lib/dkms/blktap/2.0.91/build/device.c:212: error: (Each undeclared 
> identifier is reported only once
> /var/lib/dkms/blktap/2.0.91/build/device.c:212: error: for each function 
> it appears in.)
> /var/lib/dkms/blktap/2.0.91/build/device.c: In function 
> ‘blktap_device_configure’:
> /var/lib/dkms/blktap/2.0.91/build/device.c:337: error: implicit 
> declaration of function ‘blk_queue_max_segments’
> /var/lib/dkms/blktap/2.0.91/build/device.c:345: error: implicit 
> declaration of function ‘blk_queue_flush’
> /var/lib/dkms/blktap/2.0.91/build/device.c:345: error: ‘REQ_FLUSH’ 
> undeclared (first use in this function)
> /var/lib/dkms/blktap/2.0.91/build/device.c:353: error: ‘struct 
> queue_limits’ has no member named ‘discard_granularity’
> /var/lib/dkms/blktap/2.0.91/build/device.c:354: error: ‘struct 
> queue_limits’ has no member named ‘discard_alignment’
> /var/lib/dkms/blktap/2.0.91/build/device.c:355: error: ‘struct 
> queue_limits’ has no member named ‘discard_zeroes_data’
> /var/lib/dkms/blktap/2.0.91/build/device.c: In function 
> ‘blktap_device_create’:
> /var/lib/dkms/blktap/2.0.91/build/device.c:562: error: ‘struct 
> queue_limits’ has no member named ‘discard_granularity’
> /var/lib/dkms/blktap/2.0.91/build/device.c:562: error: implicit 
> declaration of function ‘queue_discard_alignment’
> /var/lib/dkms/blktap/2.0.91/build/device.c:562: error: ‘struct 
> request_queue’ has no member named ‘flush_flags’
> make[3]: *** [/var/lib/dkms/blktap/2.0.91/build/device.o] Error 1
> make[2]: *** [_module_/var/lib/dkms/blktap/2.0.91/build] Error 2
> make[1]: *** [sub-make] Error 2
> make: *** [all] Error 2
> make: Leaving directory `/usr/src/linux-headers-2.6.32-5-xen-amd64'
> 
> 
> Niccolò
> 

-- 
Ian Campbell

I prefer the most unjust peace to the most righteous war.
		-- Cicero

Even peace may be purchased at too high a price.
		-- Poor Richard






More information about the Pkg-xen-devel mailing list