Re: [2.6.23-rc1 REGRESSION] CPU hotplug totally broken on HPC nx6325 (x86_64)

From: Rafael J. Wysocki
Date: Thu Jul 26 2007 - 15:14:30 EST


On Thursday, 26 July 2007 18:43, Linus Torvalds wrote:
>
> On Thu, 26 Jul 2007, Rafael J. Wysocki wrote:
> >
> > On my Turion64-based HPC nx6325 with the 2.6.23-rc1 x86_64 kernel doing
> >
> > # echo 0 > /sys/devices/system/cpu/cpu1/online
> >
> > causes the system to crash in a spectacular fashion (call traces going
> > continuously on the console, no reaction to anything except for the power
> > button). For this reason, suspend and hibernation don't work as well.
>
> Yeah, I really shouldn't have applied that patch. I didn't notice that it
> not only cleaned up the direct memcpy's, it also re-introduced the damn
> broken code that we fixed once already.
>
> Dammit, that read-only debug support IS NOT WORTH THIS CRAP.
>
> I absolutely *detest* it when "debugging features" end up being the thing
> that causes crashes. I think it shows a total lack of taste and
> understanding, and I'm totally tired of it. This has happened too many
> times.
>
> Andi: please don't send this patch *ever* again. If a patch that is
> supposed to help debugging just causes problems, that patch should be
> thrown away FOREVER.
>
> Andrew - on that same note: please throw away the dwarf traceback crap
> from your tree that Andi is still apparently pushing. Exact same issue.
>
> Debugging "helper" code that has historically only caused problems. We
> could equally well just enable frame pointers for debugging and add the
> trivial code to follow that instead, and it would work (the way it has
> worked on x86 basically forever).
>
> Rafael, does reverting just this part (and leaving the "text_poke()"
> cleanups) work for you?

Yes, it does, with the appended fix on top. :-)

Greetings,
Rafael


---
arch/i386/kernel/alternative.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.23-rc1/arch/i386/kernel/alternative.c
===================================================================
--- linux-2.6.23-rc1.orig/arch/i386/kernel/alternative.c
+++ linux-2.6.23-rc1/arch/i386/kernel/alternative.c
@@ -432,7 +432,7 @@ void __init alternative_instructions(voi
*/
void __kprobes text_poke(void *oaddr, unsigned char *opcode, int len)
{
- memcpy(addr, opcode, len);
+ memcpy(oaddr, opcode, len);
sync_core();
/* Not strictly needed, but can speed CPU recovery up. Ignore cross cacheline
case. */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/