aboutsummaryrefslogtreecommitdiffstats
path: root/tools/blktap2/drivers/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* tools: remove in tree libaioIan Campbell2013-08-201-7/+0
| | | | | | | | | | | | | | | We have defaulted to using the system libaio for a while now and I din't think there are any relevant distros which don't have it that running Xen 4.4 would be reasonable on. Also it has caused confusion because it is not ever wanted on ARM, but the build system doesn't express that (could be fixed, but deleting is the right thing to do anyway). Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Matt Wilson <msw@amazon.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
* blktap2: Do not build with -O0Keir Fraser2012-05-101-1/+1
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* tools/blktap: reorder MEMSHR_DIR to fix CFLAGSOlaf Hering2012-03-141-3/+2
| | | | | | | | | | | In blktap2 MEMSHR_DIR is used before it is set. This removes the required -D_GNU_SOURCE from CFLAGS, its used as option for -I Fix this by moving memshr related flags to the place where its actually used. The failure is a missing O_DIRECT define. Signed-off-by: Olaf Hering <olaf@aepfle.de> Committed-by: Ian Jackson <ian.jackson.citrix.com>
* Add correct const-ness to memshr tool functionsAndres Lagar-Cavilla2012-01-101-1/+1
| | | | | | | | | | This patch addresses some of the compile and link issues with the memshr module. Signed-off-by: Adin Scannell <adin@scannell.ca> Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com>
* tools: use system installed libaio by default.Ian Campbell2011-11-221-4/+8
| | | | | | | | | | | | | | | | | | | | I could have sworn I did this years ago. IIRC the need for our own copy was due to the use of io_set_eventfd which is not present in version 0.3.106. However it is in 0.3.107 the first version of which was uploaded to Debian in June 2008 (I can't find a better reference for the release date). The necessary version is available in Debian Lenny onwards and is in at least RHEL 6, Fedora 13 and OpenSuSE 11.3. The necessary version appears to not be available in RHEL 5 or SLES 11 which is why I haven't simply nuked the in tree version. This is based on tools-system-libaio.diff from the Debian packaging although I have made it optional (but default on). Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* tools: blktap2: copy xenstore/hashtable.h into blktap2Ian Campbell2011-03-311-2/+0
| | | | | | | | | | | | | hashtable.c has already been copied, forked and modified, there doesn't seem much point in avoiding the same for the header until someone feels motivated to properly refactor. Add comments to the various duplicated files cross-referencing each other for future reference and as a barrier to forking again... Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* tools: consistently use $({CFLAGS,LDLIBS}_libxenctrl) instead of open coding.Ian Campbell2011-03-211-1/+1
| | | | | | Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* tools: do not link against unused libraries.Ian Campbell2011-03-171-12/+8
| | | | | | | | | | | | | | | | | A fair few things under tools link against libraries which they don't even use. Most of this appears to come from copy-and-pasting previous Makefile snippets and cargo-culting plus the tendency to define global $(LIBS) even for Makefiles which build multiple separate utilities or libraries. Identified by comparing a build with --as-needed to one without by looking at the NEEDED header of all ELF objects. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* tools: link each shared library or binary only against the libraries it usesIan Campbell2011-03-171-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular if binary A uses libB and libB uses libC entirely internally then A does not need to link against libC only libB. However when linking binary A the linker does need to have visibility of the libraries which libB links against (libC in this example). For out of tree uses this is achieved without fuss due because the libraries are installed in a standard path. However in the case of in-tree users the linker needs a hint in the form of the -rpath-link option. Therefore a new class of build variable, $(SHLIB_FOO), is introduced which includes the linker options needed to link against a library which uses libFOO. The intention is that $(LDLIBS_bar) will include the $(SHLIB_foo)s which it uses where necessary rather requiring that users are aware of this. For the python extensions this change appears particularly large since previously each of python bindings were linked against the union of all possible libraries used by all bindings instead of just what they individually needed. This change removes a dependency on libdl.so from nearly everything in the system, only libxenctrl actually uses it. In the context of xl/libxl the intention of libxl is to remove any need for a user of libxl to know about libxenstore or libxenctrl, however in the current build it is xl which links against those libraries rather than libxl (which only links against libc). After this change libxl correctly depends on the libraries it uses and xl does not depend on libraries which it is not support to be required to know about. Note that xl does depend on libxenctrl.so since it uses xtl_* directly. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* build: Make XEN_ROOT an absolute path.Keir Fraser2011-03-171-1/+1
| | | | | | | | Otherwise make can search the path relative to certain standard paths such as /usr/include (e.g., the line '-include $(XEN_ROOT)/.config' in Config.mk suffers from this). Signed-off-by: Keir Fraser <keir@xen.org>
* blktap2: Makefiles: delete symlinks and deps during make cleanGianni Tedesco2010-10-281-1/+1
| | | | | Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
* split LDLIBS from LDFLAGS to fix link errors in recent toolchainsStefano Stabellini2010-08-111-6/+6
| | | | | | | | | | | | | | | | Linker command lines are order-sensitive. Move linker options -Lfoo -lfoo from LDFLAGS to LDLIBS and place this new variable after the objects to link. This resolves build errors in xenpagin and blktap with recent toolchains. rename SHLIB_CFLAGS to SHLIB_LDFLAGS rename LDFLAGS_* to LDLIBS_* move LDFLAGS usage after CFLAGS in CC calls remove stale comments in xenpaging Makefile Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
* blktap2: The tap-ctl userspace control utility and library.Keir Fraser2010-06-081-2/+2
| | | | | | | | | | | | | | | | | | Tapdisk control in userspace, a replacement for the original blktap2 control stack, which had to pass a kernel space interface based on sysfs nodes. All tapdisk processes listen for commands on a unix stream socket. The control library supports scanning the socket namespace for running tapdisks, VBD minors allocated, associated images and state inquiry. Control operations include allocating/releasing devices, spawning tapdisks, opening/closing images, attaching disk images to devices. disk pause/resume operations and runtime switching of disk images. Signed-off-by: Jake Wires <jake.wires@citrix.com> Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
* blktap2: Fix tapdisk disktype issues.Keir Fraser2010-06-081-0/+1
| | | | | | | | | Stop coercing drivers/disktype code into the tool stack. Make both blktapctrl and tap-ctl transfer type/path pairs as "<type>:<path>" strings. Remove the message.disktype integer altogether. Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com> Signed-off-by: Jake Wires <jake.wires@citrix.com>
* blktap2: Remove tapdisk-ipc module.Keir Fraser2010-06-081-1/+0
| | | | | | | Obsoleted with blktapctrl. Signed-off-by: Jake Wires <jake.wires@citrix.com> Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
* bltap2: implement md5 directly, to remove ssl dependencyKeir Fraser2010-06-071-12/+1
| | | | Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* blktap2: disable presently broken memshr extensionKeir Fraser2010-02-111-1/+1
| | | | Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
* tools: Do not append trailing slash to XEN_ROOT in MakefilesKeir Fraser2010-02-041-1/+1
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* blktap: make memshr optionalKeir Fraser2010-01-121-1/+7
| | | | | | | | Attached patch makes memshr optional for blktap/blktap2. This fixes build for platforms where memshr isn't build on. While there, make indentation consistent. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
* Reads from read only parent disk images are intercepted, and are used to detectKeir Fraser2009-12-171-1/+2
| | | | | | potentially sharable memory pages. Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
* Generic bi-directional map, and related initialisation functions. At the momentKeir Fraser2009-12-171-4/+7
| | | | | | | | | | | | | a single map is used to store mappings between sharing handles and disk blocks. This is used to share pages which store data read of the same blocks on (virtual) disk. Note that the map is stored in a shared memory region, as it needs to be accessed by multiple tapdisk processes. This complicates memory allocation (malloc cannot be used), prevents poniters to be stored directly (as the shared memory region might and is mapped at different base address) and finally pthread locks need to be multi-process aware. Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
* blktap2: Remove gnu89-inline option from CFLAGSKeir Fraser2009-11-111-2/+1
| | | | | | Not supported by older versions of gcc. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* blktap2: add remus driverKeir Fraser2009-11-091-1/+10
| | | | | | | | Blktap2 port of remus disk driver. Backwards compatable with blktap1 implementation. Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca> Signed-off-by: Brendan Cully <brendan@cs.ubc.ca>
* blktap2: portability fixes for NetBSDKeir Fraser2009-06-231-3/+16
| | | | | | | | | | | | | - Use standard off_t and lseek() instead of non-portable off64_t and lseek64() - Use uuid API as documented in DCE 1.1 RPC specification - Add NetBSD implementation for blk_getimagesize() and blk_getsectorsize() - Use blk_getimagesize() and blk_getsectorsize() - Fix uuid header check Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* blktap: re-enable blktap1 if blktap2 is disabledKeir Fraser2009-06-181-6/+4
| | | | | | | | | | | This patch re-enables a useful blktap1 for users who disable blktap2. Itremoves tapdisk and blktapctrl from blktap2, both of which cause problems with blktap operation. In addition, this patch modifies xend to check for blktap2 installation. If the blktap2 driver isn't running (hopefully because the dom0 kernel option wasn't selected) we fall back to blktap. Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
* blktap2: fix makefile of blktap2Keir Fraser2009-05-281-7/+7
| | | | | | | | | - clean up to use SUBDIRS-y - With parallel make, libvhd might not be created before link. guarantee it. - use LDFLAGS for link which is set by upper level makefiles. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
* blktap2: a completely rewritten blktap implementationKeir Fraser2009-05-261-0/+105
Benefits to blktap2 over the old version of blktap: * Isolation from xenstore - Blktap devices are now created directly on the linux dom0 command line, rather than being spawned in response to XenStore events. This is handy for debugging, makes blktap generally easier to work with, and is a step toward a generic user-level block device implementation that is not Xen-specific. * Improved tapdisk infrastructure: simpler request forwarding, new request scheduler, request merging, more efficient use of AIO. * Improved tapdisk error handling and memory management. No allocations on the block data path, IO retry logic to protect guests transient block device failures. This has been tested and is known to work on weird environments such as NFS soft mounts. * Pause and snapshot of live virtual disks (see xmsnap script). * VHD support. The VHD code in this release has been rigorously tested, and represents a very mature implementation of the VHD image format. * No more duplication of mechanism with blkback. The blktap kernel module has changed dramatically from the original blktap. Blkback is now always used to talk to Xen guests, blktap just presents a Linux gendisk that blkback can export. This is done while preserving the zero-copy data path from domU to physical device. These patches deprecate the old blktap code, which can hopefully be removed from the tree completely at some point in the future. Signed-off-by: Jake Wires <jake.wires@citrix.com> Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>