From: Mateusz Loskot <mateusz@loskot.net>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] qemu-system-sparc uses all host cpu (continued)
Date: Sat, 15 Jan 2011 16:01:58 +0000 [thread overview]
Message-ID: <4D31C4F6.6050908@loskot.net> (raw)
In-Reply-To: <AANLkTim9VZka6ZaJcLkJ1Vkyb=Lt5LXbO5v4To3NaVx=@mail.gmail.com>
On 15/01/11 07:39, Blue Swirl wrote:
> On Sat, Jan 15, 2011 at 1:44 AM, Mateusz Loskot <mateusz@loskot.net>
> wrote:
>> Hi,
>>
>> I'm running QEMU built from Git current repo to emulate SPARC with
>> NetBSD 5.0 installed. My host runs x86_64 GNU/Linux with kernel
>> 2.6.35 on Intel P8600 CPU.
>>
>> I've noticed qemu-system-sparc constantly uses 100% of CPU I found
>> similar report in the ml archives [1] and tried to apply the
>> patches mentioned there, but it looks they have been partially
>> added to Git repo. Only the part in slavio_misc.c seems missing.
>>
>> Is this known issue?
>>
>> [1]
>> http://lists.nongnu.org/archive/html/qemu-devel/2006-09/msg00210.html
>
>>
> Unfortunately Sparc32 does not have any halt instruction to shut
> down the CPU, waking up later when an interrupt is received. On some
> machines (like SS-5, but not SS-20) there is chip (APC) that does
> something similar. In order to activate power management, guest OS
> has to use the chip each time the kernel goes idle. Linux can use use
> it, and host CPU load goes very low when the guest is doing nothing.
> NetBSD and OpenBSD can't, so the alternative is just to run an
> infinite loop.
Thanks very much for detailed explanation.
I'm not OS programmer, so it's all new but interesting matter to me.
> I think this line at NetBSD startup tells that the device was found
> in the OpenFirmware device tree, but no driver claimed it:
> power-management at sbus0 slot 4 offset 0xa000000 not configured
>
> Similar line with OpenBSD: "power-management" at sbus0 slot 4 offset
> 0xa000000 not configured
>
> But Linux says: apc: power management initialized
Great, now I know what kernel messages to look for when I will be
playing with Linux on SPARC.
> Adding the driver for *BSD should be easy, basically when the
> machine is idle, one bit has to be written to APC device.
>
> It might also be possible for QEMU to detect a busy loop, and ugly
> hacks can be made using OS program counter values known in advance.
> A generic busy loop detector design would help other cases, like x86
> with DOS or when Windows sometimes has problems with ACPI (IIRC).
>
> For example, QEMU could be started in special analyzer mode (or
> enabled at run time with tracepoint like system), in which detailed
> information about basic blocks executed would be logged. The logs
> could then be analyzed offline. The results would then be used to
> optimize QEMU behavior (including busy loops) for the production
> runs. At the other extreme end, based on the logs, pre-compiled
> replacements could be set up for most of the guest code.
I believe I understand, but I'm afraid I can't help in contributing
here. Though, is there any document about debugging or tracing QEMU?
I should have no problems with some testing if needed, but I have never
debugged emulators.
Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org
Member of ACCU, http://accu.org
next prev parent reply other threads:[~2011-01-15 16:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-15 1:44 [Qemu-devel] qemu-system-sparc uses all host cpu (continued) Mateusz Loskot
2011-01-15 7:39 ` Blue Swirl
2011-01-15 16:01 ` Mateusz Loskot [this message]
2011-01-15 16:13 ` Blue Swirl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D31C4F6.6050908@loskot.net \
--to=mateusz@loskot.net \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.