(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...@hitachi.com