]>
git.karo-electronics.de Git - karo-tx-linux.git/log
Sasha Levin [Mon, 22 Aug 2011 12:58:15 +0000 (15:58 +0300)]
kvm tools: Separate virtio-pci layer out of virtio-net
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Mon, 22 Aug 2011 12:58:14 +0000 (15:58 +0300)]
kvm tools: Separate virtio-pci layer out of virtio-rng
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Mon, 22 Aug 2011 12:58:13 +0000 (15:58 +0300)]
kvm tools: Separate virtio-pci layer
This patch builds a virtio-pci layer which can be used by virtio
devices as a layer to interact with virtio-pci. The purpose of the
patch is to separate the common virtio-pci layer from being replicated
in all virtio devices.
The new layer provides a callback interface to receive information about
virtio events.
This allows us to share the entire functionality of virtio-pci throughout all
virtio devices, for example - we don't need to implement MSI-X for each device
and can just do it once for virtio-pci.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sun, 21 Aug 2011 10:16:35 +0000 (13:16 +0300)]
kvm tools: Fix offset calculation for config space and MSI-X
This patch makes offsets for virtio config space and MSI-X dynamic.
The change should fix the wrong usage of MSI-X space as virtio
config space.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sun, 21 Aug 2011 10:16:34 +0000 (13:16 +0300)]
kvm tools: Add helper to retrieve the field used in virtio config space
This patch adds a helper used to retrieve the type of field used when guest
is writing or reading from virtio config space.
Since the config space is dynamic, it may change during runtime - so we must
calculate it before every read/write.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:37 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-balloon
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:36 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-console
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:35 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-net
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:34 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-9p
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:33 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-blk
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:32 +0000 (15:18 +0300)]
kvm tools: Add guest compatability warning to virtio-rng
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 18 Aug 2011 12:18:31 +0000 (15:18 +0300)]
kvm tools: Guest kernel compatability
The problem of users running kernel which wasn't built for kvm tools is
somewhat common. Usualy the result is a panic during boot and a user whos'
stuck and doesn't know what to do next.
Compatability checks try to solve this issue by giving the user a meaningfull
error message which can explain whats going on and how he can fix it.
The idea is to register the device during device init and unregister the
device when the device has been 'used'. In case the kernel didn't access
the device before the guest is shut down, the host will notify the user that
something is wrong.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Wed, 17 Aug 2011 09:44:54 +0000 (17:44 +0800)]
kvm tools: change option type of RNG from increment to boolean
Becasue virtio random generator is a single device, change its option
type to boolean.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Wed, 17 Aug 2011 09:44:53 +0000 (17:44 +0800)]
kvm tools: fix wrong virtio id for balloon
Replace the wrong rng virtio id with the correct balloon id.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Xiao Guangrong [Thu, 18 Aug 2011 03:07:25 +0000 (11:07 +0800)]
kvm tools: remove count in io emulation callbacks
'count' parameter in io emulation callbacks is useless, just remove it
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Xiao Guangrong [Thu, 18 Aug 2011 03:06:54 +0000 (11:06 +0800)]
kvm tools: fix repeated io emulation
When kvm emulates repeation io read instruction, it can exit to user-space with
'count' > 1, we need to emulate io access for many times
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Mon, 15 Aug 2011 14:33:00 +0000 (17:33 +0300)]
kvm tools: Use correct data type for pid
This patch fixes an error where pids used u64 instead of pid_t, causing them
to never be negative.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Mon, 15 Aug 2011 14:32:59 +0000 (17:32 +0300)]
kvm tools: Add 'kvm stat' command
This patch adds 'kvm stat' command that allows retrieving statistics out of
a running guest.
Currently the only supported statistics are memory statistics, available using the
'--memory' parameter.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sat, 13 Aug 2011 10:22:13 +0000 (13:22 +0300)]
kvm tools: Fix wrong kill() PID in commands
There was a mixup in the balloon usage string and some of the commands were
retrieving the instance name from the wrong place. This will cause the commands
to issue kill() with negative PIDs (which sends the signal to every process in
the system). Without this patch, 'kvm command instance' will do crazy things
like restart whole Gnome session.
Tested-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sat, 13 Aug 2011 09:38:13 +0000 (12:38 +0300)]
kvm tool, sdl: Set window caption
Fix empty window caption for the tool. We should also display the guest name
but unfortunately the SDL code doesn't know about "struct kvm" so that requires
code reorganization.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 15:30:40 +0000 (18:30 +0300)]
Merge branch 'kvm/bios' into kvm/core
Sasha Levin [Fri, 12 Aug 2011 15:21:00 +0000 (18:21 +0300)]
kvm tools: Improve 'kvm balloon' parameters
kvm balloon now uses the git option parser to parse parameters.
Added option to balloon instance by PID.
Improved usage message.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Fri, 12 Aug 2011 14:59:29 +0000 (22:59 +0800)]
kvm tools: unify all serials' registers with the first serial
To make all serials work well, unify value of the last three
serials' registers with the first serial. Otherwise, using ttyS1,
ttyS2, ttyS3 as console will slow the output.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:59 +0000 (18:20 +0300)]
kvm tools: Improve 'kvm debug' parameters
kvm debug now uses the git option parser to parse parameters.
Added option to debug instance by PID and debug all instances.
Improved usage message.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:58 +0000 (18:20 +0300)]
kvm tools: Improve 'kvm pause' parameters
kvm pause now uses the git option parser to parse parameters.
Added option to pause instance by PID and pause all instances.
Improved usage message.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:57 +0000 (18:20 +0300)]
kvm tools: Improve 'kvm resume' parameters
kvm resume now uses the git option parser to parse parameters.
Added option to resume instance by PID and resume all instances.
Improved usage message.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:56 +0000 (18:20 +0300)]
kvm tools: Improve 'kvm stop' parameters
kvm stop now uses the git option parser to parse parameters.
Added option to stop instance by PID and stop all instances.
Improved usage message.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:55 +0000 (18:20 +0300)]
kvm tools: Connect existing command helpers to 'kvm help'
This patch connects usage helpers to 'kvm help' callbacks, allowing
to see help about a command by doing 'kvm help [command]'.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 15:20:54 +0000 (18:20 +0300)]
kvm tools: Print version when running 'kvm --version'
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 11:23:06 +0000 (14:23 +0300)]
kvm tools, bios: Rename bios.S to entry.S
This patch renames bios.S to entry.S to make it more obvious what the file
contains. There's already too much source files with the word "bios" in their
names.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 11:00:06 +0000 (14:00 +0300)]
kvm tools, bios: Set CF for non-supported services
Don't mislead callers into thinking that a non-implemented int15 service
succeeded.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:55:45 +0000 (13:55 +0300)]
kvm tools, bios: Convert int15 code to C
This patch convert the int15 interrupt handler code into C.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:51:16 +0000 (13:51 +0300)]
kvm tools, bios: Move CF clearing to e820_query_map()
In preparation for converting the int15 handler into C, move CF clearing to
e820_query_map().
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:45:28 +0000 (13:45 +0300)]
kvm tools, bios: Use struct biosregs in E820 code
This patch converts the E820 code to use 'struct biosregs' and
{SAVE,RESTORE}_BIOSREGS macros.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:14:07 +0000 (13:14 +0300)]
kvm tools, bios: Add EIP and EFLAGS to 'struct biosregs'
This patch adds EIP and EFLAGS to 'struct biosregs' in preparation for
converting int15 handler into C code.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:09:37 +0000 (13:09 +0300)]
kvm tools, bios: Add macros for BIOS registers
This patch adds SAVE_BIOSREGS and RESTORE_BIOSREGS macros in preparation for
using struct biosregs in E820 code.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 10:04:52 +0000 (13:04 +0300)]
kvm tools, bios: Rename struct int10_args to struct biosregs
This patch renames struct int10_args to struct biosregs in preparation for
unifying interrupt handler code.
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Fri, 12 Aug 2011 07:51:17 +0000 (10:51 +0300)]
kvm tools, bios: Setup CF after returning from interrupt handler
While reading the code, I noticed that we don't set CF in our interrupt handler
stubs. The guest kernel may think the interrupt handler succeeded depending on
whether or not it has set CF by itself (or whether BIOS code set it by chance).
While at it, fix INT 10h handler to clear CF to make sure the guest kernel
knows the interrupt handler succeeded.
Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 12 Aug 2011 07:37:23 +0000 (10:37 +0300)]
kvm tools: Missing braces in BAR index calculation
This patch adds missing braces which were forgotten in
42dfae5
("kvm tools: Use correct size for VESA memory bar").
Reported-by: David Evensky <evensky@dancer.ca.sandia.gov>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 20:41:51 +0000 (23:41 +0300)]
kvm tools: Use correct offset for virtio-net config space
This patch fixes the read action of virtio-net config by not
handling reads to the start of the space as MSI related
operations.
This fixes the MAC configuration of the device and makes uip network
work again.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 20:41:50 +0000 (23:41 +0300)]
kvm tools: Speed up PS/2 mouse detection
This patch speeds up PS/2 mouse detection by switching to the
fastest probing method compatible with kvm tools i8042 emulation.
The result is detection taking < 0.5 sec instead of >5 sec.
Tested-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Thu, 11 Aug 2011 15:15:18 +0000 (18:15 +0300)]
kvm tools: Organize includes in builtin-run.c
This patch organizes the includes in builtin-run.c so that KVM tool local
headers are included first, then Linux kernel headers, and finally system
headers.
This helps in keeping headers dependencies in check so that they can be
included by themselves.
Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 09:04:07 +0000 (12:04 +0300)]
kvm tools: Fix IRQ mapping
This thread fixes two issues:
- Slave IRQCHIP was mapped wrong, this caused all IRQs which belong
to it to be ignored (breaking such things as the mouse).
- Line 2 was being mapped, since it's the link between slave and master
IRQCHIPs it shouldn't be.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 12:43:54 +0000 (15:43 +0300)]
kvm tools: Make keyboard termination go through regular termination path
Instead of exiting directly when a user enters 'ctrl x + a', go through
the regular termination path by stopping all VCPUs and letting the
main thread handle it.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 12:43:56 +0000 (15:43 +0300)]
kvm tools: Add MSI-X support to virtio-net
The device uses the virtio preferred method of working with MSI-X by
creating one vector for configuration and one vector for each vq in the
device.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 12:43:55 +0000 (15:43 +0300)]
kvm tools: Add kvm__trigger_irq()
Add a helper function to trigger an IRQ.
This function is usefull when an IRQ line has to be raised and lowered
such as when using MSI-X.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Thu, 11 Aug 2011 07:21:59 +0000 (15:21 +0800)]
kvm tools: check negative value of num_pages
If num_pages is negative, balloon will make kernel crash with
"out of memory". So we check this value to avoid it to be negative.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
[ penberg@kernel.org: cleanups ]
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 11 Aug 2011 11:56:51 +0000 (14:56 +0300)]
kvm tools: Use correct size for VESA memory bar
This patch makes BAR 1 16k, instead of BAR0 - which is the PIO bar.
This fixes wrong output on lspci command and ioremap warnings during boot.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Thu, 11 Aug 2011 05:07:47 +0000 (13:07 +0800)]
kvm tools: enable keyboard press repeat for sdl
Set keyboard repeat rate to enable keyboard press repeat.
It means that don't repeat the key value every 50 milliseconds
until 200 milliseconds later when the key is pressed.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Thu, 11 Aug 2011 07:28:10 +0000 (15:28 +0800)]
kvm tools: ignore balloon signals by default to avoid balloon crash
If "kvm run" without balloon option, use "kvm balloon" may
crash kvm. So ignore balloon signals by default to avoid this.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Aneesh Kumar K.V [Tue, 9 Aug 2011 15:13:47 +0000 (20:43 +0530)]
kvm tools: Save and restore the iovec related values in read and write
The virtio_p9_set_reply_header function looks at the pdu buffer to find the cmd
so that it can find the reply command value. We actually found the issue when
Sasha reported that dd on his system in failing with unknown error 512 with
dotl. The reason being that, since we didn't update iovec in virtio_p9_write
virtio_p9_set_reply_header was looking at a wrong offset and the reply cmd got
set to RLERROR, and the client picked the bytes written as errno number.
We need to restore the value properly so that rest of readf and writef
work as expected.
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 10 Aug 2011 18:48:11 +0000 (21:48 +0300)]
kvm tools: Stop guest if SDL window is closed
Send SIGKVMSTOP signal to the process if the SDL window is closed. This fixes
an annoying problem where closing the window makes the guest seem like it froze
although it's really running in the background but the UI is unusable.
Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 10 Aug 2011 18:38:40 +0000 (21:38 +0300)]
kvm tools: Improve 'kvm version' output
This patch improves 'kvm version' output as follows as suggested by Ingo
Molnar:
$ ./kvm version
kvm tool 3.0.rc5.763.ga6c998
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 10 Aug 2011 18:32:58 +0000 (21:32 +0300)]
kvm tool: Fix builtin command usage printouts
This patch fixes builtin commands to use usage_with_options() instead of die().
The latter prefixes messages with "Fatal" which makes the usage text ugly.
Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 10 Aug 2011 18:20:22 +0000 (21:20 +0300)]
kvm tools: Improve 'kvm list' output
This patch improves 'kvm list' output to look more like 'ps':
$ ./kvm list
PID GUEST
2820 guest-2820
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 10 Aug 2011 04:59:11 +0000 (07:59 +0300)]
Revert "kvm tools: Enable kernel DHCP autoconf by default"
This reverts commit
f0aec23a91368e916a53e6072f2173bb481b1544 .
Asias He writes:
'ip=dhcp' makes kernel try to use nfs as root fs which results in a long
time 'wait and fail' and finally fallback to 9p as root fs.
[ 1.688000] Sending DHCP requests ., OK
[ 1.695000] IP-Config: Got DHCP answer from 192.168.33.1, my address
is 192.168.33.15
[ 1.699000] IP-Config: Complete:
[ 1.700000] device=eth0, addr=192.168.33.15, mask=255.255.255.0,
gw=192.168.33.1,
[ 1.703000] host=192.168.33.15, domain=stu.buaa.edu.cn,
nis-domain=(none),
[ 1.706000] bootserver=192.168.33.1, rootserver=192.168.33.1,
rootpath=
[ 36.769000] VFS: Unable to mount root fs via NFS, trying floppy.
[ 36.771000] VFS: Mounted root (9p filesystem) on device 0:14.
Liming Wang [Wed, 10 Aug 2011 02:44:09 +0000 (10:44 +0800)]
kvm tools: handle failure of command
handle failure of calling command function, especially, only handle
EPERM error now.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
[ penberg@kernel.org: fix minor coding style issue ]
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Wed, 10 Aug 2011 02:44:08 +0000 (10:44 +0800)]
kvm tools: convert callback to int and deal with the return value
callback function maybe fail, so we should deal with the return value.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Tue, 9 Aug 2011 17:46:08 +0000 (20:46 +0300)]
kvm tools: Enable kernel DHCP autoconf by default
As we boot to '/bin/sh' by default, enable kernel DHCP autoconfiguration too.
The guest kernel needs to be configured with the following configuration
options:
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
Cc: Asias He <asias.hejun@gmail.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Tue, 9 Aug 2011 15:25:57 +0000 (18:25 +0300)]
kvm tools: Boot to host /bin/sh via 9p by default
This patch updates 'kvm run' to boot to host filesystem via 9p '/bin/sh' by
default:
$ ./kvm run
# kvm run -k ../../arch/x86/boot/bzImage -m 320 -c 2 --name guest-3462
[ 0.000000] Linux version 3.1.0-rc1+ (penberg@tiger) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #7 SMP PREEMPT Tue Aug 9 16:39:20 EEST 2011
[ 0.000000] Command line: notsc noapic noacpi pci=conf1 reboot=k panic=1 console=ttyS0 earlyprintk=serial init=/bin/sh root=/dev/vda rw root=/dev/root rootflags=rw,trans=virtio,version=9p2000.u rootfstype=9p
[snip]
[ 1.803261] VFS: Mounted root (9p filesystem) on device 0:13.
[ 1.805153] devtmpfs: mounted
[ 1.808353] Freeing unused kernel memory: 924k freed
[ 1.810592] Write protecting the kernel read-only data: 12288k
[ 1.816268] Freeing unused kernel memory: 632k freed
[ 1.826030] Freeing unused kernel memory: 1448k freed
sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell
sh-4.1#
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Aneesh Kumar K.V [Tue, 9 Aug 2011 15:13:46 +0000 (20:43 +0530)]
kvm tools, 9p: handler should be called in case of not supported operation
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Liming Wang [Tue, 9 Aug 2011 14:56:54 +0000 (22:56 +0800)]
kvm tools: remove unused options
kvm "--help" and "--version" are not implemented, so remove them to
avoid ambiguous.
Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Tue, 9 Aug 2011 10:17:39 +0000 (13:17 +0300)]
kvm tools: Change method of retrieving process name
This patch changes './kvm list' to retrieve process name from
'/proc/<pid>/stat' instead of '/proc/<pid>/comm' as it appears the latter
does not exist by default on several systems.
Reported-by: Pradeep Kumar Surisetty <psuriset@linux.vnet.ibm.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Mon, 8 Aug 2011 00:58:12 +0000 (08:58 +0800)]
kvm tools: Tune --disk option usage information
This patch makes --disk option usage information include rootfs
directory, since --disk supports both images and rootfs dir.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Mon, 8 Aug 2011 00:58:11 +0000 (08:58 +0800)]
kvm tools: Sort options of kvm run command
This patch sort options of kvm run command to make it look tidier and
cleaner.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Mon, 8 Aug 2011 00:58:10 +0000 (08:58 +0800)]
kvm tools: Make --virtio-9p option shorter
This patch changes --virtio-9p to --9p because:
1. It's shorter
2. No need to add virtio prior to 9p since we use virtio by default
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Mon, 8 Aug 2011 00:58:09 +0000 (08:58 +0800)]
kvm tools: Make --kvm-dev option shorter
This patch changes --kvm-dev to --dev.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sun, 7 Aug 2011 19:23:06 +0000 (22:23 +0300)]
kvm tools: Split 'kvm pause' and add 'kvm resume'
This patch seperates 'kvm pause' into 'kvm pause' and 'kvm resume',
'kvm pause' no longer acts as a switch between running and paused state but
instead just switches the instance into paused and reume is handled by
the new 'kvm resume'.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 7 Aug 2011 06:57:15 +0000 (14:57 +0800)]
kvm tools: Tune 'kvm balloon' option
This patch changes the option
from:
kvm balloon [command] [instance name] [amount]
to:
kvm balloon [inflate/deflate] [size in MiB] [instance name]
Acked-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Cyrill Gorcunov [Sun, 7 Aug 2011 09:40:42 +0000 (13:40 +0400)]
kvm tools: Support xAPIC
Since we rely on in-kernel kvm-apic implementation
it's fine to set apic version as xAPIC which allows
kernel to run in bigsmp mode.
Without it the kernel will not support more than 8 cpus,
complaining as
| [ 0.362000] Initializing CPU#8
| [ 0.363000] ------------[ cut here ]------------
| [ 0.363000] WARNING: at arch/x86/kernel/apic/apic.c:1238 setup_local_APIC+0xeb/0x2e1()
| [ 0.364000] Modules linked in:
| [ 0.364000] Pid: 0, comm: kworker/0:1 Not tainted 3.0.0+ #70
| [ 0.364000] Call Trace:
| [ 0.364000] [<
c1060c7e >] warn_slowpath_common+0x63/0x78
| [ 0.365000] [<
c16612a8 >] ? setup_local_APIC+0xeb/0x2e1
| [ 0.365000] [<
c1060ca2 >] warn_slowpath_null+0xf/0x13
| [ 0.365000] [<
c16612a8 >] setup_local_APIC+0xeb/0x2e1
| [ 0.366000] [<
c165c684 >] ? fpu_init+0x6b/0x88
| [ 0.366000] [<
c1047fd7 >] ? default_get_apic_id+0x17/0x32
| [ 0.366000] [<
c16607d3 >] start_secondary+0xab/0x18e
| [ 0.367000] ---[ end trace
4eaa2a86a8e2da22 ]---
Note the kernel needs "apic=bigsmp" parameter passed to
enable physical destination mode.
Reported-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sat, 6 Aug 2011 07:28:04 +0000 (10:28 +0300)]
kvm tools: Fix PCI masking on probes
This patch adds a missing check of mask during probing of PCI BARs.
The missing check manifested in wrong address values for the BARs after the
initial probe.
Reported-by: David Evensky <evensky@dancer.ca.sandia.gov>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 5 Aug 2011 15:21:33 +0000 (18:21 +0300)]
kvm tools: Remove version file on 'make clean'
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 5 Aug 2011 15:21:10 +0000 (18:21 +0300)]
kvm tools: Add 'kvm stop'
This command stops a running instance.
Syntax:
kvm stop [instance name]
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 5 Aug 2011 13:43:13 +0000 (16:43 +0300)]
kvm tools: Use '-d' to boot a directory as a rootfs
Pointing to a directory when specifying an image ('-d') will attempt to boot
the directory as if it was a root device using virtio-9p.
Tested-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Tue, 2 Aug 2011 18:46:28 +0000 (21:46 +0300)]
kvm tools: Add support for 9p2000.u
This patch adds support for the UNIX extensions to 9p2000.
Supporting thses extensions allow us to transperantly mount UNIX directories
without missing features such as symlinks.
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Thu, 21 Jul 2011 09:04:39 +0000 (12:04 +0300)]
kvm tools, qcow: Add support for writing to zero refcount clusters
This patch adds support for writing to zero refcount clusters. Refcount blocks
are cached in like L2 tables and flushed upon VIRTIO_BLK_T_FLUSH and when
evicted from the LRU cache.
With this patch applied, 'qemu-img check' no longer complains about referenced
clusters with zero reference count after
dd if=/dev/zero of=/mnt/tmp
where '/mnt' is freshly generated QCOW2 image.
Cc: Asias He <asias.hejun@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 28 Jul 2011 17:56:21 +0000 (20:56 +0300)]
kvm tools: Implement MSI-X for virtio-rng
This patch implements basic MSI-X support for virtio-rng.
The device uses the virtio preferred method of working with MSI-X by
creating one vector for configuration and one vector for each vq in the
device.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 28 Jul 2011 17:56:20 +0000 (20:56 +0300)]
kvm tools: Add a void ptr to be passed to mmio callback
This makes MMIO callback similar to it's PIO counterpart by passing
a void* value provided in the registration to the callback function.
This allows to keep context within the MMIO callback function.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 28 Jul 2011 17:56:19 +0000 (20:56 +0300)]
kvm tools: Fix PCI probing
PCI BAR probing is done in four steps:
1. Read address (and flags).
2. Mask BAR.
3. Read BAR again - Now the expected result is the size of the BAR.
4. Mask BAR with address.
So far, we have only took care of the first step. This means that the kernel
was using address as the size, causing a PCI allocation blunder.
This patch fixes the issue by passing a proper size after masking.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Thu, 28 Jul 2011 17:56:18 +0000 (20:56 +0300)]
kvm tools: Use GSI routing
Map GSIs manually when starting the guest.
This will allow us mapping new GSIs for MSIX in the future.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Thu, 28 Jul 2011 16:10:24 +0000 (19:10 +0300)]
kvm tools, 9p: Fix init error handling
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Cyrill Gorcunov [Mon, 25 Jul 2011 08:32:03 +0000 (12:32 +0400)]
kvm tools: Fix absence of notrace definition
Ingo reported a build breakage caused by absence of 'notrace' definition. Fix
it by adding compiler.h into own headers set.
Reported-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 20:19:10 +0000 (23:19 +0300)]
kvm tools, qcow: Force read-only mode for QCOW images
The QCOW write support isn't stable enough for wide-spread use so force
read-only mode for QCOW images.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 19:04:01 +0000 (22:04 +0300)]
kvm tools, qcow: Rename L2 table lookup functions
In preparation for refcount block caching, rename L2 table lookup functions to
use less generic names.
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 16:27:20 +0000 (19:27 +0300)]
kvm tools, qcow: Move L2 cache to 'struct qcow_l1_table'
In preparation for refcount block cache, move L2 cache data structures to
'struct qcow_l1_table'.
Cc: Prasad Joshi <prasadjoshi124@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 09:13:49 +0000 (12:13 +0300)]
kvm tools: Fix formatting in include/kvm/qcow.h
The include/kvm/qcow.h has mixed tabs and spaces. Fix that up.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 09:10:12 +0000 (12:10 +0300)]
kvm tools, qcow: Unify L1 and L2 variable names
This patch unifies qcow_read_cluster() and qcow_write_cluster() L1 and L2 table
variable names to make the code more readable.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Sun, 24 Jul 2011 09:02:34 +0000 (12:02 +0300)]
kvm tools: Rename 'struct qcow_table' to 'struct qcow_l1_table'
This patch renames the ambiguous 'struct qcow_table' to 'struct qcow_l1_table'
in preparation for introducing 'struct qcow_refcount_table'.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Sun, 24 Jul 2011 07:42:31 +0000 (10:42 +0300)]
kvm tools: Set hardcoded MAC to local administered
This sets bit one in the first octet to 1, which means that the hardcoded
MAC we use is locally administered and wasn't assigned to us.
Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Fri, 22 Jul 2011 13:21:19 +0000 (16:21 +0300)]
kvm tools: Fix warning on 32bit
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Pekka Enberg [Wed, 20 Jul 2011 13:28:31 +0000 (16:28 +0300)]
kvm tools, qcow: Fix copy-on-write image corruption
We don't handle refcount table properly so make sure we only write to clusters
that have the "copied" flag set.
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Sasha Levin [Wed, 20 Jul 2011 11:21:12 +0000 (14:21 +0300)]
kvm tools: Update max VCPU limit
Use the newly introduced KVM_CAP_MAX_VCPUS to determine max VCPU count
the kernel side supports.
Using more VCPUs than the recommended limit will issue a warning, using more
than the absolute maximum will limit it down to the absolute maximum.
Note this patch contains a hack to define KVM_CAP_MAX_VCPUS and should be
removed when the kernel patch is merged with mainline.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Aneesh Kumar K.V [Thu, 7 Jul 2011 08:44:04 +0000 (14:14 +0530)]
tools/kvm: Use kernel header version of net/9p/9p.h
don't do a copy of the kernel header
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Aneesh Kumar K.V [Thu, 7 Jul 2011 08:44:03 +0000 (14:14 +0530)]
net/9p: Remove structure not used in the code
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Mon, 18 Jul 2011 10:59:19 +0000 (18:59 +0800)]
kvm tools: Add '-Wunused-result' to WARNINGS
This makes GCC catch warn_unused_result explicitly.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 17 Jul 2011 08:57:04 +0000 (16:57 +0800)]
kvm tools: Initialize MAC and IP address for uip properly
- Drop static initialization
- Use {host,guet}_{ip,mac} to initialize
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 17 Jul 2011 08:57:03 +0000 (16:57 +0800)]
kvm tools: Initialize MAC address for virtio net properly
- Drop static initialization
- Move the initializtion out of tap init
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 17 Jul 2011 08:57:02 +0000 (16:57 +0800)]
kvm tools: Rename --host-ip-addr to --host-ip
This patch makes the network options more consistent.
We are having:
--host-ip
--host-mac
--guest-ip
--guest-mac
now.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 17 Jul 2011 08:57:01 +0000 (16:57 +0800)]
kvm tools: Introduce --host-mac option
The --host-mac option sets up MAC address of host.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Asias He [Sun, 17 Jul 2011 08:57:00 +0000 (16:57 +0800)]
kvm tools: Introduce --guest-ip option
The --guest-ip option tells which IP address to give guest through DHCP.
Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>