From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47021) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScHTV-0005Kc-CK for qemu-devel@nongnu.org; Wed, 06 Jun 2012 10:44:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ScHTT-0000Du-FX for qemu-devel@nongnu.org; Wed, 06 Jun 2012 10:44:40 -0400 Received: from mail9.hitachi.co.jp ([133.145.228.44]:53879) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScHTT-0000Di-0i for qemu-devel@nongnu.org; Wed, 06 Jun 2012 10:44:39 -0400 Message-ID: <4FCF6CCC.1050808@hitachi.com> Date: Wed, 06 Jun 2012 23:44:28 +0900 From: Masami Hiramatsu MIME-Version: 1.0 References: <20120605104954.15442.62695.stgit@ltc189.sdl.hitachi.co.jp> <20120605130117.15479.32680.stgit@ltc189.sdl.hitachi.co.jp> <20120605131031.GF13495@aftab.osrc.amd.com> <4FCE902A.3060603@codemonkey.ws> <20120605232210.GA8858@kroah.com> In-Reply-To: <20120605232210.GA8858@kroah.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH 1/2] ivring: Add a ring-buffer driver on IVShmem List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kroah-Hartman Cc: Ohad Ben-Cohen , Arnaldo Carvalho de Melo , Borislav Petkov , systemtap@sourceware.org, Joerg Roedel , Yoshihiro YUNOMAE , Rusty Russell , qemu-devel@nongnu.org, Borislav Petkov , linux-kernel@vger.kernel.org, Grant Likely , MyungJoo Ham , Anthony Liguori , yrl.pp-manager.tt@hitachi.com, Akihiro Nagai , Cam Macdonell , Linus Walleij (2012/06/06 8:22), Greg Kroah-Hartman wrote: > On Wed, Jun 06, 2012 at 07:03:06AM +0800, Anthony Liguori wrote: >> On 06/05/2012 09:10 PM, Borislav Petkov wrote: >>> On Tue, Jun 05, 2012 at 10:01:17PM +0900, Yoshihiro YUNOMAE wrote: >>>> This patch adds a ring-buffer driver for IVShmem device, a virtual RAM device in >>>> QEMU. This driver can be used as a ring-buffer for kernel logging or tracing of >>>> a guest OS by recording kernel programing or SystemTap. >>>> >>>> This ring-buffer driver is implemented very simple. First 4kB of shared memory >>>> region is control structure of a ring-buffer. In this region, some values for >>>> managing the ring-buffer is stored such as bits and mask of whole memory size, >>>> writing position, threshold value for notification to a reader on a host OS. >>>> This region is used by the reader to know writing position. Then, "total >>>> memory size - 4kB" equals to usable memory region for recording data. >>>> This ring-buffer driver records any data from start to end of the writable >>>> memory region. >>>> >>>> When writing size exceeds a threshold value, this driver can notify a reader >>>> to read data by using writel(). As this later patch, reader does not have any >>>> function for receiving the notification. This notification feature will be used >>>> near the future. >>>> >>>> As a writer records data in this ring-buffer, spinlock function is used to >>>> avoid competing by some writers in multi CPU environment. Not to use spinlock, >>>> lockless ring-buffer like as ftrace and one ring-buffer one CPU will be >>>> implemented near the future. >>> >>> Yet another ring buffer? >>> >>> We already have an ftrace and perf ring buffer, can't you use one of those? >> >> Not to mention virtio :-) >> >> Why not just make a virtio device for this kind of thing? > > Yeah, that's exactly what I was thinking, why reinvent things again? Agreed. Actually, we think this is just a concept prototype. Because of many restrictions of this device, especially for scalability (which Yoshihiro will give a talk in LinuxCon Japan), we are considering to move onto a virtio-based shmem device. Afaics, it seems possible to use it virtio-ballon like way to pass actual pages of the guest ring buffer to host. Then the reader can read the pages directly from qemu. Thank you, -- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@hitachi.com