From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Guthro Subject: [PATCH][QEMU] Fix QEMU's write cache reporting Date: Tue, 10 Jul 2007 13:54:43 -0400 Message-ID: <4693C7E3.1020308@virtualiron.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090704070102060106020303" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------090704070102060106020303 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Make QEMU consistently report write caching support for emulated IDE drives to fix a hang during SLES 9 HVM guest installation. Without this, the SLES 9 installer kernels (32 and 64 bit) were getting inconsistent information from QEMU as to whether the (emulated) IDE drives support write caching (which they do). So part of the kernel thought write caching was enabled (and enabled the usage of barrier writes) and part of it didn't, which triggered a bug in which the same barrier write is submitted over and over again ... Fixed by setting another bit in the WIN_IDENTIFY (IDE drive "identify" command) response to indicate we really, truly support write caching. Signed-off-by: David Lively Signed-off-by: Ben Guthro --------------090704070102060106020303 Content-Type: text/x-patch; name="qemu-ide-identify-fix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemu-ide-identify-fix.patch" diff -r 52d3aa322e0d tools/ioemu/hw/ide.c --- a/tools/ioemu/hw/ide.c Wed Jun 27 11:54:30 2007 -0400 +++ b/tools/ioemu/hw/ide.c Wed Jun 27 11:54:31 2007 -0400 @@ -687,7 +687,8 @@ static void ide_identify(IDEState *s) /* 13=flush_cache_ext,12=flush_cache,10=lba48 */ put_le16(p + 83, (1 << 14) | (1 << 13) | (1 <<12) | (1 << 10)); put_le16(p + 84, (1 << 14)); - put_le16(p + 85, (1 << 14)); + /* 14=nop 5=write_cache */ + put_le16(p + 85, (1 << 14) | (1 << 5)); /* 13=flush_cache_ext,12=flush_cache,10=lba48 */ put_le16(p + 86, (1 << 14) | (1 << 13) | (1 <<12) | (1 << 10)); put_le16(p + 87, (1 << 14)); --------------090704070102060106020303 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------090704070102060106020303--