From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NYpvw-00077V-4Z for qemu-devel@nongnu.org; Sat, 23 Jan 2010 19:02:28 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NYpvr-00072F-Dr for qemu-devel@nongnu.org; Sat, 23 Jan 2010 19:02:27 -0500 Received: from [199.232.76.173] (port=59422 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NYpvr-000724-BL for qemu-devel@nongnu.org; Sat, 23 Jan 2010 19:02:23 -0500 Received: from mail-pw0-f43.google.com ([209.85.160.43]:53272) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NYpvq-0002AH-UY for qemu-devel@nongnu.org; Sat, 23 Jan 2010 19:02:23 -0500 Received: by pwj11 with SMTP id 11so1695869pwj.2 for ; Sat, 23 Jan 2010 16:02:21 -0800 (PST) MIME-Version: 1.0 From: Artyom Tarasenko Date: Sun, 24 Jan 2010 01:02:01 +0100 Message-ID: Content-Type: text/plain; charset=ISO-8859-1 Subject: [Qemu-devel] sparc solaris guest, hsfs_putpage: dirty HSFS page List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel , Blue Swirl All solaris versions which currently boot (from cd) regularly produce buckets of "hsfs_putpage: dirty HSFS page" messages. High Sierra is a pretty old and stable stuff, so it is possible that the code is similar to OpenSolaris. I looked in debugger, and the function calls hierarchy looks pretty similar. Now in the OpenSolaris source code there is a nice comment: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/fs/hsfs/hsfs_vnops.c#1758 /* * Normally pvn_getdirty() should return 0, which * impies that it has done the job for us. * The shouldn't-happen scenario is when it returns 1. * This means that the page has been modified and * needs to be put back. * Since we can't write on a CD, we fake a failed * I/O and force pvn_write_done() to destroy the page. */ if (pvn_getdirty(pp, flags) == 1) { cmn_err(CE_NOTE, "hsfs_putpage: dirty HSFS page"); Now the question: does the problem have to do with qemu caches (non-)emulation? Can it be that we mark non-dirty pages dirty? Or does qemu always mark pages dirty exactly to avoid cache emulation? Otherwise it means something else goes astray and Solaris guest really modifies the pages it shouldn't. Just wonder what to dig first, MMU or IRQ emulation (the two most obvious suspects). -- Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/