From patchwork Fri Nov 11 06:48:02 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Supriya Kannery X-Patchwork-Id: 125098 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 206601007D4 for ; Fri, 11 Nov 2011 17:49:05 +1100 (EST) Received: from localhost ([::1]:39075 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROkv1-0007om-A0 for incoming@patchwork.ozlabs.org; Fri, 11 Nov 2011 01:48:55 -0500 Received: from eggs.gnu.org ([140.186.70.92]:60060) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROkuv-0007oh-4R for qemu-devel@nongnu.org; Fri, 11 Nov 2011 01:48:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ROkut-0002nr-KR for qemu-devel@nongnu.org; Fri, 11 Nov 2011 01:48:48 -0500 Received: from e38.co.us.ibm.com ([32.97.110.159]:45448) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROkut-0002nm-Cm for qemu-devel@nongnu.org; Fri, 11 Nov 2011 01:48:47 -0500 Received: from /spool/local by e38.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 10 Nov 2011 23:48:46 -0700 Received: from d03relay05.boulder.ibm.com ([9.17.195.107]) by e38.co.us.ibm.com ([192.168.1.138]) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 10 Nov 2011 23:48:10 -0700 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay05.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id pAB6m9da148688 for ; Thu, 10 Nov 2011 23:48:09 -0700 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id pAB6m7rj030919 for ; Thu, 10 Nov 2011 23:48:08 -0700 Received: from skannery.in.ibm.com ([9.79.212.179]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id pAB6m3So030741; Thu, 10 Nov 2011 23:48:04 -0700 From: Supriya Kannery To: qemu-devel@nongnu.org Date: Fri, 11 Nov 2011 12:18:02 +0530 Message-Id: <20111111064802.15024.83662.sendpatchset@skannery.in.ibm.com> In-Reply-To: <20111111064707.15024.69847.sendpatchset@skannery.in.ibm.com> References: <20111111064707.15024.69847.sendpatchset@skannery.in.ibm.com> x-cbid: 11111106-5518-0000-0000-000000595CC3 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 32.97.110.159 Cc: Kevin Wolf , Stefan Hajnoczi , Christoph Hellwig , Luiz Capitulino Subject: [Qemu-devel] [v9 Patch 4/6]Qemu: Add commandline -drive option 'hostcache' X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org qemu command option 'hostcache' added to -drive for block devices. While starting a VM from qemu commandline, this option can be used for setting host cache usage for block data access. Signed-off-by: Supriya Kannery --- blockdev.c | 13 +++++++++++++ qemu-config.c | 4 ++++ qemu-options.hx | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) Index: qemu/blockdev.c =================================================================== --- qemu.orig/blockdev.c +++ qemu/blockdev.c @@ -237,6 +237,7 @@ DriveInfo *drive_init(QemuOpts *opts, in DriveInfo *dinfo; int snapshot = 0; int ret; + int hostcache = 0; translation = BIOS_ATA_TRANSLATION_AUTO; media = MEDIA_DISK; @@ -324,6 +325,12 @@ DriveInfo *drive_init(QemuOpts *opts, in error_report("invalid cache option"); return NULL; } + } else { + if ((hostcache = qemu_opt_get_bool(opts, "hostcache", -1)) != -1) { + if (!hostcache) { + bdrv_flags |= BDRV_O_NOCACHE; + } + } } #ifdef CONFIG_LINUX_AIO Index: qemu/qemu-options.hx =================================================================== --- qemu.orig/qemu-options.hx +++ qemu/qemu-options.hx @@ -135,7 +135,7 @@ DEF("drive", HAS_ARG, QEMU_OPTION_drive, " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n" " [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n" " [,serial=s][,addr=A][,id=name][,aio=threads|native]\n" - " [,readonly=on|off]\n" + " [,readonly=on|off][,hostcache=on|off]\n" " use 'file' as a drive image\n", QEMU_ARCH_ALL) STEXI @item -drive @var{option}[,@var{option}[,@var{option}[,...]]] Index: qemu/qemu-config.c =================================================================== --- qemu.orig/qemu-config.c +++ qemu/qemu-config.c @@ -85,6 +85,10 @@ static QemuOptsList qemu_drive_opts = { .name = "readonly", .type = QEMU_OPT_BOOL, .help = "open drive file as read-only", + },{ + .name = "hostcache", + .type = QEMU_OPT_BOOL, + .help = "set or reset hostcache (on/off)" }, { /* end of list */ } },