From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43314) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TY5HJ-0003Qj-Oa for qemu-devel@nongnu.org; Mon, 12 Nov 2012 20:27:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TY5HG-0006Jy-ML for qemu-devel@nongnu.org; Mon, 12 Nov 2012 20:27:01 -0500 Received: from mx1.redhat.com ([209.132.183.28]:61194) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TY5HG-0006Jp-Df for qemu-devel@nongnu.org; Mon, 12 Nov 2012 20:26:58 -0500 Date: Mon, 12 Nov 2012 23:17:55 -0200 From: Marcelo Tosatti Message-ID: <20121113011755.GA27831@amt.cnet> References: <1351700688-42353-1-git-send-email-cornelia.huck@de.ibm.com> <1351700688-42353-3-git-send-email-cornelia.huck@de.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1351700688-42353-3-git-send-email-cornelia.huck@de.ibm.com> Subject: Re: [Qemu-devel] [PATCH 2/3] s390: Virtual channel subsystem support. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: linux-s390 , Anthony Liguori , KVM , Carsten Otte , Sebastian Ott , Heiko Carstens , qemu-devel , Alexander Graf , Christian Borntraeger , Avi Kivity , Martin Schwidefsky Hi Cornelia, On Wed, Oct 31, 2012 at 05:24:47PM +0100, Cornelia Huck wrote: > Provide a mechanism for qemu to provide fully virtual subchannels to > the guest. In the KVM case, this relies on the kernel's css support > for I/O and machine check interrupt handling. The !KVM case handles > interrupts on its own. > > Signed-off-by: Cornelia Huck > --- > hw/s390x/Makefile.objs | 1 + > hw/s390x/css.c | 1209 ++++++++++++++++++++++++++++++++++++++++++++ > hw/s390x/css.h | 90 ++++ > target-s390x/Makefile.objs | 2 +- > target-s390x/cpu.h | 232 +++++++++ > target-s390x/helper.c | 146 ++++++ > target-s390x/ioinst.c | 737 +++++++++++++++++++++++++++ > target-s390x/ioinst.h | 213 ++++++++ > target-s390x/kvm.c | 251 ++++++++- > target-s390x/misc_helper.c | 6 +- > 10 files changed, 2872 insertions(+), 15 deletions(-) > create mode 100644 hw/s390x/css.c > create mode 100644 hw/s390x/css.h > create mode 100644 target-s390x/ioinst.c > create mode 100644 target-s390x/ioinst.h > +void kvm_s390_enable_css_support(CPUS390XState *env) > +{ > + struct kvm_enable_cap cap = {}; > + int r; > + > + /* Activate host kernel channel subsystem support. */ > + if (kvm_enabled()) { > + /* One CPU has to run */ > + s390_add_running_cpu(env); Care to explain this? > + > + cap.cap = KVM_CAP_S390_CSS_SUPPORT; > + r = kvm_vcpu_ioctl(env, KVM_ENABLE_CAP, &cap); > + assert(r == 0); > + } > +}