From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLDT7-0005U6-Ve for qemu-devel@nongnu.org; Fri, 31 Jul 2015 12:47:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZLDT0-0007aW-6L for qemu-devel@nongnu.org; Fri, 31 Jul 2015 12:47:37 -0400 Received: from mail-wi0-f176.google.com ([209.85.212.176]:32960) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLDSz-0007aF-W2 for qemu-devel@nongnu.org; Fri, 31 Jul 2015 12:47:30 -0400 Received: by wicmv11 with SMTP id mv11so65029698wic.0 for ; Fri, 31 Jul 2015 09:47:29 -0700 (PDT) Message-ID: <55BBA69D.4040707@virtualopensystems.com> Date: Fri, 31 Jul 2015 18:47:25 +0200 From: Christian Pinto MIME-Version: 1.0 References: <55B63805.8050603@virtualopensystems.com> <55BB73E0.6030408@redhat.com> In-Reply-To: <55BB73E0.6030408@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC] Towards an Heterogeneous QEMU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: Jani Kokkonen , VirtualOpenSystems Technical Team , Claudio Fontana Hello Paolo, On 31/07/2015 15:10, Paolo Bonzini wrote: > > On 27/07/2015 15:54, Christian Pinto wrote: >> From the user point of view there is usually an operating system >> booting on the Master processor (e.g. Linux) at platform startup, >> while the other processors are used to offload the Master one from >> some computation or to deal with real-time interfaces. It is the >> Master OS that triggers the boot of the Slave processors, and >> provides them also the binary code to execute (e.g. RTOS, binary >> firmware) by placing it into a pre-defined memory area that is >> accessible to the Slaves. Usually the memory for the Slaves is >> carved out from the Master OS during boot. Once a Slave is booted the >> two processors can communicate through queues in shared memory and >> inter-processor interrupts (IPIs). In Linux, it is the >> remoteproc/rpmsg framework that enables the control (boot/shutdown) >> of Slave processors, and also to establish a communication channel >> based on virtio queues. >> >> Currently, QEMU is not able to model such an architecture, mainly >> because only a single processor can be emulated at one time, and the >> OS binary image needs to be placed in memory at model startup. > Hi, you may be interested in the "multi-arch" patches here: > http://thread.gmane.org/gmane.comp.emulators.qemu/351808 > > These do roughly what you are saying, though in a single QEMU process. Thanks for pointing this out. In fact the final goal is the same: model a system embedding a heterogeneous set of processors. The approach presented in this RFC is to provide the building blocks, and extensions, to experiment with heterogeneous systems functional modeling by exploiting the current "architecture" of QEMU in the less invasive possible way. In addition, once the multi-arch work will be finished, there will still be the need to implement some sort of inter-processor signaling/communication and part of our work (i.e. the Interrupt Distribution Module) might be used for such scope. Thanks, Christian > > Paolo