From: Stefan Becker <Stefan.Becker@nokia.com>
To: ext Andi Kleen <andi@firstfloor.org>
Cc: ext Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
linux-kernel@vger.kernel.org
Subject: Re: [pre-2.6.23 REGRESSION] 2.6.23-rc3-git1 crash/stuck on VIA CN700 system
Date: Wed, 05 Sep 2007 22:24:07 +0300 [thread overview]
Message-ID: <46DF0257.5050303@nokia.com> (raw)
In-Reply-To: <20070905163724.GC31880@one.firstfloor.org>
Hi,
ext Andi Kleen wrote:
>> flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge cmov pat
>> clflush acpi mmx fxsr sse sse2 tm up pni est tm2 rng rng_en ace ace_en
>
> Hmm, I can't really see anything wrong. This means the original
> version of the patch you found had a few problems, but they
> were all fixed later and only applied with CONFIG_PARAVIRT enabled anyways.
>
> As a stab in the dark since the CPU has clflush can you please
> comment out the
>
> if (cpu_has_clflush)
> asm("clflush (%0) " :: "r" (addr) : "memory");
>
> statement in arch/i386/kernel/alternative.c and see if it makes a difference?
> Perhaps your CPU doesn't like that (it seems to have clflush)
>
> If that doesn't help it might be needed to revert the patch
> hunk by hunk to see which text_poke() invocation caused it.
OK, I reset my working area to the master branch (i.e. 2.6.23-rc5-gitX)
and then changed text_poke() to read
void __kprobes text_poke(void *addr, unsigned char *opcode, int len)
{
memcpy(addr, opcode, len);
sync_core();
/* Not strictly needed, but can speed CPU recovery up. Ignore cross
cacheline
case. */
#if 0
if (cpu_has_clflush)
asm("clflush (%0) " :: "r" (addr) : "memory");
#endif
}
This kernel boots up OK. Looking at the preprocessed C code the
following code in alternative_instructions() is compiled in:
#ifdef CONFIG_SMP
if (smp_alt_once) {
if (1 == num_possible_cpus()) {
printk(KERN_INFO "SMP alternatives: switching to UP code\n");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This I still see at bootup
set_bit(X86_FEATURE_UP, boot_cpu_data.x86_capability);
set_bit(X86_FEATURE_UP, cpu_data[0].x86_capability);
alternatives_smp_unlock(__smp_locks, __smp_locks_end,
_text, _etext);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this function uses text_poke()
---> BOOM
}
free_init_pages("SMP alternatives",
(unsigned long)__smp_locks,
(unsigned long)__smp_locks_end);
So what can we do about the clflush on this CPU?
Regards,
Stefan
next prev parent reply other threads:[~2007-09-05 19:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-20 17:37 [pre-2.6.23 REGRESSION] 2.6.23-rc3-git1 crash/stuck on VIA CN700 system Stefan Becker
2007-08-28 5:15 ` Stefan Becker
2007-09-03 5:59 ` Stefan Becker
2007-09-03 16:57 ` Randy Dunlap
2007-09-03 23:02 ` Andi Kleen
2007-09-04 18:26 ` Stefan Becker
2007-09-05 10:25 ` Andi Kleen
2007-09-05 15:39 ` Stefan Becker
2007-09-05 16:37 ` Andi Kleen
2007-09-05 19:24 ` Stefan Becker [this message]
2007-09-06 5:36 ` Andi Kleen
2007-09-06 14:19 ` Stefan Becker
2007-09-12 16:59 ` Stefan Becker
2007-09-06 10:41 ` Dave Jones
2007-09-06 10:44 ` Stefan Becker
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=46DF0257.5050303@nokia.com \
--to=stefan.becker@nokia.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.k.k.piotrowski@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 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.