Re: [RFC/PATCH] Use kernel supplied MMU info for kvm tool

2012-07-17 Thread Matt Evans
, I heard the scream on IRC. Sorry. ;-) Acked-by: Matt Evans m...@ozlabs.org Matt -- To unsubscribe from this list: send the line unsubscribe kvm-ppc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

[PATCH] kvm tools: Enable PPC64 to build static

2012-02-05 Thread Matt Evans
By enable, I mean fix; the re-jigged commit 7ef85e8b builds libfdt using OBJS rather than OTHEROBJS hence ignores the relaxed CFLAGS. This commit builds it via OTHEROBJS. Signed-off-by: Matt Evans m...@ozlabs.org --- Pekka, not quite sure how this slipped through as I was building static

Re: [PATCH V4 2/7] kvm tools: Generate SPAPR PPC64 guest device tree

2012-01-31 Thread Matt Evans
On 31 Jan 2012, at 18:59, Pekka Enberg wrote: On Tue, Jan 31, 2012 at 8:34 AM, Matt Evans m...@ozlabs.org wrote: +static struct cpu_info cpu_power7_info = { + POWER7, + power7_page_sizes_prop, sizeof(power7_page_sizes_prop), + power7_segment_sizes_prop, sizeof

Re: [PATCH V4 3/7] kvm tools: Add SPAPR PPC64 hcall rtascall structure

2012-01-31 Thread Matt Evans
On 31 Jan 2012, at 19:11, Pekka Enberg wrote: On Tue, Jan 31, 2012 at 8:34 AM, Matt Evans m...@ozlabs.org wrote: +#define DEBUG_SPAPR_HCALLS I suppose this shouldn't be defined by default? Well, I had a bit of a debate about it. I left it on as it is actually interesting whilst

[PATCH] KVM: PPC: Book3s: PR: Add SPAPR H_BULK_REMOVE support

2012-01-30 Thread Matt Evans
SPAPR support includes various in-kernel hypercalls, improving performance by cutting out the exit to userspace. H_BULK_REMOVE is implemented in this patch. Signed-off-by: Matt Evans m...@ozlabs.org --- Alex, my zomg, ls SIGILLs! on IRC was due to a former broken version of this patch

[PATCH V4 0/7] Add initial SPAPR PPC64 architecture support

2012-01-30 Thread Matt Evans
dependency on 64bit libfdt (which isn't in some distros). - Spit polish Thanks to David Alex for the PPC-related reviews! Matt Evans (7): kvm tools: PPC64, add HPT/SDR1 for -PR KVM kvm tools: Generate SPAPR PPC64 guest device tree kvm tools: Add SPAPR PPC64 hcall rtascall structure

[PATCH V4 1/7] kvm tools: PPC64, add HPT/SDR1 for -PR KVM

2012-01-30 Thread Matt Evans
forced to use them. A new option, '--hugetlbfs default', uses a default path for 16M pages for HV mode, if required. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/powerpc/include/kvm/kvm-arch.h |2 ++ tools/kvm/powerpc/kvm-cpu.c | 24 +--- tools/kvm

[PATCH V4 2/7] kvm tools: Generate SPAPR PPC64 guest device tree

2012-01-30 Thread Matt Evans
and PPC970 host CPUs. Future support of more CPUs is possible. libfdt is included from scripts/dtc/libfdt. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile | 26 - tools/kvm/powerpc/cpu_info.c | 83 tools/kvm/powerpc

[PATCH V4 4/7] kvm tools: Add SPAPR PPC64 HV console

2012-01-30 Thread Matt Evans
This adds the console code, plus VIO HV terminal nodes are added to the device tree so the guest kernel will pick it up. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |1 + tools/kvm/powerpc/kvm.c | 33 tools/kvm/powerpc/spapr_hvcons.c

[PATCH V4 7/7] kvm tools: Add PPC64 kvm_cpu__emulate_io()

2012-01-30 Thread Matt Evans
This is the final piece of the puzzle for PPC SPAPR PCI; this function splits MMIO accesses into the two PHB windows directs things to MMIO/IO emulation as appropriate. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |1 + tools/kvm/powerpc/include

[PATCH V4 6/7] kvm tools: Add PPC64 PCI Host Bridge

2012-01-30 Thread Matt Evans
This provides the PCI bridge, definitions for the address layout of the windows and wires in IRQs. Once PCI devices are all registered, they are enumerated and DT nodes generated for each. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/powerpc/include/kvm/kvm-arch.h |3 + tools/kvm

Re: [PATCH V3 2/2] kvm tools: Create arch-specific kvm_cpu__emulate_{mm}io()

2012-01-05 Thread Matt Evans
Hey Alex, On 24/12/11 00:39, Alexander Graf wrote: On 23.12.2011, at 14:26, Matt Evans wrote: On 23/12/2011, at 11:58 PM, Alexander Graf wrote: On 13.12.2011, at 07:21, Matt Evans wrote: Different architectures will deal with MMIO exits differently. For example, KVM_EXIT_IO is x86

Re: [PATCH V2 1/2] kvm tools: Add initial SPAPR PPC64 architecture support

2011-12-14 Thread Matt Evans
Heya Alex, On 13/12/11 19:23, Alexander Graf wrote: On 13.12.2011, at 08:00, Matt Evans m...@ozlabs.org wrote: This patch adds a new arch directory, powerpc, basic file structure, register setup and where necessary stubs out arch-specific functions (e.g. interrupts, runloop exits

Re: [PATCH V2 1/2] kvm tools: Add initial SPAPR PPC64 architecture support

2011-12-14 Thread Matt Evans
On 15/12/11 12:37, Alexander Graf wrote: On 15.12.2011, at 02:27, Matt Evans wrote: Heya Alex, On 13/12/11 19:23, Alexander Graf wrote: On 13.12.2011, at 08:00, Matt Evans m...@ozlabs.org wrote: This patch adds a new arch directory, powerpc, basic file structure, register setup

Re: [PATCH V2 1/2] kvm tools: Add initial SPAPR PPC64 architecture support

2011-12-13 Thread Matt Evans
On 14 Dec 2011, at 04:43, Pekka Enberg penb...@kernel.org wrote: On Tue, Dec 13, 2011 at 9:00 AM, Matt Evans m...@ozlabs.org wrote: +int irq__register_device(u32 dev, u8 *num, u8 *pin, u8 *line) +{ + fprintf(stderr, irq__register_device(%d, [%d], [%d], [%d]\n, + dev

Re: [PATCH V2 0/2] kvm tools: PPC64 basic support

2011-12-13 Thread Matt Evans
On 13/12/11 21:23, Sasha Levin wrote: On Tue, 2011-12-13 at 18:00 +1100, Matt Evans wrote: The second patch is a small fix for generic virtio code (now that we have a PPC build) which removes reliance on ioeventfds for PPC, which doesn't provide them. Hm... ioeventfds are located

[PATCH V3 0/2] kvm tools: Prepare kvmtool for another architecture

2011-12-12 Thread Matt Evans
The last remaining patches from the preparation series, with changes: - Map from hugetlbfs does plain statfs (without odd error checking), checks result of ftruncate() - Remove typo whereby kvm_cpu__emulate_mmio() calls self. Cheers, Matt Matt Evans (2): kvm tools: Add ability to map

[PATCH V3 1/2] kvm tools: Add ability to map guest RAM from hugetlbfs

2011-12-12 Thread Matt Evans
MADV_HUGEPAGES so that, if the user asks for hugepages, we definitely are using hugepages. (This is particularly useful for architectures that don't yet support KVM without hugepages, so we definitely need to use them for the whole of guest RAM.) Signed-off-by: Matt Evans m...@ozlabs.org --- tools

[PATCH V3 2/2] kvm tools: Create arch-specific kvm_cpu__emulate_{mm}io()

2011-12-12 Thread Matt Evans
the main runloop's IO and MMIO exit handlers. For x86, these directly call kvm__emulate_io() and kvm__emulate_mmio() but other architectures will perform some address munging before passing on the call. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm-cpu.c | 34

Re: [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately

2011-12-12 Thread Matt Evans
Hi Pekka, On 09/12/11 17:53, Matt Evans wrote: kvmtool's types.h includes asm/types.h, which by default on PPC64 brings in int-l64.h; define __SANE_USERSPACE_TYPES__ to get LL64 types. This patch also adds CFLAGS to the final link, so that any -m64 is obeyed when linking, too. Just noticed

[PATCH V2 0/2] kvm tools: PPC64 basic support

2011-12-12 Thread Matt Evans
provide them. Matt Evans (2): kvm tools: Add initial SPAPR PPC64 architecture support kvm tools: Make virtio-pci's ioeventfd__add_event() fall back gracefully if ioeventfds unavailable tools/kvm/Makefile | 10 + tools/kvm/include/kvm/ioeventfd.h|3

[PATCH V2 1/2] kvm tools: Add initial SPAPR PPC64 architecture support

2011-12-12 Thread Matt Evans
(plus initrd). (bzImages are not used on PPC, and this series does not add zImage support or an ELF loader.) The intention is to later support loading firmware such as SLOF. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile | 10 + tools/kvm/kvm.c

[PATCH V2 2/2] kvm tools: Make virtio-pci's ioeventfd__add_event() fall back gracefully if ioeventfds unavailable

2011-12-12 Thread Matt Evans
Some KVM implementations (e.g. PPC) don't yet support ioeventfds, so don't bomb out/die. virtio-pci is able to function if it instead uses normal IO port notification. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile|2 +- tools/kvm/include/kvm/ioeventfd.h

[PATCH V2 0/6] Add initial SPAPR PPC64 architecture support

2011-12-12 Thread Matt Evans
of the code within is borrowed/based upon code in QEMU, particularly the XICS emulation, device tree construction and PCI setup. Matt Evans (6): kvm tools: Generate SPAPR PPC64 guest device tree kvm tools: Add SPAPR PPC64 hcall rtascall structure kvm tools: Add SPAPR PPC64 HV console kvm

[PATCH V2 1/6] kvm tools: Generate SPAPR PPC64 guest device tree

2011-12-12 Thread Matt Evans
of a variety of POWER CPUs should acquire this info from the host and encode appropriately. This requires a 64-bit libfdt. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |3 +- tools/kvm/powerpc/include/kvm/kvm-arch.h | 10 ++ tools/kvm/powerpc/kvm.c

[PATCH V2 2/6] kvm tools: Add SPAPR PPC64 hcall rtascall structure

2011-12-12 Thread Matt Evans
tree. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |2 + tools/kvm/powerpc/kvm-cpu.c |6 + tools/kvm/powerpc/kvm.c | 46 - tools/kvm/powerpc/spapr.h | 105 ++ tools/kvm/powerpc/spapr_hcall.c | 132

[PATCH V2 6/6] kvm tools: Add PPC64 kvm_cpu__emulate_io()

2011-12-12 Thread Matt Evans
This is the final piece of the puzzle for PPC SPAPR PCI; this function splits MMIO accesses into the two PHB windows directs things to MMIO/IO emulation as appropriate. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |1 + tools/kvm/powerpc/include

Re: [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately

2011-12-11 Thread Matt Evans
On 09/12/11 19:29, Pekka Enberg wrote: On Fri, Dec 9, 2011 at 10:24 AM, Sasha Levin levinsasha...@gmail.com wrote: If you also got kernel patches that add __SANE_USERSPACE_TYPES__ to the headers, and KVM_CAP_NR_VCPUS to KVM PPC, we can carry them in the KVM tools tree as well. Yup, all we

Re: [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs

2011-12-11 Thread Matt Evans
On 09/12/11 18:39, Sasha Levin wrote: On Fri, 2011-12-09 at 17:55 +1100, Matt Evans wrote: Add a --hugetlbfs commandline option to give a path to hugetlbfs-map guest memory (down in kvm__arch_init()). For x86, guest memory is a normal ANON mmap() if this option is not provided, otherwise

[PATCH V2 00/23] kvm tools: Prepare kvmtool for another architecture

2011-12-08 Thread Matt Evans
on top of Pekka's linux-kvm.git as of today. Cheers, Matt Matt Evans (23): kvm tools: Only build/init i8042 on x86 kvm tools: Add Makefile parameter for kernel include path kvm tools: Re-arrange Makefile to heed CFLAGS before checking for optional libs kvm tools: Get correct 64-bit

[PATCH V2 01/23] kvm tools: Only build/init i8042 on x86

2011-12-08 Thread Matt Evans
Not every architecture has an i8042 kbd controller, so only use this when building for x86. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |2 +- tools/kvm/builtin-run.c |2 ++ 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/tools/kvm/Makefile b

[PATCH V2 03/23] kvm tools: Re-arrange Makefile to heed CFLAGS before checking for optional libs

2011-12-08 Thread Matt Evans
The checks for optional libraries build code to perform the tests, so should respect certain CFLAGS -- in particular, -m64 so we check for 64bit libraries if they're required. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile | 86

[PATCH V2 02/23] kvm tools: Add Makefile parameter for kernel include path

2011-12-08 Thread Matt Evans
This patch adds an 'I' parameter to override the default kernel include path of '../../include'. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |9 +++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile index f58a1d8

[PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately

2011-12-08 Thread Matt Evans
kvmtool's types.h includes asm/types.h, which by default on PPC64 brings in int-l64.h; define __SANE_USERSPACE_TYPES__ to get LL64 types. This patch also adds CFLAGS to the final link, so that any -m64 is obeyed when linking, too. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile

[PATCH V2 05/23] kvm tools: Add arch-specific KVM_RUN exit handling via kvm_cpu__handle_exit()

2011-12-08 Thread Matt Evans
This patch creates a new function in x86/kvm-cpu.c, kvm_cpu__handle_exit(), in which arch-specific exit reasons can be handled outside of the common runloop. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/kvm-cpu.h |2 ++ tools/kvm/kvm-cpu.c | 10

[PATCH V2 06/23] kvm tools: Don't die if KVM_CAP_NR_VCPUS isn't available

2011-12-08 Thread Matt Evans
We die() if we can't read KVM_CAP_NR_VCPUS, but the API docs suggest to assume the value 4 in this case. This is pertinent to PPC KVM, which currently does not support this CAP. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm.c |6 +- 1 files changed, 5 insertions(+), 1

[PATCH V2 09/23] kvm tools: Move arch-specific cmdline init into kvm__arch_set_cmdline()

2011-12-08 Thread Matt Evans
Different systems will want different base kernel commandlines, e.g. non-x86 systems probably don't need noapic, i8042.* etc., so set the commandline up in arch-specific code. Then, if the resulting commandline is empty, don't strcat a space onto the front. Signed-off-by: Matt Evans m

[PATCH V2 07/23] kvm tools: Fix KVM_RUN exit code check

2011-12-08 Thread Matt Evans
kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures may return positive values in non-error cases, whereas real errors are always negative return values. Check for those instead. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm-cpu.c |2 +- 1 files

[PATCH V2 10/23] kvm tools: Add CONSOLE_HV term type and allow it to be selected

2011-12-08 Thread Matt Evans
This patch paves the way for adding a hypervisor console, useful on systems that support one out of the box yet don't have either serial port or virtio console support (e.g. kernels expecting POWER SPAPR). Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |8

[PATCH V2 12/23] kvm tools: Allow initrd_check() to match a cpio

2011-12-08 Thread Matt Evans
cpios are valid as initrds too, so allow them through the check. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm.c |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/kvm/kvm.c b/tools/kvm/kvm.c index 0bbe9ba..d26e3d7 100644 --- a/tools/kvm/kvm.c

[PATCH V2 13/23] kvm tools: Allow load_flat_binary() to load an initrd alongside

2011-12-08 Thread Matt Evans
architecture. :-) Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/kvm.h |2 +- tools/kvm/kvm.c | 10 ++ tools/kvm/x86/kvm.c | 13 ++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tools/kvm/include/kvm/kvm.h b/tools

[PATCH V2 14/23] kvm tools: Initialise PCI before devices start getting registered with PCI

2011-12-08 Thread Matt Evans
Re-arrange pci__init() in builtin-run such that it comes before devices are initialised. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index

[PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs

2011-12-08 Thread Matt Evans
Add a --hugetlbfs commandline option to give a path to hugetlbfs-map guest memory (down in kvm__arch_init()). For x86, guest memory is a normal ANON mmap() if this option is not provided, otherwise a hugetlbfs mmap. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c

[PATCH V2 19/23] kvm tools: Endian-sanitise pci.h and PCI device setup

2011-12-08 Thread Matt Evans
vesa, pci-shmem and virtio-pci devices need to set up config space with little-endian conversions (as config space is LE). The pci_config_address bitfield also needs to be reversed when building on BE systems. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/hw/pci-shmem.c | 23

[PATCH V2 22/23] kvm tools: Arch-specific define for PCI MMIO allocation area

2011-12-08 Thread Matt Evans
pci_get_io_space_block() used to grab addresses from KVM_32BIT_GAP_START + 0x100, which is x86-specific. Create a new define, KVM_PCI_MMIO_AREA, to specify a bus address these allocations can come from. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/pci.c

[PATCH] KVM: PPC: Add KVM_CAP_NR_VCPUS and KVM_CAP_MAX_VCPUS

2011-12-07 Thread Matt Evans
PPC KVM lacks these two capabilities, and as such a userland system must assume a max of 4 VCPUs (following api.txt). With these, a userland can determine a more realistic limit. Signed-off-by: Matt Evans m...@ozlabs.org --- Alex: For when you're back in civilisation -- the kvmtool/PPC stuff

Re: [PATCH 08/28] kvm tools: Fix KVM_RUN exit code check

2011-12-07 Thread Matt Evans
;) ) Cheers, Matt On Tue, 2011-12-06 at 14:39 +1100, Matt Evans wrote: kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures may return positive values in non-error cases, whereas real errors are always negative return values. Check for those instead. Signed-off

Re: [PATCH 05/28] kvm tools: 64-bit tidy; use PRIx64 when printf'ing u64s and link appropriately

2011-12-07 Thread Matt Evans
On 08/12/11 15:49, Ingo Molnar wrote: * Matt Evans m...@ozlabs.org wrote: On 08/12/11 04:14, Pekka Enberg wrote: On Wed, 7 Dec 2011, Ingo Molnar wrote: * Matt Evans m...@ozlabs.org wrote: [...] I haven't looked closely at Matt's patches, but it should be possible to use [un]signed

Re: [PATCH 05/28] kvm tools: 64-bit tidy; use PRIx64 when printf'ing u64s and link appropriately

2011-12-07 Thread Matt Evans
On 08/12/11 15:56, Matt Evans wrote: On 08/12/11 15:49, Ingo Molnar wrote: * Matt Evans m...@ozlabs.org wrote: On 08/12/11 04:14, Pekka Enberg wrote: On Wed, 7 Dec 2011, Ingo Molnar wrote: * Matt Evans m...@ozlabs.org wrote: [...] I haven't looked closely at Matt's patches

Re: [PATCH 05/28] kvm tools: 64-bit tidy; use PRIx64 when printf'ing u64s and link appropriately

2011-12-07 Thread Matt Evans
On 08/12/11 16:49, Ingo Molnar wrote: * Matt Evans m...@ozlabs.org wrote: Since tools/kvm/include/linux/types.h only requires __u32, __u64 et al from asm/types.h, wouldn't it be most straightforward to just #include asm-generic/int-ll64.h? This avoids #define __KERNEL__ breaking other

Re: [PATCH 08/28] kvm tools: Fix KVM_RUN exit code check

2011-12-06 Thread Matt Evans
to the expanded the return codes (and updating api.txt) for varying kinds of positive success? Cheers, Matt On Tue, 2011-12-06 at 14:39 +1100, Matt Evans wrote: kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures may return positive values in non-error cases

Re: [PATCH 21/28] kvm tools: Add --hugetlbfs option to specify memory path

2011-12-06 Thread Matt Evans
initial SPAPR PPC64 architecture support patch, which uses it. I could've mushed that into the later PPC series but I thought it'd be clearer to do the generic/x86 stuff separately. Matt On Tue, 2011-12-06 at 14:41 +1100, Matt Evans wrote: Some architectures may want to use hugetlbfs to mmap

Re: [PATCH 16/28] kvm tools: Allow load_flat_binary() to load an initrd alongside

2011-12-06 Thread Matt Evans
Hi Cyrill, On 06/12/11 23:04, Cyrill Gorcunov wrote: On Tue, Dec 06, 2011 at 12:29:48PM +0200, Pekka Enberg wrote: ... Otherwise looks OK to me. Cyrill? It might be not seen from patch (or my local kvm repo is not yet updated well) but I somehow miss who will be reading initrd in case

Re: [PATCH 14/28] kvm tools: Fix term_getc(), term_getc_iov() endian bugs

2011-12-06 Thread Matt Evans
Hi Asias, On 06/12/11 23:00, Asias He wrote: On 12/06/2011 06:24 PM, Pekka Enberg wrote: On Tue, Dec 6, 2011 at 5:40 AM, Matt Evans m...@ozlabs.org wrote: term_getc()'s int c has one byte written into it (at its lowest address) by read_in_full(). This is expected to be the least significant

Re: [PATCH 17/28] kvm tools: Only call symbol__init() if we have BFD

2011-12-06 Thread Matt Evans
this patch from the series. ;-) Thanks, Matt On Tue, 2011-12-06 at 14:41 +1100, Matt Evans wrote: CONFIG_HAS_BFD is optional, symbol.c inclusion is optional -- so make its init call dependent on CONFIG_HAS_BFD. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c

Re: [PATCH 07/28] kvm tools: Move 'kvm__recommended_cpus' to arch-specific code

2011-12-06 Thread Matt Evans
to 4 CPUs until the kernel supports that CAP. (I'll see about this part too.) Thanks, Matt On Tue, 2011-12-06 at 14:39 +1100, Matt Evans wrote: Architectures can recommend/count/determine number of CPUs differently, so move this out of generic code. Signed-off-by: Matt Evans m

Re: [PATCH 28/28] kvm tools: Create arch-specific kvm_cpu__emulate_io()

2011-12-06 Thread Matt Evans
. Cheers, Matt On Tue, 2011-12-06 at 14:43 +1100, Matt Evans wrote: Different architectures will deal with MMIO exits differently. For example, KVM_EXIT_IO is x86-specific, and I/O cycles are often synthesisted by steering into windows in PCI bridges on other architectures

Re: [PATCH 05/28] kvm tools: 64-bit tidy; use PRIx64 when printf'ing u64s and link appropriately

2011-12-06 Thread Matt Evans
Hi Ingo, On 06/12/11 21:24, Ingo Molnar wrote: * Paul Mackerras pau...@samba.org wrote: On Tue, Dec 06, 2011 at 09:28:27AM +0100, Ingo Molnar wrote: * Sasha Levin levinsasha...@gmail.com wrote: Ingo actually got us to remove all the PRI* specifiers, but that was back when we only did

Re: [PATCH 07/28] kvm tools: Move 'kvm__recommended_cpus' to arch-specific code

2011-12-06 Thread Matt Evans
On 07/12/11 17:34, Sasha Levin wrote: On Wed, 2011-12-07 at 17:17 +1100, Matt Evans wrote: On 06/12/11 19:20, Sasha Levin wrote: Why is it getting moved out of generic code? This is used to determine the maximum amount of vcpus supported by the host for a single guest, and as far as I know

Re: [PATCH 02/28] kvm tools: Only build/init i8042 on x86

2011-12-06 Thread Matt Evans
On 07/12/11 05:59, Scott Wood wrote: On 12/05/2011 09:37 PM, Matt Evans wrote: Not every architecture has an i8042 kbd controller, so only use this when building for x86. There are non-x86 machines that have one, though -- does KVM tool have any sort of target configuration mechanism? See

[PATCH 02/28] kvm tools: Only build/init i8042 on x86

2011-12-05 Thread Matt Evans
Not every architecture has an i8042 kbd controller, so only use this when building for x86. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |2 +- tools/kvm/builtin-run.c |2 ++ 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/tools/kvm/Makefile b

[PATCH 03/28] kvm tools: Add Makefile parameter for kernel include path

2011-12-05 Thread Matt Evans
This patch adds an 'I' parameter to override the default kernel include path of '../../include'. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |9 +++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile index f58a1d8

[PATCH 07/28] kvm tools: Move 'kvm__recommended_cpus' to arch-specific code

2011-12-05 Thread Matt Evans
Architectures can recommend/count/determine number of CPUs differently, so move this out of generic code. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm.c | 30 -- tools/kvm/x86/kvm.c | 30 ++ 2 files changed, 30

[PATCH 08/28] kvm tools: Fix KVM_RUN exit code check

2011-12-05 Thread Matt Evans
kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures may return positive values in non-error cases, whereas real errors are always negative return values. Check for those instead. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm-cpu.c |2 +- 1 files

[PATCH 09/28] kvm tools: Add kvm__arch_periodic_poll()

2011-12-05 Thread Matt Evans
Currently, the SIGALRM handler calls device poll functions (for serial, virtio console) directly. Which devices are present and which require polling is a system-specific decision, so create a new function called from common code move the x86-specific poll calls into it. Signed-off-by: Matt

[PATCH 11/28] kvm tools: kvm.c needs to include sys/stat.h for mkdir

2011-12-05 Thread Matt Evans
Fix a missing include. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/tools/kvm/kvm.c b/tools/kvm/kvm.c index e526483..33243f1 100644 --- a/tools/kvm/kvm.c +++ b/tools/kvm/kvm.c @@ -8,6 +8,7 @@ #include

[PATCH 12/28] kvm tools: Move arch-specific cmdline init into kvm__arch_set_cmdline()

2011-12-05 Thread Matt Evans
Different systems will want different base kernel commandlines, e.g. non-x86 systems probably don't need noapic, i8042.* etc., so set the commandline up in arch-specific code. Then, if the resulting commandline is empty, don't strcat a space onto the front. Signed-off-by: Matt Evans m

[PATCH 13/28] kvm tools: Add CONSOLE_HV term type and allow it to be selected

2011-12-05 Thread Matt Evans
This patch paves the way for adding a hypervisor console, useful on systems that support one out of the box yet don't have either serial port or virtio console support (e.g. kernels expecting POWER SPAPR). Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |8

[PATCH 14/28] kvm tools: Fix term_getc(), term_getc_iov() endian bugs

2011-12-05 Thread Matt Evans
than an int. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/term.c |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/kvm/term.c b/tools/kvm/term.c index fb5d71c..440884e 100644 --- a/tools/kvm/term.c +++ b/tools/kvm/term.c @@ -30,11 +30,10 @@ int term_fds

[PATCH 15/28] kvm tools: Allow initrd_check() to match a cpio

2011-12-05 Thread Matt Evans
cpios are valid as initrds too, so allow them through the check. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/kvm.c |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/kvm/kvm.c b/tools/kvm/kvm.c index 33243f1..457de1a 100644 --- a/tools/kvm/kvm.c

[PATCH 17/28] kvm tools: Only call symbol__init() if we have BFD

2011-12-05 Thread Matt Evans
CONFIG_HAS_BFD is optional, symbol.c inclusion is optional -- so make its init call dependent on CONFIG_HAS_BFD. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm

[PATCH 16/28] kvm tools: Allow load_flat_binary() to load an initrd alongside

2011-12-05 Thread Matt Evans
architecture. :-) Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/kvm.h |2 +- tools/kvm/kvm.c | 10 ++ tools/kvm/x86/kvm.c | 12 +--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/tools/kvm/include/kvm/kvm.h b/tools

[PATCH 18/28] kvm tools: Initialise PCI before devices start getting registered with PCI

2011-12-05 Thread Matt Evans
Re-arrange pci__init() in builtin-run such that it comes before devices are initialised. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index

[PATCH 19/28] kvm tools: Perform CPU and firmware setup after devices are added

2011-12-05 Thread Matt Evans
setup, cpu init to occur last. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c | 24 ++-- 1 files changed, 14 insertions(+), 10 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index 32e19e7..576dcfa 100644 --- a/tools/kvm/builtin

[PATCH 21/28] kvm tools: Add --hugetlbfs option to specify memory path

2011-12-05 Thread Matt Evans
Some architectures may want to use hugetlbfs to mmap() their guest memory, so allow a path to be specified on the commandline and pass it to kvm__arch_init(). Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/builtin-run.c |4 +++- tools/kvm/include/kvm/kvm.h |4 ++-- tools/kvm

[PATCH 22/28] kvm tools: Move PCI_MAX_DEVICES to pci.h

2011-12-05 Thread Matt Evans
Other pieces of kvmtool may be interested in PCI_MAX_DEVICES. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/pci.h |1 + tools/kvm/pci.c |1 - 2 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/kvm/include/kvm/pci.h b/tools/kvm/include

[PATCH 23/28] kvm tools: Endian-sanitise pci.h and PCI device setup

2011-12-05 Thread Matt Evans
vesa, pci-shmem and virtio-pci devices need to set up config space with little-endian conversions (as config space is LE). The pci_config_address bitfield also needs to be reversed when building on BE systems. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/hw/pci-shmem.c | 23

[PATCH 24/28] kvm tools: Fix virtio-pci endian bug when reading VIRTIO_PCI_QUEUE_NUM

2011-12-05 Thread Matt Evans
The field size is currently wrong, read into a 32bit word instead of 16. This casues trouble when BE. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/virtio/pci.c |3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/tools/kvm/virtio/pci.c b/tools/kvm/virtio/pci.c

[PATCH 25/28] kvm tools: Correctly set virtio-pci bar_size and remove hardwired address

2011-12-05 Thread Matt Evans
The BAR addresses are set up fine, but missed the bar_size[] array which is now updated correspondingly. Use PCI_IO_SIZE instead of '0x100'. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/virtio/pci.c |7 +-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools

[PATCH 26/28] kvm tools: Add pci__config_{rd,wr}(), pci__find_dev() and fix PCI config register addressing

2011-12-05 Thread Matt Evans
be read directly. This patch allows this sort of addressing. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/pci.h |5 +++ tools/kvm/pci.c | 63 +++--- 2 files changed, 45 insertions(+), 23 deletions(-) diff --git a/tools/kvm

[PATCH 27/28] kvm tools: Arch-specific define for PCI MMIO allocation area

2011-12-05 Thread Matt Evans
pci_get_io_space_block() used to grab addresses from KVM_32BIT_GAP_START + 0x100, which is x86-specific. Create a new define, KVM_PCI_MMIO_AREA, to specify a bus address these allocations can come from. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/pci.c

[PATCH 1/8] kvm tools: Add initial SPAPR PPC64 architecture support

2011-12-05 Thread Matt Evans
(plus initrd). (bzImages are not used on PPC, and this series does not add zImage support or an ELF loader.) The intention is to later support loading firmware such as SLOF. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile | 10 + tools/kvm/kvm.c

[PATCH 2/8] kvm tools: Generate SPAPR PPC64 guest device tree

2011-12-05 Thread Matt Evans
of a variety of POWER CPUs should acquire this info from the host and encode appropriately. This requires a 64-bit libfdt. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |3 +- tools/kvm/powerpc/kvm.c | 141 +++ 2 files changed

[PATCH 3/8] kvm tools: Add SPAPR PPC64 hcall rtascall structure

2011-12-05 Thread Matt Evans
tree. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |2 + tools/kvm/powerpc/kvm-cpu.c |5 + tools/kvm/powerpc/kvm.c | 39 +- tools/kvm/powerpc/spapr.h | 308 +++ tools/kvm/powerpc/spapr_hcall.c

[PATCH 5/8] kvm tools: Add PPC64 XICS interrupt controller support

2011-12-05 Thread Matt Evans
, kvm__irq_line() can be called to raise an IRQ on XICS. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/Makefile |1 + tools/kvm/powerpc/include/kvm/kvm-arch.h |1 + tools/kvm/powerpc/include/kvm/kvm-cpu-arch.h |2 + tools/kvm/powerpc/irq.c

[PATCH 6/8] kvm tools: Add PPC64 PCI Host Bridge

2011-12-05 Thread Matt Evans
This provides the PCI bridge, definitions for the address layout of the windows and wires in IRQs. Once PCI devices are all registered, they are enumerated and DT nodes generated for each. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/powerpc/include/kvm/kvm-arch.h |3 + tools/kvm

[PATCH 8/8] kvm tools: Make virtio-pci's ioeventfd__add_event() fall back gracefully if ioeventfds unavailable

2011-12-05 Thread Matt Evans
PPC KVM doesn't yet support ioeventfds, so don't bomb out/die. virtio-pci is able to function if it instead uses normal IO port notification. Signed-off-by: Matt Evans m...@ozlabs.org --- tools/kvm/include/kvm/ioeventfd.h |3 ++- tools/kvm/ioeventfd.c | 12 +--- tools

Re: [PATCH 00/28] kvm tools: Prepare kvmtool for another architecture

2011-12-05 Thread Matt Evans
On 06/12/11 14:35, Matt Evans wrote: This patch series rearranges and tidies various parts of kvmtool to pave the way for the addition of support for another architecture -- SPAPR PPC64. A second patch series will follow to present the PPC64 support. I forgot to mention, of course

Re: [PATCH 18/26] KVM: PPC: KVM PV guest stubs

2010-06-27 Thread Matt Evans
Howdy Alex! Alexander Graf wrote: We will soon start and replace instructions from the text section with other, paravirtualized versions. To ease the readability of those patches I split out the generic looping and magic page mapping code out. This patch still only contains stubs. But at