From: Avi Kivity <avi@qumranet.com>
To: Carsten Otte <cotte@de.ibm.com>
Cc: kvm <kvm@vger.kernel.org>, Olaf Schnapper <os@de.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Hollis Blanchard <hollisb@us.ibm.com>
Subject: Re: [PATCH] libkvm-s390
Date: Sun, 13 Jul 2008 11:29:49 +0300 [thread overview]
Message-ID: <4879BCFD.9030806@qumranet.com> (raw)
In-Reply-To: <1215797386.6014.4.camel@cotte.boeblingen.de.ibm.com>
Carsten Otte wrote:
> This patch makes libkvm build and work on s390. It should be a noop for
> all other architectures.
>
> Signed-off-by: Carsten Otte <cotte@de.ibm.com>
> ---
> Index: kvm-userspace/libkvm/config-s390x.mak
> ===================================================================
> --- /dev/null
> +++ kvm-userspace/libkvm/config-s390x.mak
> @@ -0,0 +1,6 @@
> +
> +LIBDIR := /lib
> +CFLAGS +=
> +CFLAGS += -D__s390x__
> +
> +libkvm-$(ARCH)-objs := libkvm-s390x.o
> Index: kvm-userspace/libkvm/libkvm-s390x.c
> ===================================================================
> --- /dev/null
> +++ kvm-userspace/libkvm/libkvm-s390x.c
> @@ -0,0 +1,98 @@
> +/*
> + * This header is for functions & variables that will ONLY be
> + * used inside libkvm for s390x.
> + * THESE ARE NOT EXPOSED TO THE USER AND ARE ONLY FOR USE
> + * WITHIN LIBKVM.
> + *
>
It isn't a header.
> + * derived from libkvm-powerpc.c
> + *
>
So it the comment above. So much for our review.
> + * Copyright 2008 IBM Corporation
> + * Authors:
> + * Carsten Otte <cotte@de.ibm.com>
> + *
> + * This work is licensed under the GNU LGPL license, version 2.
> + */
> +
> +#include "libkvm.h"
> +#include <errno.h>
> +#include <stdio.h>
> +#include <inttypes.h>
> +
> +int handle_dcr(struct kvm_run *run, kvm_context_t kvm, int vcpu)
> +{
> + fprintf(stderr, "%s: Operation not supported\n", __FUNCTION__);
> + return -1;
> +}
> +
> +int kvm_alloc_kernel_memory(kvm_context_t kvm, unsigned long memory,
> + void **vm_mem)
> +{
> + fprintf(stderr, "%s: Operation not supported\n", __FUNCTION__);
> + return -1;
> +}
> +
> +void *kvm_create_kernel_phys_mem(kvm_context_t kvm, unsigned long phys_start,
> + unsigned long len, int log, int writable)
> +{
> + fprintf(stderr, "%s: Operation not supported\n", __FUNCTION__);
> + return NULL;
> +}
> +
> +void kvm_show_code(kvm_context_t kvm, int vcpu)
> +{
> + fprintf(stderr, "%s: Operation not supported\n", __FUNCTION__);
> +}
> +
> +void kvm_show_regs(kvm_context_t kvm, int vcpu)
> +{
> + struct kvm_regs regs;
> + int i;
> +
> + if (kvm_get_regs(kvm, vcpu, ®s))
> + return;
> + /*
> + fprintf(stderr,"guest vcpu #%d\n", vcpu);
> + fprintf(stderr,"pc: %016"PRIx64" msr: %016"PRIx64"\n",
> + regs.pc, regs.msr);
> + fprintf(stderr,"lr: %016"PRIx64" ctr: %016"PRIx64"\n",
> + regs.lr, regs.ctr);
> + fprintf(stderr,"srr0: %016"PRIx64" srr1: %016"PRIx64"\n",
> + regs.srr0, regs.srr1);
> + for (i=0; i<32; i+=4)
> + {
> + fprintf(stderr, "gpr%02d: %016"PRIx64" %016"PRIx64" %016"PRIx64
> + " %016"PRIx64"\n", i,
> + regs.gpr[i],
> + regs.gpr[i+1],
> + regs.gpr[i+2],
> + regs.gpr[i+3]);
> + }
> +
> + fflush(stdout);
> + */
> +}
> +
> +int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
> + void **vm_mem)
> +{
> + return 0;
> +}
> +
> +int kvm_arch_create_default_phys_mem(kvm_context_t kvm,
> + unsigned long phys_mem_bytes,
> + void **vm_mem)
> +{
> + return 0;
> +}
> +
> +int kvm_arch_run(struct kvm_run *run, kvm_context_t kvm, int vcpu)
> +{
> + int ret = 0;
> +
> + switch (run->exit_reason){
> + default:
> + ret = 1;
> + break;
> + }
> + return ret;
> +}
> Index: kvm-userspace/Makefile
> ===================================================================
> --- kvm-userspace.orig/Makefile
> +++ kvm-userspace/Makefile
> @@ -5,7 +5,7 @@ DESTDIR=
>
> rpmrelease = devel
>
> -sane-arch = $(subst i386,x86,$(subst x86_64,x86,$(ARCH)))
> +sane-arch = $(subst i386,x86,$(subst x86_64,x86,$(subst s390x,s390,$(ARCH))))
>
> .PHONY: kernel user libkvm qemu bios vgabios extboot clean libfdt
>
> Index: kvm-userspace/libkvm/kvm-common.h
> ===================================================================
> --- kvm-userspace.orig/libkvm/kvm-common.h
> +++ kvm-userspace/libkvm/kvm-common.h
> @@ -18,8 +18,15 @@
>
> /* FIXME: share this number with kvm */
> /* FIXME: or dynamically alloc/realloc regions */
> +#ifndef __s390x__
> #define KVM_MAX_NUM_MEM_REGIONS 8u
> +#define MAX_VCPUS 64
>
16
> +#else
> +#define KVM_MAX_NUM_MEM_REGIONS 1u
> #define MAX_VCPUS 16
>
64
> +#define LIBKVM_S390_ORIGIN (0UL)
>
Thought you got rid of that?
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2008-07-13 8:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-11 17:29 [PATCH] libkvm-s390 Carsten Otte
2008-07-13 8:29 ` Avi Kivity [this message]
2008-07-14 11:33 ` Christian Borntraeger
2008-07-14 11:44 ` Avi Kivity
2008-07-14 12:25 ` Christian Borntraeger
2008-07-14 15:34 ` Anthony Liguori
2008-07-14 17:00 ` Christian Borntraeger
2008-07-14 18:00 ` Anthony Liguori
2008-07-16 15:28 ` [PATCH v2/RFC] libkvm-s390 Christian Borntraeger
2008-07-17 11:08 ` Christian Ehrhardt
2008-07-17 15:28 ` [PATCH v3] libkvm-s390 Christian Borntraeger
2008-07-19 7:56 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4879BCFD.9030806@qumranet.com \
--to=avi@qumranet.com \
--cc=borntraeger@de.ibm.com \
--cc=cotte@de.ibm.com \
--cc=hollisb@us.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=os@de.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.