From: Jan Kiszka <jan.kiszka@web.de>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Ingo Molnar <mingo@elte.hu>,
Pekka Enberg <penberg@cs.helsinki.fi>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kmemcheck: SMP support
Date: Fri, 23 May 2008 19:54:59 +0200 [thread overview]
Message-ID: <483704F3.1030803@web.de> (raw)
In-Reply-To: <19f34abd0805231032h2055c092h6423638cb69ca5c9@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3177 bytes --]
Vegard Nossum wrote:
> On Fri, May 23, 2008 at 7:12 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>> Vegard Nossum wrote:
>>> On Fri, May 23, 2008 at 5:40 PM, Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>>>> Vegard Nossum wrote:
>>>>> This works on real hw, but not on qemu. It seems to get stuck waiting for
>>>>> one
>>>>> of the atomic values to change. Don't know why yet, it might just be yet
>>>>> another bug in qemu... (we've hit at least two of them so far. And they
>>>>> were
>>>>> real bugs too.)
>>>>>
>>>> I've noticed that qemu mis-reports the eip of cmpxchg if it faults (it
>>>> reports the eip of the start of the basic block, I think). Does that match
>>>> what you're seeing?
>>> You mean the EIP that gets pushed on the stack for the page fault?
>>> (That would be bad news for kmemcheck. I suppose the rest of the
>>> kernel never page faults on cmpxchg addresses?)
>>>
>>> Or do you mean the EIP that shows up in gdb?
>>>
>>> But no, it seems to be unrelated. What I hit so far were (in 0.9.0):
>>>
>>> 1. qemu doesn't set the single-stepping flag of DR6 on single-step
>>> debug exceptions.
>>> 2. qemu triggers int 0 (divide error) instead of int 2 on NMI IPIs.
>>>
>>> But both of these were fixed in the latest 0.9.1.
>> I guess you mean trunk - NMI IPIs didn't came with "old" 0.9.1.
>
> Are you sure? It does in fact deliver the NMI IPI as far as I can see
> and I am running from a qemu-0.9.1.tar.gz... E.g. for "-smp 3" on this
> 0.9.1 qemu:
>
> (first number is smp_processor_id())
>
> [0 pause all] <-- in page fault handler
> [1 paused] <-- in nmi handler
> [2 paused]
> [0 resume all] <-- in debug exception handler
> [2 resuming, paused = 1] <-- still in nmi handler, now exiting
> [1 resuming, paused = 0]
Revision 4205 (2008-04-13) introduced the NMI abstraction to QEMU, 4206
added NMI IPIs - while 0.9.1 was released in January. Find /me confused
about what triggers the handler.
>
> But maybe I should try the trunk and see if that fixes the problem I was seeing!
And even if that hangs, either the internal gdbstub or an external gdb
(on the qemu process) may reveal where things got stuck. Keep in mind
that QEMU is fairly good in widening tiny race windows ;). But if it's
too obscure, just report to qemu-devel.
>
>>> I don't yet know if what I'm hitting now is really an error with qemu.
>>> But I usually trust the real hardware more :-)
>> Try KVM as well. It is, of course, must faster than QEMU, and it comes
>> with true SMP (given you have a SMP host). With in-kernel irqchip
>> (that's default), KVM now also supports NMI IPIs. And debug registers
>> should be fine with my latest patch.
>>
>> I'm currently trying to get debug support straight for upstream KVM and,
>> where also required, QEMU. SMP debugging is a common issue, but already
>> usable with KVM. So testers are welcome, an overview on required patches
>> can be provided.
>>
>
> Hm. Doesn't KVM require special hardware? I have just a cheap laptop
> (Pentium Dual-Core) and I doubt I will be able to run it... :-(
Yeah, forgot to mention that "minor" precondition...
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
next prev parent reply other threads:[~2008-05-23 17:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-23 14:17 [PATCH] kmemcheck: SMP support Vegard Nossum
2008-05-23 15:06 ` Ingo Molnar
2008-05-23 15:30 ` Vegard Nossum
2008-05-23 16:13 ` Jeremy Fitzhardinge
2008-05-26 9:11 ` Ingo Molnar
2008-05-26 9:29 ` Avi Kivity
2008-05-23 15:40 ` Jeremy Fitzhardinge
2008-05-23 15:51 ` Vegard Nossum
2008-05-23 17:12 ` Jan Kiszka
2008-05-23 17:32 ` Vegard Nossum
2008-05-23 17:54 ` Jan Kiszka [this message]
2008-05-23 20:54 ` Jeremy Fitzhardinge
2008-05-23 16:09 ` Johannes Weiner
2008-05-23 17:10 ` Vegard Nossum
[not found] ` <19f34abd0805230719j1ce0e2eje6da7c1f963fdf75@mail.gmail.com>
2008-05-25 14:30 ` Fwd: " Pekka Paalanen
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=483704F3.1030803@web.de \
--to=jan.kiszka@web.de \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=penberg@cs.helsinki.fi \
--cc=vegard.nossum@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox