[GIT PULL] Native Linux KVM tool for 3.1

Pekka Enberg
2011-07-24T20:37:29Z

[-- Attachment #1: Type: TEXT/PLAIN, Size: 59041 bytes --]

Hi Linus,

Please consider pulling from

ssh://master.kernel.org/pub/scm/linux/kernel/git/penberg/linux.git kvm-tool-for-linus

to merge the Native Linux KVM tool to Linux 3.1.

[ The changes to 9p headers were already merged but show up in the pull request. ]

The goal of this tool is to provide a clean, from-scratch, lightweight KVM host
tool implementation that can boot Linux guest images with no BIOS dependencies
and with only the minimal amount of legacy device emulation. The primary focus
of the tool is to Linux but there are already people on working on supporting
GRUB and other operating systems.

We want the tool to be part of Linux kernel source tree because we believe that
‘perf’ clearly showed the benefits of a single repository for both kernel and
userspace components. See Ingo Molnar’s email that started the project for
details:

http://thread.gmane.org/gmane.linux.kernel/962051/focus=962620

The tool has been in -tip for months and Ingo tells me they’ve been using it
for testing and I use it for all kernel development I’ve do. I’ve asked Avi
Kivity privately on his opinion and he doesn’t object to merging the tool.

Features:

- Zero-config userspace networking for guests that have DHCP enabled

- SMP support

- No external BIOS required

- Experimental GUI support with SDL and VNC

- Host filesystem access via 9P/virtio in guest OS

- Raw image support

- Experimental QCOW2 image support (writing is disabled for now, compressed or
copy-on-write images are not supported)

- Host block devices as in-memory copy-on-write guest images on 64-bit hosts

1. To try out the tool, clone the git repository:

git clone git://github.com/penberg/linux-kvm.git

or alternatively, if you already have a kernel source tree:

git remote add kvm-tool git://github.com/penberg/linux-kvm.git
git remote update
git checkout -b kvm-tool kvm-tool/master

2. Compile the tool:

cd tools/kvm && make

3. Download a raw userspace image:

Minimal:

wget http://wiki.qemu.org/download/linux-0.2.img.bz2 && bunzip2 linux-0.2.img.bz2

Debian Squeeze:

wget http://people.debian.org/~aurel32/qemu/i386/debian_squeeze_i386_standard.qcow2

[ as we don’t support writes to QCOW images, you need to convert the image to raw
image with ‘qemu-img’ as follows: ]

qemu-img convert -O raw \
debian_squeeze_i386_standard.qcow2 \
debian_squeeze_i386_standard.raw

4. The guest kernel has to be built with the following configuration:

- For the default console output:
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y

- For running 32bit images on 64bit hosts:
CONFIG_IA32_EMULATION=y

- Proper FS options according to image FS (e.g. CONFIG_EXT2_FS, CONFIG_EXT4_FS).

- For all virtio devices listed below:
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y

- For virtio-blk devices (--disk, -d):
CONFIG_VIRTIO_BLK=y

- For virtio-net devices ([--network, -n] virtio):
CONFIG_VIRTIO_NET=y

- For virtio-9p devices (--virtio-9p):
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_9P_FS=y

- For virtio-balloon device (--balloon):
CONFIG_VIRTIO_BALLOON=y

- For virtio-console device (--console virtio):
CONFIG_VIRTIO_CONSOLE=y

- For virtio-rng device (--rng):
CONFIG_HW_RANDOM_VIRTIO=y

5. And finally, launch the hypervisor:

./kvm run -d linux-0.2.img

or

./kvm run -p “root=/dev/vda1” -d debian_squeeze_i386_standard.raw

[ keymap loading takes a while, use ctlr-c if you are inpatient.
You can login with root/root to the guest and use ‘reboot’ to exit. ]

Pekka

The following changes since commit b6844e8f64920cdee620157252169ba63afb0c89:
Linus Torvalds (1):
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

are available in the git repository at:

ssh://master.kernel.org/pub/scm/linux/kernel/git/penberg/linux.git kvm-tool-for-linus

Amerigo Wang (2):
kvm tools: build rbtree.o from source
kvm tools: implement "help xxx" command

Amos Kong (4):
kvm tools: Make virt_queue__available return false if queue is not initialized
kvm tools: Add a script to setup private bridge
kvm tools: Add a script to setup tap device
kvm tools: Setup bridged network by a script

Aneesh Kumar K.V (17):
tools/kvm/9p: Add support for multiple 9p export dirs
tools/kvm/9p: Always include system header before kernel headers
tools/kvm/9p: Use the same #define as the kernel
tools/kvm/virtio: Add new iov helper
tools/kvm/9p: Don't follow symlink on server
tools/kvm/9p: Fix the pdu len.
tools/kvm/9p: Simplify the handler
tools/kvm/9p: check the iov count with the read/write count
tools/kvm/9p: Add error protocol reply
tools/kvm/9p: Make the 9p handler void return
tools/kvm/9p: Add error handling
tools/kvm/9p: Add encode/decode routines for protocol data
tools/kvm/9p: return EOPNOTSUPP if the handler is not implemented
kvm tools, 9p: Add error handling to protocol handlers
kvm tools, 9p: WSTAT don't use open fid
net/9p: Remove structure not used in the code
tools/kvm: Use kernel header version of net/9p/9p.h

Anton Vorontsov (1):
kvm tools: Fix broken terminal when kvm exits because of a signal

Asias He (115):
bios: No new line at EOF nit fix
kvm: remove unneccessary iotcl parameter
kvm__init: the kernel should support irq and pit
kvm: reimplement kvm__setup_sregs
kvm: kvm__setup_sregs initialize more registers
early_printk.c: add rep/outsb support
kvm__setup_sregs: fix indentation
kvm, test: add PIT 8254 and PIC 8259 test code
kvm, test: add a counter to tick test in ISR
kvm: Check vmx capability using cpuid
kvm__setup_cpuid: use KVM_GET_SUPPORTED_CPUID to simplify cpuid setup
kvm, pci: fill up virtio device configuration header
kvm: Add cscope target to Makefile
virtio: capacity should be in 512-byte sectors
kvm,virtio: move SECTOR_SHIFT and SECTOR_SIZE to disk-image.h
kvm,virtio: do not publish read only feature to guest
kvm: Add rw to default kernel command line parameters
kvm,virtio: add scatter-gather support
kvm,virtio: add scatter-gather support v2
kvm tools: add README
kvm tools: remove KVM_EXIT_INTERNAL_ERROR
kvm tools: Cleanup IO space and PCI magic numbers
kvm tools: Add helper functions for virtqueue code
kvm tools: Move terminal related code to a new file term.c
kvm tools: Make 8250 serial use infrastructure provided by term.c
kvm tools: Virtio console support
kvm tools: Introduce --enable-virtio-console option
kvm tools: Rename struct device to struct blk_device for block devices
kvm tools: Introduce virtio.c and virtio.h
kvm tools: Unify virtio code file names
kvm tools: Drop virt_queue__get_used_elem virtio helper
kvm tools: Use virt_queue__get_iov to simpify virtio blk IO handler
kvm tools: Make virtio console device code thread-safe
kvm tools: Remove unnecessary goto label out_unlock
kvm tools: Exit KVM session on Ctrl+a and 'x'
kvm tools: Replace option --enable-virtio-console with --console
kvm tools: Fix virtio console PCI class number and device ID number
kvm tools: Fix lock imbalance in virtio_console_pci_io_out()
kvm tools: Use IRQ pin 2 for virtio console
kvm tools: Implement virtio network device
kvm tools: Fix virtio console input problem
kvm tools: Implement virtio net TSO/UFO support
kvm tools: Respect ISR status in virtio header
kvm tools: Respect VRING_AVAIL_F_NO_INTERRUPT
kvm tools: Use virt_queue__trigger_irq() to trigger IRQ for virtio console
kvm tools: Use virt_queue__trigger_irq() to trigger IRQ for virtio blk
kvm tools: Use virt_queue__trigger_irq() to trigger IRQ for virtio rng
kvm tools: Fix virtio console hangs by removing IRQ injection for tx path
kvm tools: Bring VIRTIO_BLK_F_SEG_MAX feature back to virtio blk
kvm tools: Tune the command-line option
kvm tools: Move disk image related code under disk directory
kvm tools: Rename disk-image.c to core.c
kvm tools: Split raw image and blk device code from disk/core.c
kvm tools: Rename disk_image__{read, write}_sector_iov
kvm tools: Remove dead coe disk_image__{read, write}_sector
kvm tools: Consolidate disk_image__{new, new_readonly}
kvm tools: Split blk device code from raw.c to blk.c
kvm tools: Tune up ops in 'struct disk_image_operations'
kvm tools: Rename struct disk_image_operations ops name for raw image
kvm tools: Rename raw_image_ops to blk_dev_ops
kvm tools: Remove unnecessary S_ISBLK check
kvm tools: Do not use 'inline' for disk_image__flush
kvm tools: Add debug info for disk_image__{read, write}
kvm tools: Print debug info for qcow1_nowrite_sector
kvm tools: Update README
kvm tools: Introduce ethernet frame buffer system for uip
kvm tools: Add ARP support for uip
kvm tools: Add IPV4 support for uip
kvm tools: Implement IP checksum for uip
kvm tools: Add ICMP support for uip
kvm tools: Introduce struct uip_udp to present UDP package
kvm tools: Introduce struct uip_pseudo_hdr to present UDP pseudo header
kvm tools: Introduce struct uip_udp_socket
kvm tools: Add two helpers to return UDP {header, total} length
kvm tools: Add helper to return ethernet header length
kvm tools: Implement uip_csum_udp() to calculate UDP checksum
kvm tools: Add UDP support for uip
kvm tools: Introduce struct uip_tcp to present TCP package.
kvm tools: Introduce struct uip_tcp_socket
kvm tools: Add helpers to return TCP {header, total, payload} length
kvm tools: Add helper to return start address of TCP payload
kvm tools: Add helpers to test whether SYN or FIN bit is set.
kvm tools: Add helper to allocate and get TCP initial sequence number
kvm tools: Implement uip_csum_tcp() to calculate TCP checksum
kvm tools: Add TCP support for uip
kvm tools: Introduce uip_init() for uip
kvm tools: Introduce uip_tx() for uip
kvm tools: Introduce uip_rx() for uip
kvm tools: Add MACRO for user and tap mode for virtio net
kvm tools: Reanme net_device to net_dev
kvm tools: Introduce -net {user, tap, none} options for virtio net
kvm tools: Change default guest MAC address to 00:15:15:15:15:15
kvm tools: Make virtio net work with user mode network
kvm tools: Make default network mode to user mode
kvm tools: Make default host ip address to 192.168.33.1
kvm tools: Introduce struct net_dev_operations
kvm tools: Make virtio net work on older kernels
kvm tools: Move uip to net directory
kvm tools: Introduce uip_udp_make_pkg()
kvm tools: Introduce struct uip_dhcp
kvm tools: Add helper to tell if a UDP package is a DHCP package
kvm tools: Add helpers to tell the type of a DHCP message
kvm tools: Get domain name and nameserver from host
kvm tools: Fill DHCP options with domain name and DNS server IP
kvm tools: Fill all DHCP options
kvm tools: Introduce uip_dhcp_make_pkg()
kvm tools: Introduce uip_tx_do_ipv4_udp_dhcp()
kvm tools: Get DNS information from host in uip_init()
kvm tools: Handle DHCP package in gernal UDP processing path
kvm tools: Introduce --guest-ip option
kvm tools: Introduce --host-mac option
kvm tools: Rename --host-ip-addr to --host-ip
kvm tools: Initialize MAC address for virtio net properly
kvm tools: Initialize MAC and IP address for uip properly
kvm tools: Add '-Wunused-result' to WARNINGS

Cyrill Gorcunov (108):
Add utility functions
Don't die on old kernels without single-step debug support
Makefile: Add CPPFLAGS handling
Add info() helper
kvm: load_bzimage: Proper check for number of setup sectors
kvm: Use 64 bit names when showing registers
kvm: Fixup boot selector
kvm: Add --kernel parameter handling
kvm: Add --params option
kvm: Introduce IVT handling
kvm: Setup fake IVT table
kvm: Fill up fake IVT
kvm: Rename ivt_ prefixed entities
kvm: Put fake bios interrupt handlers into known memory area
bios: Add simple bin2c converter
interrupt: Add interrupt_table__set helper
kvm: Introduce kvm__dump_mem helper
interrupt: Move bios related constants to kvm/bios.h
bios: Add bios stubs generated from assembly files
kvm: Add copying of kernel command line into guest memory
kvm: Update command line related enitites in boot parameters
kvm: Reference to undefined variable
kvm: Make command line to be placed at predefined address
ioport: Make all PIT channels being dummy
kvm: Add more default kernel command line parameters
kvm: Kill the bin2c helper
Makefile: Add cpu specific definition
kvm: Command line update must honor ABI
kvm: Set more fields in boot protocol
kvm: Don't touch 64 bit specific MSR registers on 32 bit
Change __x86_x__ to CONFIG_X86_X
kvm: Print error code on unknown error
kvm: Use PRIx qualificator for printf
kvm: Use strlcat helper for copying cmdline params
kvm: Check for required KVM extensions in one place
kvm: Append missing ending space for built-in command line
kvm: The command line storage should not be too short
early_printk: Simplify the code
tests/pit: Issue cli on ISR handling
test/pit: Fill up IDT with noop handler
kvm: Check for HTL extension granted
tests/pit: Increase PIT frequency up to 1KHz
kvm: Add force exit from tests
kvm, tests: Use motherboard specific ports for testing
kvm, cpuid: Fix XSTOR and VMX compatibility in cpuid
kvm: KVM_CAP_EXT_CPUID is required
kvm, cpuid: Fill up func 0 and 4
kvm, cpuid: Use logical AND on bit ops
kvm: Check for SVM extension being supported for AMD cpus
kvm, bios: Get rid of buggy int10 handler
Exclude .cscope from .gitignore
kvm, bios: Rework BIOS setup
bios: Don't clobber 32bit registers
bios: No need for sti at int15 irq exit
kvm: Add --mem= option
kvm, bios: BIOS code redesign
kvm, bios: Make e820 map to look similar the real one
bios: clean predefined bios area early
pci: Use proper PCI port names
pci: Fix typo in previous commit
kvm, pci: Return "no device" by default
kvm, pci: Add dummy virtio device for probing
kvm, pci: Add bus forwarding register
kvm, pci: Fix offset for pci CONFIG_DATA ioport
kvm, pci: Claim virtio device ioport in pci header
kvm: Support loading initrd image
kvm: Add virtio_ring.h to tree
kvm: Add virtio_blk.h to tree
kvm: Don't forget to close initrd file
bios: Get rid of redundant ops
bios: Use proper grep syntax
kvm: Setup disk geometry if needed
virtio-blk: Leave disk geometry to compute in kernel
make: Add TAGS, tags targets and tune cscope
kvm: save/restore std ttys
8250-serial: Simplify is_readable function
8250-serial: Use linux/serial-reg.h with predefined constants
8250-serial: Make transmitter being always ready to send data
8250-serial: Emulate 8250 behaviour on autoprobing
virtio, block: Rename IOPORT_VIRTIO to IOPORT_VIRTIO_BLK
kvm tools: Setup BIOS for both bzImage and flat image
kvm tools: Remove useless empty lines for a call series in kvm__reset_vcpu
kvm tools: Separate BIOS specifics into own file
kvm tools, bios: Introduce bioscall specificator
kvm tools: Use static assignment for default RAM size
kvm tools: Add --cpus parameter
kvm tools: Update documentation
kvm tools: Add missing space before root= option
kvm tools: Use non shared pin/irqs for virtio devices
kvm tools: Add MP tables support
kvm tools: Use system wide msr-index.h instead of own definitions
kvm tools: Add NR_CPUS definition in case of non-configured kernel sources
kvm tools: Gather Virtio-PCI constants into one place
kvm tools: Fix up PCI pin assignment to conform specification
kvm tools: Fix up mtable srcbusirq assignment for PCI devices
kvm tools: Add debug() helper
kvm tools: Prefix error() and friends helpers with pr_
kvm tools: Add conditional compilation of symbol resolving
kvm tools: Fix alignment for mpf_intel table
kvm tools, 9p: Test for tuncation result
kvm tools: Print out a warning on io-port re-registration
kvm tools: Drop unused vars from int10.c code
kvm tools: Options parser to handle hex numbers
kvm tools: Introduce vidmode parmeter
kvm tools: Delete dangling cursor from int10
kvm tools: Get rid of spaces in ld script
kvm tools: Reform bios make rules
kvm tools, bios: Make sure IRQ handlers segment is properly set

David Ahern (1):
kvm tools: do not append root=/dev/vda if passed via command line

Emil Renner Berthing (1):
kvm tools: Update README with instructions for Arch Linux

Giuseppe Calderaro (2):
kvm tools: Fix compilation issue in virtio-blk.c
kvm tools: Remove unused handle_sigint() function

Ingo Molnar (11):
kvm tools: Emit a more informative error message when /dev/kvm does not open
kvm tools: Fix segfault when running 'kvm' without a disk image
kvm tools: Indicate the end of a KVM session
kvm tools: Fix 64-bit assumptions and type uglinesses
kvm tools: Fix 32-bit build of the asm/system.h include
kvm tools: Enable earlyprintk=serial by default
kvm tools: Fix and improve the CPU register dump debug output code
kvm tools: Dump vCPUs in order
kvm tools: Use standardized style for the virtio/net.c driver
kvm tools: Fix type mismatches on GCC 4.4 on 32-bit systems
kvm tools: Fix virtio net build breakage on 32-bit

John Floren (6):
kvm tools: Add BIOS INT10 handler
kvm tools: Add video mode to kernel initialization
kvm tools: Add VESA device
kvm tools: Update makefile and feature tests
kvm tools: Initialize and use VESA and VNC
kvm tools: Add support for PS/2 keyboard system

Konstantin Khlebnikov (1):
kvm tools: fix instances enumeration

Paul Bolle (1):
kvm tools: Fix compilation on x86_64

Pekka Enberg (309):
Initial commit
Check for KVM_API_VERSION at init
Add .gitignore file
Create a VM using ioctl(KVM_CREATE_VM)
Move KVM fds into 'struct kvm'
Check for KVM_CAP_USER_MEMORY
Clean up KVM initialization
Initialize KVM some more
Set up TSS address to make vcpu creation work
Clean up struct kvm file descriptor names
Mmap the kvm_run structure
Move CPU emulation code to cpu.c
Load kernel image to the VM
Initial version of kernel image loading
Initialize guest memory region properly
Load bzImage to guest RAM
Update .gitignore to include object files
Dump registers after KVM_RUN returns
Initialize RIP before starting to run the guest
Print out constant names for KVM exit reasons
Show dump of executed code at KVM exit
Fix guest code printout
Setup rflags properly to fix EXIT_UNKNOWN
Fix up rflags printing
Dump KVM_EXIT_IO details
Move KVM_SET_REGS to kvm__reset_vcpu()
Enable KVM guest single-stepping
Separate KVM code from the main loop
Setup segmentation for the guest
Fix LDT descriptor type for KVM_SET_SREG
Improve KVM register dump output
Fix up 'ip' in kvm__reset_vcpu() to take real mode into account
Print 'avl' bits of a segment
Add a simple "kernel" binary that can be used for testing
Add support for loading flat binaries
kvm: Load bzImage real-mode boot sector and setup code
kvm: Fix bzImage setup sector default count
kvm: Read the whole bzImage to memory
kvm: Hardcode a "reset vector" at f000:fff0
kvm: Add some single-step debugging and don't stop running
kvm: Clean up reset vector setup code
kvm: Document the 'reset vector' hack
kvm: Enable 'interrupt request window'
Revert "kvm: Enable 'interrupt request window'"
kvm: Fix setup size calculation
kvm: Remove 'reset vector' hack
kvm: Fix kernel boot IP
kvm: Load kernel at 0x1000
kvm: Setup stack for the kernel
kvm: Introduce host_real_to_guest() helper function
kvm: Rename interrupt emulation source files
kvm: Clean up kvm/interrupt.h a bit
kvm: Remove unnecessary includes from interrupt.c
kvm: Move interrupt table to struct kvm
kvm: Clean up interrupt_table__setup()
kvm: Move util.h to include/kvm directory
kvm: Introduce --single-step command line option
kvm: Setup CPUID for the guest
kvm: Enable GCC debugging information
kvm: Extract CPUID code into its own file
kvm: Extract ioport emulation code to its own file
kvm: Don't abort guest on KVM_EXIT_IO
kvm: Add simple NMI enable/disable support
kvm: Remove unused cpu.c file
kvm: Setup guest FPU state
kvm: Ignore math co-processor reset I/O writes
kvm: Ignore PIC init during boot
kvm: Fix protected mode code dump
kvm: Free memory on exit
kvm: Clean up Makefile output
kvm: Add test binaries to .gitignore
kvm: Clean up kvm__reset_vcpu() function
kvm: Setup VCPU MSRs
kvm: Add .gitignore for bios build files
kvm: Show gdt and idt registers
kvm: Dump stack on KVM oops
kvm: Dump page tables at exit
kvm: Set up MAXPHYADDR guest CPUID
kvm: Don't crash debug dump if address isn't in guest memory
kvm: Ignore PCI config space accesses
kvm: Ignore MMIO accesses
kvm: Ignore PIC accesses
kvm: Ignore CMOS RAM/RTC ioports
kvm: Ignore CRT control ioports
kvm: Ignore dummy delay ioport
kvm: Ignore PIT ioports
kvm: Ignore keyboard controller ioports
kvm: Fix off-by-one bugs in kvm__setup_cpuid()
kvm: Fix minor formatting glitch in cpuid.c
kvm: Add support for early serial printk
kvm: Force 'notsc' and 'earlyprintk' kernel parameters
kvm: Clean up early serial code
Merge branch 'master' of git://github.com/cyrillos/vm
kvm: Dump state on SIGQUIT
kvm: Flush stdout for early printk
kvm: Fix .gitignore patterns
kvm, test: Move PIT tests to separate directory
kvm: Add Makefile for compiling all test cases
kvm: Add .gitignore for tests
kvm, test: Improve PIT test output
kvm: Add 'check' target to Makefile
kvm: Use 'nopci pci=off' kernel parameters by default
kvm: Cleanup command line parsing
kvm: Cleanup ioport_ops table
kvm: Add proper 00E0 ioport handling
kvm: Add '--params' to usage
kvm: Don't stop on ioport errors by default
kvm: Fix compilation warning
kvm: Introduce 'make devices' target
kvm: Introduce '--kvm-dev' command line option
kvm: Cleanup kvm__cpu_supports_vm()
kvm: Cleanup struct boot_params setup
kvm: BIOS E820 memory map emulation
kvm: Use -Os optimization for GCC
kvm: Fix VM support check for unrecognized CPUs
kvm: Check for read() return value in load_bzimage()
kvm: Fix usage command line format
kvm: Fix load_bzimage for flat binaries
kvm: Use 32-bit operand size prefix for rdfs8()
kvm: Use -Werror for building the thing
kvm: Remove unused outb() function from e820.c
kvm: Cleanup BIOS setup code
kvm: Use sizeof instead of magic number
kvm: Clear performance monitoring CPUID flags
kvm: Update bios .gitignore list
kvm: Fix Makefile header dependencies
kvm: Clean header dependency files
kvm: Exclude BIOS object files from header deps
kvm: Use proper segment + offset in e820 bios
kvm: Add some more ioport emulation
kvm: Enable Linux kernel PCI probing
kvm: Force PCI Configuration Mechanism 1
kvm: Initial PCI probe emulation
kvm: Add PCI CONFIG_ADDRESS register layout
kvm, pci: Fix device probe accesses
kvm: Fix PCI config space emulation
kvm, pci: Don't calculate offset twice
kvm, pci: Fix unaligned PCI accesses
kvm: Kill virtio debugging code
kvm: Add KVM ABI headers
Merge branch 'master' of git://github.com/cyrillos/vm
kvm: Fix unaligned PCI_CONFIG_ADDRESS accesses
kvm: Extract virtio-blk driver to separate file
kvm: Update .gitignore to ignore tags
kvm: Add port range to ioport__register()
kvm: Add virtio PCI ioport handler stubs
kvm: Fail virtio blk ioports by default
kvm: Virtio block device emulation
kvm: Fix kernel loading error messages
kvm: Fix virtio block PCI device IRQ configuration
kvm: Implement "host features" for virtio blk device
kvm: Cleanup virtio block device I/O functions
kvm: Don't use VIRTIO_BLK_F_SEG_MAX in the hypervisor
kvm: Remove bogus #include directive
Revert "kvm: Fix virtio block PCI device IRQ configuration"
kvm: Implement virtio blk device config space
kvm: Make virtio block device read-only
kvm: Add ->queue_selector and ->queue_pfn to struct device
kvm: Implement virtqueues for virtio block device
kvm: Implement virtio blk device vring lookup
kvm: Kill stale interrupt configuration comment
kvm: Add support for disk images
kvm: Use disk image API from virtio block device
kvm: Cleanup disk geometry setup code
kvm: Introduce a list of known BUGS
Merge branch 'master' of git://github.com/cyrillos/vm
kvm: Enable virtio block device if disk image specified
kvm: Improve kvm__init() error message
kvm: Fail if user specifies a QCOW disk image
kvm: Fix virtqueue ring index check
kvm: Fix virtio block device support some more
kvm: Support MSR register for serial console
kvm: Kill debug logging from blk-virtio.c
kvm: Implement virtio block device write support
kvm: Redirect serial console to stdout, not stderr
kvm: Improve 8250 serial console support
kvm: Fix magic numbers in 8250 support
kvm,serial: Enable THRI bit in IIR register
kvm: Implement support interrupt injection
kvm: Rename early_printk.c to 8250-serial.c
kvm,8250: Inject interrupts to guest
kvm: Use serial console by default
kvm,8250: Implement serial input support
kvm: Put terminal in canonical mode
Merge branch 'master' of /home/penberg/kvm into kvm/core
kvm: Use disk name for mounting root
kvm: Improve 8250 serial console interrupt handling
kvm: Support for more than one serial ttys
kvm,8250: Make ttyS1 and ttyS2 disabled
kvm,8250: Fix "too much work for irq4" problems
kvm,8250: Fix ->counter clearing
kvm,8250: Cleanup receive emulation
kvm,8250: Implement missing register emulation
kvm,serial: Implement 16550A FIFO support
kvm: Cleanup interrupt timer logic
Revert "kvm,virtio: add scatter-gather support"
kvm: Remove duplicate headers
kvm tools: Cleanup termios handling
kvm,8250: Fix device initial state
kvm tools: Cleanup virtqueue handling
tools/kvm: Exit gracefully upon KVM_EXIT_SHUTDOWN
kvm tools, 8250: Don't set the UART_LSR_OE bit
kvm tools: Fix large disk images on 32-bit
kvm tools: Fix E820 map on x86-64
kvm tools: Fix required boot protocol version
tools kvm: Fix missing ARCH define on 32-bit in Makefile
kvm tools: Cleanup strstr() in expression
kvm tools: Cleanup virtio block device configuration
kvm tools: Cleanup disk image code
kvm tools: Drop hard-coded 'nosmp' kernel parameter
kvm tools: Use STDIN_FILENO instead of fileno(stdin)
kvm tools: Use pread() and pwrite() in disk-image.c
kvm tools: Don't exit() on SIGQUIT
kvm tools: Send SysRq-P to guest kernel on SIGQUIT
Merge branch 'kvm/gitish' into kvm/core
kvm tools: Fix .gitignore after Gitification merge
kvm tools: Cleanup virtio_blk_do_io_request I/O error handling
kvm tools: Make code mostly checkpatch clean
kvm tools: Introduce KVM VCPU data structure
kvm tools: Make 8250 code thread-safe
kvm tools: Make virtio block device code thread-safe
kvm tools: Extract kvm_cpu__start() function
kvm tools: Move CPU initialization to kvm_cpu__start()
kvm tools: Fix pthread mutex error checks
kvm tools: Use per-VCPU threads for execution
kvm tools: Fix 'kill -3' to send SysRq-P to the guest
kvm tools: Use mutex_lock() and mutex_unlock() wrappers
kvm tools: Remove the BUGS file
kvm tools: Use ioport__register() for legacy devices
Revert "kvm tools: Use mmap by default for disk images"
kvm tools: Use host kernel image by default
kvm tools: Don't override kernel image passed by user
kvm tools: Add read-only support for block devices
kvm tools: Cleanup qcow1_read_sector() function
kvm tools: Untangle qcow1_read_sector() function
kvm tools: Kill redundant assignment in qcow1_read_cluster()
kvm tools: Fix qcow1_read_cluster() return value on error
kvm tools: Add read-only support for QCOW2 images
kvm tools: Show KVM state on SIGQUIT
kvm tools: Fix disk image double-free on KVM panic
kvm tools: Emulate RTC to fix system time in guests
Revert "kvm tools: Use threadpool for virtio-net"
kvm tools: Fix virtio rng build breakage
kvm tools: Move virtio drivers under virtio directory
kvm tools: Cleanup virtio code some more
kvm tools: Scale guest RAM size by CPU count
kvm tools: Limit CPU count by KVM_CAP_NR_VCPUS
kvm tools: Don't use all of host RAM for guests by default
kvm tools: Warn if guest RAM size exceeds host RAM size
kvm tools: Fix 'kill -3' hangs
kvm tools: QCOW code cleanups
kvm tools: Use '-c' for '--cpus', not '--console'
kvm tools: Print out important command line options at startup
kvm tools: Fix read-only support in QCOW
kvm tools: Fix typo in converting bytes to MBs
kvm tools: Lookup symbol based on RIP for 'kill -3'
kvm tools: Fix includes for preadv/pwritev
kvm tools: Make host_ram_size() more robust
kvm tools: Fail if passed initrd is not really an initrd
kvm tools: Move hardware drivers to hw directory
kvm tools, serial: Register 0x2e8 ioport
kvm tools: Don't register dummy ops for serial ports
kvm tools: Drop dummy PCI ioport registrations
kvm tools: Code cleanups to hw/vesa.c
kvm tools: Use more readable name for ioport mutex
kvm tools: Fix up common QCOW function names
kvm tools: Add 'kvm debug' command
kvm tools: Use constants for i8042 register numbers
kvm tools, i8042: Sort status register bits
kmv tools, i8042: Use kernel status register bit names
kvm tools, i8042: Use kernel command names
kvm tools, i8042: Fix device init failure
kvm tools, ui: Add framebuffer infrastructure
kvm tools, ui: Move VNC specific framebuffer code to ui/vnc.c
kvm tools, ui: Add support for SDL framebuffer output target
kvm tools, vesa: Cleanup code in bios/int10.c
kvm tools, vesa: Fix 'ah' access in int10_vesa()
kvm tools, vesa: Use guest-mapped memory for framebuffer
kvm tools: Kill libvnc dependency from hw/i8042.c
kvm tools, ui: Add simple keyboard support to SDL UI
kvm, ui: Kill fb_write() function
kvm tools: Makefile cleanups
kvm tools: Add WERROR to Makefile for disabling -Werror
kvm tools: Fix 'kvm run' on 32-bit machines with >2 GB of RAM
kvm tools, qcow: Use fdatasync() instead of sync_file_range()
kvm run: Add 'panic=1' to default kernel options
Merge commit 'v3.0-rc5' into kvm/core
kvm tools: Fix guest single-stepping setup
kvm tools: Don't sort command-list.txt for help text
kvm tools: Add KVMTOOLS-VERSION-FILE to .gitignore
kvm tools, qcow: Rename struct qcow_l2_cache to struct qcow_l2_table
kvm tools, qcow: Use 'struct qcow_l2_table' instead of untyped array
kvm tools, qcow: Fix locking issues
kvm tools, qcow: Introduce qcow_disk_flush()
kvm tools, qcow: Delayed L1 table writeout
kvm tools, qcow: Don't fdatasync() L2 table writeout
kvm tools, qcow: Use big endian order for L2 table entries
kvm tools, qcow: Delayed L2 table writeout
kvm tools, qcow: Flush only dirty L2 tables
kvm tools, qcow: I/O error on compressed sectors
kvm tools: Use writev() in xwritev()
kvm tools, qcow: Fix copy-on-write image corruption
kvm tools: Rename 'struct qcow_table' to 'struct qcow_l1_table'
kvm tools, qcow: Unify L1 and L2 variable names
kvm tools: Fix formatting in include/kvm/qcow.h
kvm tools, qcow: Move L2 cache to 'struct qcow_l1_table'
kvm tools, qcow: Rename L2 table lookup functions
kvm tools, qcow: Force read-only mode for QCOW images
Merge branch 'kvm/core' into kvm-tool-for-linus

Prasad Joshi (29):
kvm tools: Fix KVM problem on SuSe 2.6.37 kernel
kvm tools: Generate list of common kvm tool commands
kvm tools: Use code from perf for argument processing
kvm tools: Provide the basic Gitish framework
kvm tools: Use the Gitish freamwork to run the virtual machine
kvm tools: Fix a possible segfault if raw_image__probe returns NULL
kvm tools: Avoid using disk_image->priv member in disk_image__new()
kvm tools: add a close method for raw_image_ro_mmap_ops
kvm tools: Add QCOW version 1 read-only support
kvm tools: Use the readily built kernel with 'kvm run' if not specified explicitly
kvm tools: Fix function names in qcow.c
kvm tools: Avoid byte-order conversion during each read operation
kvm tools: Free l1_table in qcow1_disk_close() and in error path of qcow1_probe()
kvm tool: Remove the __stringify*() definition from util.h
kvm tool: Change the type of QCOW table index and offset variables to u64
kvm tools: check the cluster boundary in the qcow read code
kvm tools: Correct a variable naming spelling mistake
kvm tools: Use the root partition of the host to boot the guest machine
kvm tools: check read permission before using the root partition of the host to boot VM
kvm tools: display appropriate error message when default kernel image could not be found
kvm tools: fix a memory leak in qcow2_read_header
kvm tools: Add QCOW write support
kvm tools: Add VIRTIO_BLK_T_FLUSH feature to handle flush operation from VM
kvm tools: Add a wrapper function to open disk images
kvm tools: Close the disk images after the guest shuts down
kvm tools: Add a wrapper function to initialize all virtio block devices
kvm tools: Release memory allocated during virtio block initialization
kvm tools: Add QCOW level2 caching support
kvm tools: Add IO delay option

Sasha Levin (127):
kvm tools: Free memory and FDs on exit
kvm tools: Fix input hang when compiling without optimization
kvm tools: Close kernel FD after loading it into memory
kvm tools: Use mmap by default for disk images
kvm tools: Add option to load disk image read only
kvm tools: Add OPT_GROUP to cmdline parser
kvm tools: Arrange cmdline help menu
kvm tools: Set up tun interface using ioctls
kvm tools: Make host side IP configurable
kvm tools: Organize net parameters into struct
kvm tools: Enable network by default
kvm tools: Add option to specify guest MAC
kvm tools: Rename raw_image__close_sector_ro_mmap
kvm tools: Fix leak in QCOW
kvm tools: Add scatter-gather variants of IO functions
kvm tools: Add scatter-gather support for disk images
kvm tools: Rename _sg to _iov and remove dead code
kvm tools: Fix iov shifting
kvm tools: Fix possible leak in disk_image
kvm tools: Use threading for virtio block devices
kvm tools: Use mmap to allocate guest RAM
kvm tools: Fix possible leak in qcow
kvm tools: Prevent duplicate definitions of ALIGN
kvm tools: Add kernel headers required for using list
kvm tools: Introduce generic I/O thread pool
kvm tools: Use threadpool for virtio-blk
kvm tools: Use threadpool for virtio-console
kvm tools: Use threadpool for virtio-net
kvm tools: Modify thread pool API
kvm tools: Lock job_mutex before signalling
kvm tools: Introduce virtio-rng
kvm tools: Add cmdline switch to enable virtio-rng
kvm tools: Drop ALIGN from bios.h
kvm tools: Fix virt_queue__set_used_elem
kvm tools: Move disk_image into virtio-blk
kvm tools: Add support for multiple virtio-blk
kvm tools: Add cmdline options for loading multiple images
kvm tools: Abolishment of uint*_t types
kvm tools: virtio-blk code cleanup
kvm tools: virtio-console code cleanup
kvm tools: virtio-net code cleanup
kvm tools: virtio-rng code cleanup
kvm tools: Fix loading root device as image
kvm tools: Enable SMP support
kvm tools: Simplify search for root device
kvm tools: Introduce IRQ registry
kvm tools: Dynamically add devices when creating mptable
kvm tools: Convert virtio devices to use IRQ registry
kvm tools: Rename pci_device to pci_hdr for clarity
kvm tools: Add missing space after kernel params
kvm tools: Add memory gap for larger RAM sizes
kvm tools: Prevent PFN wraparound
kvm tools: Use definitions from kernel headers
kvm tools: Rename 'self' variables
kvm tools: Use constants for commonly used mmap flags
kvm tools: Add boot test to checks
kvm tools: Return correct values from disk IOV functions
kvm tools: Add interval red-black tree helper
kvm tools: Add MMIO address mapper
kvm tools: Use virtio IDs from <linux/virtio_ids.h>
kvm tools: Exit properly on SMP guests
kvm tools: Default guest cpu count to host cpu count
kvm tools: Copy net/9p/9p.h
kvm tools: Add virtio-9p
kvm tools: Cleanup e820 code
kvm tools: Fix rbtree-interval balancing
kvm tools: Modify ioport to use interval rbtree
kvm tools: Add optional parameter used in ioport callbacks
kvm tools: Add basic ioport dynamic allocation
kvm tools: Use ioport context to control blk devices
kvm tools: Add support for multiple virtio-rng devices
kvm tools: Use dynamic IO port allocation in vesa driver
kvm tools: Use dynamic IO port allocation in 9p driver
kvm tools: Use dynamic IO port allocation in virtio-console
kvm tools: Use dynamic IO port allocation in virtio-net
kvm tools: Prevent double assignment of guest memory info
kvm tools: Exit VCPU thread only when SIGKVMEXIT is received
kvm tools: Add ioeventfd support
kvm tools: Use ioeventfd in virtio-blk
kvm tools: Use ioeventfd in virtio-net
kvm tools: Use ioeventfd in virtio-rng
kvm tools: Use correct value for user signal base
kvm tools: Remove wrong global definition of kvm
kvm tools: Add APIs to allow pausing guests
kvm tools: Pause/resume guest using SIGUSR2
kvm tools: Add a brlock
kvm tools: Add rwlock wrapper
kvm tools: Add debug mode to brlock
kvm tools: Use brlock in MMIO and IOPORT
kvm tools: Use vesa reserved space for strings and modes
kvm tools: Add MMIO coalescing support
kvm tools: Fix some SDL keyboard translations
kvm tools: Use double buffering with SDL
kvm tools: Add 'kvm pause' command
kvm tools: Signal only one thread when injecting console interrupts
kvm tools: Fix attempt to free mmaped memory
kvm tools: Implement keyboard reset method
kvm tools: Use ioeventfd in virtio-9p
kvm tools: Don't dynamically allocate threadpool jobs
kvm tools: Process virtio-blk requests in parallel
kvm tools: Allow giving instance names
kvm tools: Provide instance name when running 'kvm debug'
kvm tools: Provide instance name when running 'kvm pause'
kvm tools: Add virtio-balloon device
kvm tools: Advise memory allocated for guest RAM as KSM mergable
kvm tools: Add 'kvm balloon' command
kvm tools: Stop VCPUs before freeing struct kvm
kvm tools: Fix home dir resolution
kvm tools: Give guest instances default name
kvm tools: Add instance enumerator
kvm tools: Add 'kvm list' command
kvm tools: Allow pausing and debugging all running instances
kvm tools: Export kvm__remove_pidfile
kvm tools: Clean ghost pid files in 'kvm list'
kvm tools: Add 'kvm version' command
kvm tools: Properly add 'kvm list' to command list
kvm tools: Properly add 'kvm debug' to command list
kvm tools: Update 'kvm pause' documentation
kvm tools: Properly add 'kvm balloon' to command list
kvm tools: Rename command source files
kvm tools: Rename debug options under 'kvm run'
kvm tools: Fix leaked descriptors
kvm tools: Update README
kvm tools: Implement VIRTIO_BLK_T_GET_ID
kvm tools: Update max VCPU limit
kvm tools: Fix warning on 32bit
kvm tools: Set hardcoded MAC to local administered

tools/kvm/.gitignore | 9 +
tools/kvm/CREDITS-Git | 30 ++
tools/kvm/Documentation/kvm-balloon.txt | 24 +
tools/kvm/Documentation/kvm-debug.txt | 16 +
tools/kvm/Documentation/kvm-list.txt | 16 +
tools/kvm/Documentation/kvm-pause.txt | 16 +
tools/kvm/Documentation/kvm-run.txt | 63 +++
tools/kvm/Documentation/kvm-version.txt | 21 +
tools/kvm/Makefile | 269 ++++++++++
tools/kvm/README | 109 ++++
tools/kvm/bios.c | 157 ++++++
tools/kvm/bios/.gitignore | 3 +
tools/kvm/bios/bios-rom.S | 12 +
tools/kvm/bios/bios.S | 89 ++++
tools/kvm/bios/e820.c | 69 +++
tools/kvm/bios/gen-offsets.sh | 14 +
tools/kvm/bios/int10.c | 163 ++++++
tools/kvm/bios/local.S | 7 +
tools/kvm/bios/macro.S | 25 +
tools/kvm/bios/rom.ld.S | 17 +
tools/kvm/builtin-balloon.c | 34 ++
tools/kvm/builtin-debug.c | 32 ++
tools/kvm/builtin-help.c | 61 +++
tools/kvm/builtin-list.c | 43 ++
tools/kvm/builtin-pause.c | 32 ++
tools/kvm/builtin-run.c | 757 +++++++++++++++++++++++++++
tools/kvm/builtin-version.c | 15 +
tools/kvm/code16gcc.h | 15 +
tools/kvm/command-list.txt | 10 +
tools/kvm/config/feature-tests.mak | 148 ++++++
tools/kvm/config/utilities.mak | 188 +++++++
tools/kvm/cpuid.c | 51 ++
tools/kvm/disk/blk.c | 39 ++
tools/kvm/disk/core.c | 222 ++++++++
tools/kvm/disk/qcow.c | 845 +++++++++++++++++++++++++++++++
tools/kvm/disk/raw.c | 82 +++
tools/kvm/framebuffer.c | 68 +++
tools/kvm/hw/i8042.c | 348 +++++++++++++
tools/kvm/hw/rtc.c | 87 ++++
tools/kvm/hw/serial.c | 355 +++++++++++++
tools/kvm/hw/vesa.c | 76 +++
tools/kvm/include/asm/hweight.h | 8 +
tools/kvm/include/kvm/8250-serial.h | 10 +
tools/kvm/include/kvm/apic.h | 17 +
tools/kvm/include/kvm/assembly.h | 24 +
tools/kvm/include/kvm/barrier.h | 15 +
tools/kvm/include/kvm/bios-export.h | 13 +
tools/kvm/include/kvm/bios.h | 59 +++
tools/kvm/include/kvm/boot-protocol.h | 16 +
tools/kvm/include/kvm/brlock.h | 41 ++
tools/kvm/include/kvm/builtin-balloon.h | 6 +
tools/kvm/include/kvm/builtin-debug.h | 6 +
tools/kvm/include/kvm/builtin-help.h | 6 +
tools/kvm/include/kvm/builtin-list.h | 6 +
tools/kvm/include/kvm/builtin-pause.h | 6 +
tools/kvm/include/kvm/builtin-run.h | 7 +
tools/kvm/include/kvm/builtin-version.h | 6 +
tools/kvm/include/kvm/cpufeature.h | 41 ++
tools/kvm/include/kvm/disk-image.h | 73 +++
tools/kvm/include/kvm/e820.h | 18 +
tools/kvm/include/kvm/framebuffer.h | 34 ++
tools/kvm/include/kvm/i8042.h | 12 +
tools/kvm/include/kvm/interrupt.h | 26 +
tools/kvm/include/kvm/ioeventfd.h | 27 +
tools/kvm/include/kvm/ioport.h | 64 +++
tools/kvm/include/kvm/irq.h | 24 +
tools/kvm/include/kvm/kvm-cmd.h | 17 +
tools/kvm/include/kvm/kvm-cpu.h | 44 ++
tools/kvm/include/kvm/kvm.h | 105 ++++
tools/kvm/include/kvm/mptable.h | 8 +
tools/kvm/include/kvm/mutex.h | 33 ++
tools/kvm/include/kvm/parse-options.h | 211 ++++++++
tools/kvm/include/kvm/pci.h | 55 ++
tools/kvm/include/kvm/qcow.h | 98 ++++
tools/kvm/include/kvm/rbtree-interval.h | 27 +
tools/kvm/include/kvm/read-write.h | 32 ++
tools/kvm/include/kvm/rtc.h | 6 +
tools/kvm/include/kvm/rwsem.h | 39 ++
tools/kvm/include/kvm/sdl.h | 17 +
tools/kvm/include/kvm/segment.h | 16 +
tools/kvm/include/kvm/strbuf.h | 6 +
tools/kvm/include/kvm/symbol.h | 22 +
tools/kvm/include/kvm/term.h | 17 +
tools/kvm/include/kvm/threadpool.h | 37 ++
tools/kvm/include/kvm/types.h | 7 +
tools/kvm/include/kvm/uip.h | 356 +++++++++++++
tools/kvm/include/kvm/util.h | 78 +++
tools/kvm/include/kvm/vesa.h | 19 +
tools/kvm/include/kvm/virtio-9p.h | 73 +++
tools/kvm/include/kvm/virtio-balloon.h | 8 +
tools/kvm/include/kvm/virtio-blk.h | 12 +
tools/kvm/include/kvm/virtio-console.h | 9 +
tools/kvm/include/kvm/virtio-net.h | 21 +
tools/kvm/include/kvm/virtio-pci-dev.h | 24 +
tools/kvm/include/kvm/virtio-rng.h | 9 +
tools/kvm/include/kvm/virtio.h | 59 +++
tools/kvm/include/kvm/vnc.h | 14 +
tools/kvm/include/linux/bitops.h | 33 ++
tools/kvm/include/linux/byteorder.h | 7 +
tools/kvm/include/linux/kernel.h | 39 ++
tools/kvm/include/linux/module.h | 6 +
tools/kvm/include/linux/prefetch.h | 6 +
tools/kvm/include/linux/types.h | 49 ++
tools/kvm/interrupt.c | 27 +
tools/kvm/ioeventfd.c | 128 +++++
tools/kvm/ioport.c | 187 +++++++
tools/kvm/irq.c | 112 ++++
tools/kvm/kvm-cmd.c | 74 +++
tools/kvm/kvm-cpu.c | 505 ++++++++++++++++++
tools/kvm/kvm.c | 741 +++++++++++++++++++++++++++
tools/kvm/main.c | 14 +
tools/kvm/mmio.c | 130 +++++
tools/kvm/mptable.c | 284 +++++++++++
tools/kvm/net/uip/arp.c | 30 ++
tools/kvm/net/uip/buf.c | 114 +++++
tools/kvm/net/uip/core.c | 190 +++++++
tools/kvm/net/uip/csum.c | 92 ++++
tools/kvm/net/uip/dhcp.c | 195 +++++++
tools/kvm/net/uip/icmp.c | 29 +
tools/kvm/net/uip/ipv4.c | 29 +
tools/kvm/net/uip/tcp.c | 317 ++++++++++++
tools/kvm/net/uip/udp.c | 236 +++++++++
tools/kvm/pci.c | 115 +++++
tools/kvm/read-write.c | 318 ++++++++++++
tools/kvm/symbol.c | 98 ++++
tools/kvm/term.c | 131 +++++
tools/kvm/tests/Makefile | 19 +
tools/kvm/tests/boot/Makefile | 13 +
tools/kvm/tests/boot/init.c | 11 +
tools/kvm/tests/kernel/.gitignore | 2 +
tools/kvm/tests/kernel/Makefile | 20 +
tools/kvm/tests/kernel/README | 16 +
tools/kvm/tests/kernel/kernel.S | 8 +
tools/kvm/tests/pit/.gitignore | 2 +
tools/kvm/tests/pit/Makefile | 20 +
tools/kvm/tests/pit/README | 16 +
tools/kvm/tests/pit/tick.S | 109 ++++
tools/kvm/threadpool.c | 146 ++++++
tools/kvm/ui/sdl.c | 150 ++++++
tools/kvm/ui/vnc.c | 218 ++++++++
tools/kvm/util.c | 101 ++++
tools/kvm/util/KVMTOOLS-VERSION-GEN | 40 ++
tools/kvm/util/generate-cmdlist.sh | 23 +
tools/kvm/util/kvm-ifup-vbr0 | 6 +
tools/kvm/util/parse-options.c | 631 +++++++++++++++++++++++
tools/kvm/util/rbtree-interval.c | 90 ++++
tools/kvm/util/set_private_br.sh | 51 ++
tools/kvm/util/strbuf.c | 13 +
tools/kvm/virtio/9p-pdu.c | 242 +++++++++
tools/kvm/virtio/9p.c | 835 ++++++++++++++++++++++++++++++
tools/kvm/virtio/balloon.c | 265 ++++++++++
tools/kvm/virtio/blk.c | 345 +++++++++++++
tools/kvm/virtio/console.c | 257 ++++++++++
tools/kvm/virtio/core.c | 102 ++++
tools/kvm/virtio/net.c | 485 ++++++++++++++++++
tools/kvm/virtio/rng.c | 251 +++++++++
156 files changed, 15404 insertions(+), 0 deletions(-)
create mode 100644 tools/kvm/.gitignore
create mode 100644 tools/kvm/CREDITS-Git
create mode 100644 tools/kvm/Documentation/kvm-balloon.txt
create mode 100644 tools/kvm/Documentation/kvm-debug.txt
create mode 100644 tools/kvm/Documentation/kvm-list.txt
create mode 100644 tools/kvm/Documentation/kvm-pause.txt
create mode 100644 tools/kvm/Documentation/kvm-run.txt
create mode 100644 tools/kvm/Documentation/kvm-version.txt
create mode 100644 tools/kvm/Makefile
create mode 100644 tools/kvm/README
create mode 100644 tools/kvm/bios.c
create mode 100644 tools/kvm/bios/.gitignore
create mode 100644 tools/kvm/bios/bios-rom.S
create mode 100644 tools/kvm/bios/bios.S
create mode 100644 tools/kvm/bios/e820.c
create mode 100644 tools/kvm/bios/gen-offsets.sh
create mode 100644 tools/kvm/bios/int10.c
create mode 100644 tools/kvm/bios/local.S
create mode 100644 tools/kvm/bios/macro.S
create mode 100644 tools/kvm/bios/rom.ld.S
create mode 100644 tools/kvm/builtin-balloon.c
create mode 100644 tools/kvm/builtin-debug.c
create mode 100644 tools/kvm/builtin-help.c
create mode 100644 tools/kvm/builtin-list.c
create mode 100644 tools/kvm/builtin-pause.c
create mode 100644 tools/kvm/builtin-run.c
create mode 100644 tools/kvm/builtin-version.c
create mode 100644 tools/kvm/code16gcc.h
create mode 100644 tools/kvm/command-list.txt
create mode 100644 tools/kvm/config/feature-tests.mak
create mode 100644 tools/kvm/config/utilities.mak
create mode 100644 tools/kvm/cpuid.c
create mode 100644 tools/kvm/disk/blk.c
create mode 100644 tools/kvm/disk/core.c
create mode 100644 tools/kvm/disk/qcow.c
create mode 100644 tools/kvm/disk/raw.c
create mode 100644 tools/kvm/framebuffer.c
create mode 100644 tools/kvm/hw/i8042.c
create mode 100644 tools/kvm/hw/rtc.c
create mode 100644 tools/kvm/hw/serial.c
create mode 100644 tools/kvm/hw/vesa.c
create mode 100644 tools/kvm/include/asm/hweight.h
create mode 100644 tools/kvm/include/kvm/8250-serial.h
create mode 100644 tools/kvm/include/kvm/apic.h
create mode 100644 tools/kvm/include/kvm/assembly.h
create mode 100644 tools/kvm/include/kvm/barrier.h
create mode 100644 tools/kvm/include/kvm/bios-export.h
create mode 100644 tools/kvm/include/kvm/bios.h
create mode 100644 tools/kvm/include/kvm/boot-protocol.h
create mode 100644 tools/kvm/include/kvm/brlock.h
create mode 100644 tools/kvm/include/kvm/builtin-balloon.h
create mode 100644 tools/kvm/include/kvm/builtin-debug.h
create mode 100644 tools/kvm/include/kvm/builtin-help.h
create mode 100644 tools/kvm/include/kvm/builtin-list.h
create mode 100644 tools/kvm/include/kvm/builtin-pause.h
create mode 100644 tools/kvm/include/kvm/builtin-run.h
create mode 100644 tools/kvm/include/kvm/builtin-version.h
create mode 100644 tools/kvm/include/kvm/cpufeature.h
create mode 100644 tools/kvm/include/kvm/disk-image.h
create mode 100644 tools/kvm/include/kvm/e820.h
create mode 100644 tools/kvm/include/kvm/framebuffer.h
create mode 100644 tools/kvm/include/kvm/i8042.h
create mode 100644 tools/kvm/include/kvm/interrupt.h
create mode 100644 tools/kvm/include/kvm/ioeventfd.h
create mode 100644 tools/kvm/include/kvm/ioport.h
create mode 100644 tools/kvm/include/kvm/irq.h
create mode 100644 tools/kvm/include/kvm/kvm-cmd.h
create mode 100644 tools/kvm/include/kvm/kvm-cpu.h
create mode 100644 tools/kvm/include/kvm/kvm.h
create mode 100644 tools/kvm/include/kvm/mptable.h
create mode 100644 tools/kvm/include/kvm/mutex.h
create mode 100644 tools/kvm/include/kvm/parse-options.h
create mode 100644 tools/kvm/include/kvm/pci.h
create mode 100644 tools/kvm/include/kvm/qcow.h
create mode 100644 tools/kvm/include/kvm/rbtree-interval.h
create mode 100644 tools/kvm/include/kvm/read-write.h
create mode 100644 tools/kvm/include/kvm/rtc.h
create mode 100644 tools/kvm/include/kvm/rwsem.h
create mode 100644 tools/kvm/include/kvm/sdl.h
create mode 100644 tools/kvm/include/kvm/segment.h
create mode 100644 tools/kvm/include/kvm/strbuf.h
create mode 100644 tools/kvm/include/kvm/symbol.h
create mode 100644 tools/kvm/include/kvm/term.h
create mode 100644 tools/kvm/include/kvm/threadpool.h
create mode 100644 tools/kvm/include/kvm/types.h
create mode 100644 tools/kvm/include/kvm/uip.h
create mode 100644 tools/kvm/include/kvm/util.h
create mode 100644 tools/kvm/include/kvm/vesa.h
create mode 100644 tools/kvm/include/kvm/virtio-9p.h
create mode 100644 tools/kvm/include/kvm/virtio-balloon.h
create mode 100644 tools/kvm/include/kvm/virtio-blk.h
create mode 100644 tools/kvm/include/kvm/virtio-console.h
create mode 100644 tools/kvm/include/kvm/virtio-net.h
create mode 100644 tools/kvm/include/kvm/virtio-pci-dev.h
create mode 100644 tools/kvm/include/kvm/virtio-rng.h
create mode 100644 tools/kvm/include/kvm/virtio.h
create mode 100644 tools/kvm/include/kvm/vnc.h
create mode 100644 tools/kvm/include/linux/bitops.h
create mode 100644 tools/kvm/include/linux/byteorder.h
create mode 100644 tools/kvm/include/linux/kernel.h
create mode 100644 tools/kvm/include/linux/module.h
create mode 100644 tools/kvm/include/linux/prefetch.h
create mode 100644 tools/kvm/include/linux/types.h
create mode 100644 tools/kvm/interrupt.c
create mode 100644 tools/kvm/ioeventfd.c
create mode 100644 tools/kvm/ioport.c
create mode 100644 tools/kvm/irq.c
create mode 100644 tools/kvm/kvm-cmd.c
create mode 100644 tools/kvm/kvm-cpu.c
create mode 100644 tools/kvm/kvm.c
create mode 100644 tools/kvm/main.c
create mode 100644 tools/kvm/mmio.c
create mode 100644 tools/kvm/mptable.c
create mode 100644 tools/kvm/net/uip/arp.c
create mode 100644 tools/kvm/net/uip/buf.c
create mode 100644 tools/kvm/net/uip/core.c
create mode 100644 tools/kvm/net/uip/csum.c
create mode 100644 tools/kvm/net/uip/dhcp.c
create mode 100644 tools/kvm/net/uip/icmp.c
create mode 100644 tools/kvm/net/uip/ipv4.c
create mode 100644 tools/kvm/net/uip/tcp.c
create mode 100644 tools/kvm/net/uip/udp.c
create mode 100644 tools/kvm/pci.c
create mode 100644 tools/kvm/read-write.c
create mode 100644 tools/kvm/symbol.c
create mode 100644 tools/kvm/term.c
create mode 100644 tools/kvm/tests/Makefile
create mode 100644 tools/kvm/tests/boot/Makefile
create mode 100644 tools/kvm/tests/boot/init.c
create mode 100644 tools/kvm/tests/kernel/.gitignore
create mode 100644 tools/kvm/tests/kernel/Makefile
create mode 100644 tools/kvm/tests/kernel/README
create mode 100644 tools/kvm/tests/kernel/kernel.S
create mode 100644 tools/kvm/tests/pit/.gitignore
create mode 100644 tools/kvm/tests/pit/Makefile
create mode 100644 tools/kvm/tests/pit/README
create mode 100644 tools/kvm/tests/pit/tick.S
create mode 100644 tools/kvm/threadpool.c
create mode 100644 tools/kvm/ui/sdl.c
create mode 100644 tools/kvm/ui/vnc.c
create mode 100644 tools/kvm/util.c
create mode 100755 tools/kvm/util/KVMTOOLS-VERSION-GEN
create mode 100755 tools/kvm/util/generate-cmdlist.sh
create mode 100755 tools/kvm/util/kvm-ifup-vbr0
create mode 100644 tools/kvm/util/parse-options.c
create mode 100644 tools/kvm/util/rbtree-interval.c
create mode 100755 tools/kvm/util/set_private_br.sh
create mode 100644 tools/kvm/util/strbuf.c
create mode 100644 tools/kvm/virtio/9p-pdu.c
create mode 100644 tools/kvm/virtio/9p.c
create mode 100644 tools/kvm/virtio/balloon.c
create mode 100644 tools/kvm/virtio/blk.c
create mode 100644 tools/kvm/virtio/console.c
create mode 100644 tools/kvm/virtio/core.c
create mode 100644 tools/kvm/virtio/net.c
create mode 100644 tools/kvm/virtio/rng.c