From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55285) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhvmR-0003ZX-0I for qemu-devel@nongnu.org; Thu, 08 Sep 2016 05:38:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bhvmP-0004xr-BH for qemu-devel@nongnu.org; Thu, 08 Sep 2016 05:37:59 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45800) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhvmP-0004xm-6A for qemu-devel@nongnu.org; Thu, 08 Sep 2016 05:37:57 -0400 References: <1473275627-20024-1-git-send-email-sw@weilnetz.de> From: Paolo Bonzini Message-ID: <871f7958-6fde-f18c-2d9f-4ac47fe96dd6@redhat.com> Date: Thu, 8 Sep 2016 11:37:53 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] memory: Use standard log messages for unassigned memory read / write List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil , Peter Maydell Cc: QEMU Developer On 08/09/2016 07:43, Stefan Weil wrote: > Am 07.09.2016 um 23:29 schrieb Peter Maydell: >> On 7 September 2016 at 20:13, Stefan Weil wrote: >>> The old log messages are implemented by conditional compilation >>> and not available by default. >>> >>> The new log messages can be enabled either by a command line option >>> (-d unimp) or in the QEMU monitor (log unimp). >>> >>> Signed-off-by: Stefan Weil >>> --- >>> >>> The new code is very useful when implementing new platforms or >>> looking for problems with existing platforms which are only >>> partially emulated (I use it for Raspberry Pi). >>> >>> target-sparc/ldst_helper.c also uses DEBUG_UNASSIGNED >>> and could get similar code. >>> >>> Regards, >>> Stefan >>> >>> >>> memory.c | 12 ++++-------- >>> 1 file changed, 4 insertions(+), 8 deletions(-) >=20 > [...] >=20 >>> -#ifdef DEBUG_UNASSIGNED >>> - printf("Unassigned mem write " TARGET_FMT_plx " =3D >>> 0x%"PRIx64"\n", addr, val); >>> -#endif >>> + qemu_log_mask(LOG_UNIMP, "%s " TARGET_FMT_plx " =3D 0x%" PRIx64 = "\n", >>> + __func__, addr, val); >> >> Maybe this should be LOG_GUEST_ERROR rather than LOG_UNIMP ? >=20 > My first code used LOG_GUEST_ERROR. Of course a guest can try to access > memory which is not available for the real hardware. >=20 > For my test object (Raspberry Pi), all unassigned memory accesses were > not guest errors but unimplemented emulation in QEMU =E2=80=93 that's w= hy I > changed from LOG_GUEST_ERROR to LOG_UNIMP. >=20 > A short test with i386 / x86_64 emulation also detected unassigned > memory accesses (from BIOS) caused by an unimplemented debug device, so > that was also not a guest error. FWIW, the debug device is optional (-device isa-debugcon), not unimplemented. Similarly it's common, or at least it was before ACPI was introduced, to poke at known ISA ports to detect legacy devices; it's neither unimplemented nor a guest error in that case. Perhaps it should just be a tracepoint? Paolo