LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: David Brownell @ 2010-06-29 22:41 UTC (permalink / raw)
  To: linux-usb, Fushen Chen; +Cc: linuxppc-dev, gregkh, Mark Miesfeld, Fushen Chen
In-Reply-To: <12778468223309-git-send-email-fchen@apm.com>

Good -- MUSB won't be the only one.  ;)=0A=0ACould you mention a few Linux-=
enabled chips which=0Ainclude this controller?=0A=0A=0A>  arch/powerpc/boot=
/dts/kilauea.dts |=A0=A0=A015 +=0A=0AAlso, please provide a clean patch tha=
t only=0Aincludes the driver, and split PPC hooks into=0Aa separate patch.=
=0A=0A

^ permalink raw reply

* Re: [PATCH 4/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Wolfgang Denk @ 2010-06-29 23:13 UTC (permalink / raw)
  To: Fushen Chen; +Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh
In-Reply-To: <1277846824673-git-send-email-fchen@apm.com>

Dear Fushen Chen,

In message <1277846824673-git-send-email-fchen@apm.com> you wrote:
> Implements DWC OTG USB Host Controller Driver (HCD) and interface to
> USB Host controller Driver framework.
> 
> Signed-off-by: Fushen Chen <fchen@apm.com>
> Signed-off-by: Mark Miesfeld <mmiesfeld@apm.com>
> ---
>  drivers/usb/otg/dwc_otg_hcd.c | 2397 +++++++++++++++++++++++++++++++++++++++++
>  drivers/usb/otg/dwc_otg_hcd.h |  421 ++++++++
>  2 files changed, 2818 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/usb/otg/dwc_otg_hcd.c
>  create mode 100644 drivers/usb/otg/dwc_otg_hcd.h


Why are you posting this old driver version without trying to sync
against our tree which includes a number of fixes - you should know
about these.

...
> +		do {
> +			hcchar.d32 = dwc_read_reg32(&hc_regs->hcchar);
> +			if (++count > 10000) {
> +				printk(KERN_ERR "%s: Unable to clear halt on "
> +						"channel %d\n",	__func__, i);
> +				break;
> +			}
> +		} while (hcchar.b.chen);
> +	}

For example, here you are missing

	commit 018b43db153da063182c87be2eaad037cba2d879
	Author: Stefan Roese <sr@denx.de>
	Date:   Thu Sep 24 17:15:06 2009 +0200

	    USB: Fix timeout problem with polling loops in DWC USB-OTG driver


In [PATCH 6/9] Add Synopsys DesignWare HS USB OTG Controller driver
you are missing

	commit 538fe70d696bc5e694ab08e9627a99a0b11358ec
	Author: Stefan Roese <sr@denx.de>
	Date:   Wed Sep 23 08:50:29 2009 +0200

	    USB: Fix problem with reconnection in DWC USB-OTG driver

etc.


Please update your code and resubmit.



Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
The biggest difference between time and space is that you can't reuse
time.                                                 - Merrick Furst

^ permalink raw reply

* Re: [PATCH 4/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: David Daney @ 2010-06-29 23:22 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh, Fushen Chen
In-Reply-To: <20100629231302.7E6E314EBF8@gemini.denx.de>

On 06/29/2010 04:13 PM, Wolfgang Denk wrote:
> Dear Fushen Chen,
>
> In message<1277846824673-git-send-email-fchen@apm.com>  you wrote:
>> Implements DWC OTG USB Host Controller Driver (HCD) and interface to
>> USB Host controller Driver framework.
>>
>> Signed-off-by: Fushen Chen<fchen@apm.com>
>> Signed-off-by: Mark Miesfeld<mmiesfeld@apm.com>
>> ---
>>   drivers/usb/otg/dwc_otg_hcd.c | 2397 +++++++++++++++++++++++++++++++++++++++++
>>   drivers/usb/otg/dwc_otg_hcd.h |  421 ++++++++
>>   2 files changed, 2818 insertions(+), 0 deletions(-)
>>   create mode 100644 drivers/usb/otg/dwc_otg_hcd.c
>>   create mode 100644 drivers/usb/otg/dwc_otg_hcd.h
>
>
> Why are you posting this old driver version without trying to sync
> against our tree which includes a number of fixes - you should know
> about these.
>

This could be a question with an obvious answer, but which tree are you 
referring to when you say 'our tree'?

David Daney

^ permalink raw reply

* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: David Daney @ 2010-06-29 23:13 UTC (permalink / raw)
  To: David Brownell
  Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh, Fushen Chen
In-Reply-To: <5569.83301.qm@web180304.mail.gq1.yahoo.com>

On 06/29/2010 03:41 PM, David Brownell wrote:
> Good -- MUSB won't be the only one.  ;)
>
> Could you mention a few Linux-enabled chips which
> include this controller?
>

I can.  Some members of the Octeon family:  arch/mips/cavium-octeon

Although there would probably be some SOC specific glue needed for chips 
not targeted by the initial patch set.

David Daney


>
>>   arch/powerpc/boot/dts/kilauea.dts |   15 +
>
> Also, please provide a clean patch that only
> includes the driver, and split PPC hooks into
> a separate patch.
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply

* Re: [linuxppc-release] [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Tabi Timur-B04825 @ 2010-06-29 23:37 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <22ED4111-892C-4715-BF70-C1E62F838DDA@kernel.crashing.org>

[-- Attachment #1: Type: text/plain, Size: 286 bytes --]

Kumar Gala wrote:

> Drop the defconfig and update mpc85xx_{smp_}defconfig to build p1022.

What about video and audio support?  I'm going to add that later?  We don't 
want to compile the DIU and SSI drivers on all 85xx systems, do we?

-- 
Timur Tabi
Linux kernel developer

[-- Attachment #2: Type: text/html, Size: 785 bytes --]

^ permalink raw reply

* Re: [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Tabi Timur-B04825 @ 2010-06-29 23:39 UTC (permalink / raw)
  To: Phillips Kim-R1AAHA; +Cc: linuxppc-dev
In-Reply-To: <20100629171904.d6ae6233.kim.phillips@freescale.com>

[-- Attachment #1: Type: text/plain, Size: 1510 bytes --]

Kim Phillips wrote:
> On Tue, 29 Jun 2010 16:34:34 -0500
> Timur Tabi<timur@freescale.com>  wrote:
>
>> Introduce basic support for the Freescale P1022DS reference board, based on the
>> Freescale BSP for this board.
>>
>> Details: No DIU video or SSI audio support, no MMC/SD card support, 36-bit and
>> SWIOTLB support enabled, 36-bit DTS only, and CONFIG_NO_HZ disabled because it
>> causes performance problems on this kernel.
>
> what kind of performance problems?

See my post on linuxppc-dev about CONFIG_NO_HZ.

>> +			queue-group@0{
>> +				#address-cells =<1>;
>> +				#size-cells =<1>;
>> +				reg =<0xB1000 0x1000>;
>> +				fsl,rx-err-int-map =<0xAA>;
>> +				fsl,tx-int-map =<0xAA>;
>> +				interrupts =<35 2 36 2 40 2>;
>> +			};
>> +			queue-group@1{
>> +				#address-cells =<1>;
>> +				#size-cells =<1>;
>> +				reg =<0xB5000 0x1000>;
>> +				fsl,rx-err-int-map =<0x55>;
>> +				fsl,tx-int-map =<0x55>;
>> +				interrupts =<51 2 52 2 67 2>;
>> +			};
>
> these queue-group nodes, fsl,{r,t}x-* properties...

I just copied this tree from the BSP.  I have no idea what they should ok 
like.  Can you be more specific?

>> +		crypto@30000 {
>
>> +			fsl,multi-host-mode = "dual";
>> +			fsl,channel-remap =<0x3>;
>
> and the above two properties aren't supported by their respective
> drivers, nor are they listed in the dts bindings documentation.

Then please tell me what these nodes should look like.


-- 
Timur Tabi
Linux kernel developer

[-- Attachment #2: Type: text/html, Size: 4833 bytes --]

^ permalink raw reply

* Re: [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Kim Phillips @ 2010-06-29 23:55 UTC (permalink / raw)
  To: Tabi Timur-B04825; +Cc: linuxppc-dev
In-Reply-To: <5610599F537DD74A8D1F5CC946A7507303478FF9@az33exm25.fsl.freescale.net>

On Tue, 29 Jun 2010 17:39:17 -0600
"Tabi Timur-B04825" <B04825@freescale.com> wrote:

> Kim Phillips wrote:
> > On Tue, 29 Jun 2010 16:34:34 -0500
> > Timur Tabi<timur@freescale.com>  wrote:
> >
> >> Introduce basic support for the Freescale P1022DS reference board, based on the
> >> Freescale BSP for this board.
> >>
> >> Details: No DIU video or SSI audio support, no MMC/SD card support, 36-bit and
> >> SWIOTLB support enabled, 36-bit DTS only, and CONFIG_NO_HZ disabled because it
> >> causes performance problems on this kernel.
> >
> > what kind of performance problems?
> 
> See my post on linuxppc-dev about CONFIG_NO_HZ.

looks like it should be easily bisected, esp. since
mpc85xx_smp_defconfig has NO_HZ=y.

> >> +			queue-group@0{
> >> +				#address-cells =<1>;
> >> +				#size-cells =<1>;
> >> +				reg =<0xB1000 0x1000>;
> >> +				fsl,rx-err-int-map =<0xAA>;
> >> +				fsl,tx-int-map =<0xAA>;
> >> +				interrupts =<35 2 36 2 40 2>;
> >> +			};
> >> +			queue-group@1{
> >> +				#address-cells =<1>;
> >> +				#size-cells =<1>;
> >> +				reg =<0xB5000 0x1000>;
> >> +				fsl,rx-err-int-map =<0x55>;
> >> +				fsl,tx-int-map =<0x55>;
> >> +				interrupts =<51 2 52 2 67 2>;
> >> +			};
> >
> > these queue-group nodes, fsl,{r,t}x-* properties...
> 
> I just copied this tree from the BSP.  I have no idea what they should ok 
> like.  Can you be more specific?

eh?  you submitted the patch; I'm just calling out the
foreign/undocumented matter in it.

> >> +		crypto@30000 {
> >
> >> +			fsl,multi-host-mode = "dual";
> >> +			fsl,channel-remap =<0x3>;
> >
> > and the above two properties aren't supported by their respective
> > drivers, nor are they listed in the dts bindings documentation.
> 
> Then please tell me what these nodes should look like.

delete them?

Kim

^ permalink raw reply

* Re: kernel init exception
From: David Gibson @ 2010-06-30  0:46 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev, wilbur.chan
In-Reply-To: <356261A9-B09F-4E82-A897-FD0724C503F4@kernel.crashing.org>

On Tue, Jun 29, 2010 at 06:51:16PM +0200, Segher Boessenkool wrote:
> >why there generated a signal 4  in  init  process?
> 
> That's SIGILL; sounds like you compiled init with the wrong (sub-)arch
> or cpu flags.

Or it's been corrupted during load.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply

* Re: [linuxppc-release] [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Olof Johansson @ 2010-06-30  1:10 UTC (permalink / raw)
  To: Tabi Timur-B04825; +Cc: linuxppc-dev
In-Reply-To: <5610599F537DD74A8D1F5CC946A7507303478FF8@az33exm25.fsl.freescale.net>

On Tue, Jun 29, 2010 at 04:37:59PM -0700, Tabi Timur-B04825 wrote:
> Kumar Gala wrote:
> 
> > Drop the defconfig and update mpc85xx_{smp_}defconfig to build p1022.
> 
> What about video and audio support?  I'm going to add that later?  We don't 
> want to compile the DIU and SSI drivers on all 85xx systems, do we?

Sure, the family-defconfigs are supposed to be supersets that can boot
everywhere. If you're concerned about static kernel size you can always
enable it as modules instead.


-Olof

^ permalink raw reply

* Re: [linuxppc-release] [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Tabi Timur-B04825 @ 2010-06-30  1:16 UTC (permalink / raw)
  To: Olof Johansson; +Cc: linuxppc-dev
In-Reply-To: <20100630011000.GA2684@lixom.net>

[-- Attachment #1: Type: text/plain, Size: 547 bytes --]

Olof Johansson wrote:
> Sure, the family-defconfigs are supposed to be supersets that can boot
> everywhere. If you're concerned about static kernel size you can always
> enable it as modules instead.

It just seems wrong to add full support for audio and video in the kernel, 
when it can be used only on one, relatively obscure chip.  Video support 
would need to be in-kernel only in order to get the console working, and I 
suspect that core ALSA support would need to be in-kernel as well.

-- 
Timur Tabi
Linux kernel developer

[-- Attachment #2: Type: text/html, Size: 1057 bytes --]

^ permalink raw reply

* Re: [linuxppc-release] [PATCH] powerpc: introduce basic support for the Freescale P1022DS reference board
From: Olof Johansson @ 2010-06-30  2:24 UTC (permalink / raw)
  To: Tabi Timur-B04825; +Cc: linuxppc-dev
In-Reply-To: <5610599F537DD74A8D1F5CC946A7507303478FFA@az33exm25.fsl.freescale.net>

On Tue, Jun 29, 2010 at 06:16:08PM -0700, Tabi Timur-B04825 wrote:
> Olof Johansson wrote:
> > Sure, the family-defconfigs are supposed to be supersets that can boot
> > everywhere. If you're concerned about static kernel size you can always
> > enable it as modules instead.
> 
> It just seems wrong to add full support for audio and video in the kernel, 
> when it can be used only on one, relatively obscure chip.  Video support 
> would need to be in-kernel only in order to get the console working, and I 
> suspect that core ALSA support would need to be in-kernel as well.

See the text you quoted from me above, it applies at a reply to this as well.


-Olof

^ permalink raw reply

* Re: [PATCH 4/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Wolfgang Denk @ 2010-06-30  5:31 UTC (permalink / raw)
  To: David Daney; +Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh, Fushen Chen
In-Reply-To: <4C2A8038.50204@caviumnetworks.com>

Dear David Daney,

In message <4C2A8038.50204@caviumnetworks.com> you wrote:
>
> > Why are you posting this old driver version without trying to sync
> > against our tree which includes a number of fixes - you should know
> > about these.
> >
> 
> This could be a question with an obvious answer, but which tree are you 
> referring to when you say 'our tree'?

git://git.denx.de/linux-2.6-denx.git

Fushen Chen should know this, as the fixes I've mentioned were part
of contract/support work for Applied Micro.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
The Wright Bothers weren't the first to fly. They were just the first
not to crash.

^ permalink raw reply

* Re: CONFIG_NO_HZ causing poor console responsiveness
From: Richard Cochran @ 2010-06-30  6:49 UTC (permalink / raw)
  To: Timur Tabi; +Cc: Linuxppc-dev Development
In-Reply-To: <AANLkTilMzfwgYvoFhxhcVQVGV-EkMLVHI2TeQ29SYFCH@mail.gmail.com>

On Tue, Jun 29, 2010 at 02:54:17PM -0500, Timur Tabi wrote:
> I'm adding support for a new e500-based board (the P1022DS), and in
> the process I've discovered that enabling CONFIG_NO_HZ (Tickless
> System / Dynamic Ticks) causes significant responsiveness problems on
> the serial console.  When I type on the console, I see delays of up to
> a half-second for almost every character.  It acts as if there's a
> background process eating all the CPU.
> 
> I don't have time to debug this thoroughly at the moment.  The problem
> occurs in the latest kernel, but it appears not to occur in 2.6.32.
> 
> Has anyone else seen anything like this?

Yes, with a P2020RDB and kernel 2.6.35-rc1. Serial console is really
slow on an otherwise idle machine. I assumed it was a hardware
problem.

Richard

^ permalink raw reply

* [PATCH] powerpc: fix compile errors in prom_init_check for gcc 4.5
From: Stephen Rothwell @ 2010-06-30  6:04 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: ppc-dev

Just whitelist these extra compiler generated symbols.
Fixes these errors:

Error: External symbol '_restgpr0_14' referenced from prom_init.c
Error: External symbol '_restgpr0_20' referenced from prom_init.c
Error: External symbol '_restgpr0_22' referenced from prom_init.c
Error: External symbol '_restgpr0_24' referenced from prom_init.c
Error: External symbol '_restgpr0_25' referenced from prom_init.c
Error: External symbol '_restgpr0_26' referenced from prom_init.c
Error: External symbol '_restgpr0_27' referenced from prom_init.c
Error: External symbol '_restgpr0_28' referenced from prom_init.c
Error: External symbol '_restgpr0_29' referenced from prom_init.c
Error: External symbol '_restgpr0_31' referenced from prom_init.c
Error: External symbol '_savegpr0_14' referenced from prom_init.c
Error: External symbol '_savegpr0_20' referenced from prom_init.c
Error: External symbol '_savegpr0_22' referenced from prom_init.c
Error: External symbol '_savegpr0_24' referenced from prom_init.c
Error: External symbol '_savegpr0_25' referenced from prom_init.c
Error: External symbol '_savegpr0_26' referenced from prom_init.c
Error: External symbol '_savegpr0_27' referenced from prom_init.c
Error: External symbol '_savegpr0_28' referenced from prom_init.c
Error: External symbol '_savegpr0_29' referenced from prom_init.c
Error: External symbol '_savegpr0_31' referenced from prom_init.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/kernel/prom_init_check.sh |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh
index 1ac136b..9f82f49 100644
--- a/arch/powerpc/kernel/prom_init_check.sh
+++ b/arch/powerpc/kernel/prom_init_check.sh
@@ -52,12 +52,18 @@ do
 	if [ "${UNDEF:0:9}" = "_restgpr_" ]; then
 		OK=1
 	fi
+	if [ "${UNDEF:0:10}" = "_restgpr0_" ]; then
+		OK=1
+	fi
 	if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then
 		OK=1
 	fi
 	if [ "${UNDEF:0:9}" = "_savegpr_" ]; then
 		OK=1
 	fi
+	if [ "${UNDEF:0:10}" = "_savegpr0_" ]; then
+		OK=1
+	fi
 	if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then
 		OK=1
 	fi
-- 
1.7.1

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

^ permalink raw reply related

* [PATCH] powerpc: fix module building for gcc 4.5 and 64 bit
From: Stephen Rothwell @ 2010-06-30  6:08 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Michal Marek, Sam Ravnborg, Rusty Russell, ppc-dev, linux-kernel

Gcc 4.5 is now generating out of line register save and restore
in the function prefix and postfix when we use -Os.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/Makefile        |    4 +-
 arch/powerpc/lib/Makefile    |    4 +-
 arch/powerpc/lib/crtsavres.S |  129 ++++++++++++++++++++++++++++++++++++++++++
 scripts/mod/modpost.c        |    5 ++
 4 files changed, 138 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 42dcd3f..77cfe7a 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -92,10 +92,10 @@ endif
 else
 	KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
 endif
-else
-LDFLAGS_MODULE	+= arch/powerpc/lib/crtsavres.o
 endif
 
+LDFLAGS_MODULE	+= arch/powerpc/lib/crtsavres.o
+
 ifeq ($(CONFIG_TUNE_CELL),y)
 	KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
 endif
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index 3040dac..111da1c 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -12,8 +12,8 @@ CFLAGS_REMOVE_code-patching.o = -pg
 CFLAGS_REMOVE_feature-fixups.o = -pg
 
 obj-y			:= string.o alloc.o \
-			   checksum_$(CONFIG_WORD_SIZE).o
-obj-$(CONFIG_PPC32)	+= div64.o copy_32.o crtsavres.o
+			   checksum_$(CONFIG_WORD_SIZE).o crtsavres.o
+obj-$(CONFIG_PPC32)	+= div64.o copy_32.o
 obj-$(CONFIG_HAS_IOMEM)	+= devres.o
 
 obj-$(CONFIG_PPC64)	+= copypage_64.o copyuser_64.o \
diff --git a/arch/powerpc/lib/crtsavres.S b/arch/powerpc/lib/crtsavres.S
index 70a9cd8..1c893f0 100644
--- a/arch/powerpc/lib/crtsavres.S
+++ b/arch/powerpc/lib/crtsavres.S
@@ -6,6 +6,7 @@
  *   Written By Michael Meissner
  *
  * Based on gcc/config/rs6000/crtsavres.asm from gcc
+ * 64 bit additions from reading the PPC elf64abi document.
  *
  * This file is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -44,6 +45,8 @@
 
 #ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 
+#ifndef CONFIG_PPC64
+
 /* Routines for saving integer registers, called by the compiler.  */
 /* Called with r11 pointing to the stack header word of the caller of the */
 /* function, just beyond the end of the integer save area.  */
@@ -226,4 +229,130 @@ _GLOBAL(_rest32gpr_31_x)
 	mtlr	0
 	mr	1,11
 	blr
+
+#else /* CONFIG_PPC64 */
+
+.globl	_savegpr0_14
+_savegpr0_14:
+	std	r14,-144(r1)
+.globl	_savegpr0_15
+_savegpr0_15:
+	std	r15,-136(r1)
+.globl	_savegpr0_16
+_savegpr0_16:
+	std	r16,-128(r1)
+.globl	_savegpr0_17
+_savegpr0_17:
+	std	r17,-120(r1)
+.globl	_savegpr0_18
+_savegpr0_18:
+	std	r18,-112(r1)
+.globl	_savegpr0_19
+_savegpr0_19:
+	std	r19,-104(r1)
+.globl	_savegpr0_20
+_savegpr0_20:
+	std	r20,-96(r1)
+.globl	_savegpr0_21
+_savegpr0_21:
+	std	r21,-88(r1)
+.globl	_savegpr0_22
+_savegpr0_22:
+	std	r22,-80(r1)
+.globl	_savegpr0_23
+_savegpr0_23:
+	std	r23,-72(r1)
+.globl	_savegpr0_24
+_savegpr0_24:
+	std	r24,-64(r1)
+.globl	_savegpr0_25
+_savegpr0_25:
+	std	r25,-56(r1)
+.globl	_savegpr0_26
+_savegpr0_26:
+	std	r26,-48(r1)
+.globl	_savegpr0_27
+_savegpr0_27:
+	std	r27,-40(r1)
+.globl	_savegpr0_28
+_savegpr0_28:
+	std	r28,-32(r1)
+.globl	_savegpr0_29
+_savegpr0_29:
+	std	r29,-24(r1)
+.globl	_savegpr0_30
+_savegpr0_30:
+	std	r30,-16(r1)
+.globl	_savegpr0_31
+_savegpr0_31:
+	std	r31,-8(r1)
+	std	r0,16(r1)
+	blr
+
+.globl	_restgpr0_14
+_restgpr0_14:
+	ld	r14,-144(r1)
+.globl	_restgpr0_15
+_restgpr0_15:
+	ld	r15,-136(r1)
+.globl	_restgpr0_16
+_restgpr0_16:
+	ld	r16,-128(r1)
+.globl	_restgpr0_17
+_restgpr0_17:
+	ld	r17,-120(r1)
+.globl	_restgpr0_18
+_restgpr0_18:
+	ld	r18,-112(r1)
+.globl	_restgpr0_19
+_restgpr0_19:
+	ld	r19,-104(r1)
+.globl	_restgpr0_20
+_restgpr0_20:
+	ld	r20,-96(r1)
+.globl	_restgpr0_21
+_restgpr0_21:
+	ld	r21,-88(r1)
+.globl	_restgpr0_22
+_restgpr0_22:
+	ld	r22,-80(r1)
+.globl	_restgpr0_23
+_restgpr0_23:
+	ld	r23,-72(r1)
+.globl	_restgpr0_24
+_restgpr0_24:
+	ld	r24,-64(r1)
+.globl	_restgpr0_25
+_restgpr0_25:
+	ld	r25,-56(r1)
+.globl	_restgpr0_26
+_restgpr0_26:
+	ld	r26,-48(r1)
+.globl	_restgpr0_27
+_restgpr0_27:
+	ld	r27,-40(r1)
+.globl	_restgpr0_28
+_restgpr0_28:
+	ld	r28,-32(r1)
+.globl	_restgpr0_29
+_restgpr0_29:
+	ld	r0,16(r1)
+	ld	r29,-24(r1)
+	mtlr	r0
+	ld	r30,-16(r1)
+	ld	r31,-8(r1)
+	blr
+
+.globl	_restgpr0_30
+_restgpr0_30:
+	ld	r30,-16(r1)
+.globl	_restgpr0_31
+_restgpr0_31:
+	ld	r0,16(r1)
+	ld	r31,-8(r1)
+	mtlr	r0
+	blr
+
+#endif /* CONFIG_PPC64 */
+
 #endif
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index f877900..f6127b9 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -503,6 +503,11 @@ static int ignore_undef_symbol(struct elf_info *info, const char *symname)
 		    strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
 		    strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0)
 			return 1;
+	if (info->hdr->e_machine == EM_PPC64)
+		/* Special register function linked on all modules during final link of .ko */
+		if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
+		    strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0)
+			return 1;
 	/* Do not ignore this symbol */
 	return 0;
 }
-- 
1.7.1

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

^ permalink raw reply related

* Re: machine check in kernel for a mpc870 board
From: Shawn Jin @ 2010-06-30  6:14 UTC (permalink / raw)
  To: Scott Wood; +Cc: ppcdev
In-Reply-To: <20100629185617.GA24285@schlenkerla.am.freescale.net>

Hi Scott,

>> Bus Fault @ 0x00404c40, fixup 0x00000000
>> Machine check in kernel mode.
>> Caused by (from msr): regs 07d1cb80 Unknown values in msr
>> NIP: 00404C40 XER: 00000000 LR: 00404C24 REGS: 07d1cb80 TRAP: 0200 DAR: 00000001
>> MSR: 00001002 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
>
> Can you look up the source line/instruction corresponding to 0x404c40, in
> the wrapper ELF file?

I'm not sure how to look up it. But I used the BDI to dump the
instructions in which you may find some clue? These should be kernel
code, right? Maybe the gdb can help to de-assemble them?

BDI>md 0x404c00 0x20
00404c00 : 0x4800317d   1207972221  H.1}
00404c04 : 0x80010014  -2147418092  ....
00404c08 : 0xbbc10008  -1144979448  ....
00404c0c : 0x7c0803a6   2080900006  |...
00404c10 : 0x38210010    941686800  8!..
00404c14 : 0x4e800020   1317011488  N..
00404c18 : 0x9421fff0  -1809711120  .!..
00404c1c : 0x7c0802a6   2080899750  |...
00404c20 : 0x429f0005   1117716485  B...
00404c24 : 0xbfc10008  -1077870584  ....
00404c28 : 0x7fc802a6   2143814310  ....
00404c2c : 0x90010014  -1878982636  ....
00404c30 : 0x3fde0001   1071513601  ?...
00404c34 : 0x3bdedd98   1004461464  ;...
00404c38 : 0x813e8000  -2126610432  .>..
00404c3c : 0x81490000  -2125922304  .I..
00404c40 : 0xa00a0000  -1609957376  ....
00404c44 : 0x0c000000    201326592  ....
00404c48 : 0x4c00012c   1275068716  L..,
00404c4c : 0x70090001   1879638017  p...
00404c50 : 0x4082fff0   1082327024  @...
00404c54 : 0x817e8000  -2122416128  .~..
00404c58 : 0x5469402e   1416183854  Ti@.

Thanks a lot,
-Shawn.

^ permalink raw reply

* Please pull my perf.git tree support
From: Paul Mackerras @ 2010-06-30  6:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev, Ingo Molnar, K.Prasad, Frederic Weisbecker

Ben,

When you set up your next branch for commits to go in 2.6.36-rc1,
please do a pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf.git master

to get a series of commits that add support for hw_breakpoint events
on 64-bit POWER server processors in the perf_event subsystem.  This
consists of a commit from me that adds support for most integer
instructions to the emulate_step() function, a series from K. Prasad
that add the ppc64-specific hw_breakpoint code, and some small
commits from me that fix a few bugs that I found in testing.

There is one commit in there from K. Prasad that modifies the generic
hw_breakpoint code to add the ability to have an arch-specific
unregister hook for hw_breakpoints.  It has been acked by Frederic
Weisbecker.

Thanks,
Paul.

The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:

  Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf.git master

K.Prasad (5):
      hw_breakpoints: Allow arch-specific cleanup before breakpoint unregistration
      powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors
      powerpc, hw_breakpoint: Handle concurrent alignment interrupts
      powerpc, hw_breakpoint: Enable hw-breakpoints while handling intervening signals
      powerpc, hw_breakpoint: Discard extraneous interrupt due to accesses outside symbol length

Paul Mackerras (4):
      powerpc: Emulate most Book I instructions in emulate_step()
      powerpc, hw_breakpoint: Fix off-by-one in checking access address
      powerpc, hw_breakpoint: Cooperate better with other single-steppers
      powerpc, hw_breakpoint: Tell generic code we have no instruction breakpoints

 arch/powerpc/Kconfig                     |    1 +
 arch/powerpc/include/asm/asm-compat.h    |    2 +
 arch/powerpc/include/asm/cputable.h      |    4 +
 arch/powerpc/include/asm/hw_breakpoint.h |   74 ++
 arch/powerpc/include/asm/ppc-opcode.h    |    7 +
 arch/powerpc/include/asm/processor.h     |    8 +
 arch/powerpc/kernel/Makefile             |    1 +
 arch/powerpc/kernel/exceptions-64s.S     |    1 +
 arch/powerpc/kernel/hw_breakpoint.c      |  364 +++++++
 arch/powerpc/kernel/machine_kexec_64.c   |    3 +
 arch/powerpc/kernel/process.c            |   14 +
 arch/powerpc/kernel/ptrace.c             |   64 ++
 arch/powerpc/kernel/signal.c             |    3 +
 arch/powerpc/kernel/traps.c              |    8 +-
 arch/powerpc/lib/Makefile                |    5 +-
 arch/powerpc/lib/ldstfp.S                |  375 ++++++++
 arch/powerpc/lib/sstep.c                 | 1514 +++++++++++++++++++++++++++++-
 kernel/hw_breakpoint.c                   |   12 +
 18 files changed, 2408 insertions(+), 52 deletions(-)
 create mode 100644 arch/powerpc/include/asm/hw_breakpoint.h
 create mode 100644 arch/powerpc/kernel/hw_breakpoint.c
 create mode 100644 arch/powerpc/lib/ldstfp.S

^ permalink raw reply

* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Anton Vorontsov @ 2010-06-30  7:06 UTC (permalink / raw)
  To: David Daney
  Cc: gregkh, linux-usb, David Brownell, linuxppc-dev, Mark Miesfeld,
	Fushen Chen
In-Reply-To: <4C2A7E14.4060802@caviumnetworks.com>

On Tue, Jun 29, 2010 at 04:13:24PM -0700, David Daney wrote:
> On 06/29/2010 03:41 PM, David Brownell wrote:
> >Good -- MUSB won't be the only one.  ;)
> >
> >Could you mention a few Linux-enabled chips which
> >include this controller?
> >
> 
> I can.  Some members of the Octeon family:  arch/mips/cavium-octeon

Plus ECONA CNS3xxx (arch/arm/mach-cns3xxx).

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

^ permalink raw reply

* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Stefan Roese @ 2010-06-30  9:27 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: linuxppc-dev, linux-usb, Mark Miesfeld, Wolfgang Denk,
	Fushen Chen
In-Reply-To: <12778468223309-git-send-email-fchen@apm.com>

Hi Fushen, Hi Mark,

On Tuesday 29 June 2010 23:26:54 Fushen Chen wrote:
> The DWC OTG driver module provides the initialization and cleanup
> entry points for the DWC OTG USB driver.
> 
> Signed-off-by: Fushen Chen <fchen@apm.com>
> Signed-off-by: Mark Miesfeld <mmiesfeld@apm.com>

I tried to compare this driver with the version that's currently available in 
the linux-2.6-denx repository. But the differences are quite big. Could you 
please list the history of this DWC driver? Things like:

- Which Synopsis version is it based upon?
- What changes/enhancements/fixups where made from APM?
- How was this driver tested (USB host and device mode)?

As Wolfgang already pointed out, the driver in our git repository has 
undergone multiple changes/fixes. Did you take a look at them and try to 
integrate them?

Thanks.

Cheers,
Stefan

^ permalink raw reply

* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Sergei Shtylyov @ 2010-06-30 10:10 UTC (permalink / raw)
  To: Fushen Chen; +Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh
In-Reply-To: <12778468223309-git-send-email-fchen@apm.com>

Hello.

Fushen Chen wrote:

> The DWC OTG driver module provides the initialization and cleanup
> entry points for the DWC OTG USB driver.

> Signed-off-by: Fushen Chen <fchen@apm.com>
> Signed-off-by: Mark Miesfeld <mmiesfeld@apm.com>
[...]
> diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
> index 083e68e..1a141b8 100644
> --- a/arch/powerpc/boot/dts/kilauea.dts
> +++ b/arch/powerpc/boot/dts/kilauea.dts
> @@ -394,5 +394,20 @@
>  				0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */
>  				0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>;
>  		};
> +
> +		USBOTG0: usbotg@ef6c0000 {
> +			compatible = "amcc,dwc-otg";
> +			reg = <0xef6c0000 0x10000>;
> +			interrupt-parent = <&USBOTG0>;
> +			interrupts = <0x0 0x1 0x2>;
> +			#interrupt-cells = <0x1>;
> +			#address-cells = <0x0>;
> +			#size-cells = <0x0>;
> +			interrupt-map = <
> +				0x0 &UIC2 0x1e 0x4 /* USB-OTG */
> +				0x1 &UIC1 0x1a 0x8 /* HIGH-POWER */
> +				0x2 &UIC0 0xc 0x4  /* DMA */ >;
> +			interrupt-map-mask = <0xffffffff>;
> +		};
>  	};
>  };

    Please put this file in a separate patch and push thru the PowerPC tree.

WBR, Sergei

^ permalink raw reply

* Re: [PATCH 1/9] Add Synopsys DesignWare HS USB OTG Controller driver.
From: Daniel Glöckner @ 2010-06-30  9:53 UTC (permalink / raw)
  To: David Brownell
  Cc: linuxppc-dev, linux-usb, Mark Miesfeld, gregkh, Fushen Chen
In-Reply-To: <5569.83301.qm@web180304.mail.gq1.yahoo.com>

On 06/30/2010 12:41 AM, David Brownell wrote:
> Could you mention a few Linux-enabled chips which
> include this controller?

Ralink APSoC chips (rt2880, rt305x) do:
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/rt2880/linux-2.6.23/drivers/usb/dwc_otg/Kconfig

  Daniel

-- 
Dipl.-Math. Daniel Glöckner, emlix GmbH, http://www.emlix.com
Fon +49 551 30664-0, Fax -11, Bahnhofsallee 1b, 37081 Göttingen, Germany
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
Geschäftsführer: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055

emlix - your embedded linux partner

^ permalink raw reply

* Oops while running fs_racer test on a POWER6 box against latest git
From: divya @ 2010-06-30 11:22 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Latchesar Ionkov, Ron Minnich, LKML

[-- Attachment #1: Type: text/plain, Size: 3860 bytes --]

While running fs_racer test from LTP on a POWER6 box against latest git(2.6.35-rc3-git4 - commitid 984bc9601f64fd)
came across the following warning followed by multiple oops.

------------[ cut here ]------------

Badness at kernel/mutex-debug.c:64
NIP: c0000000000be9e8 LR: c0000000000be9cc CTR: 0000000000000000
REGS: c00000010be8f6f0 TRAP: 0700   Not tainted  (2.6.35-rc3-git4-autotest)
MSR: 8000000000029032<EE,ME,CE,IR,DR>    CR: 24224422  XER: 00000012
TASK = c00000010727cf00[8211] 'fs_racer_file_c' THREAD: c00000010be8bb50 CPU: 2
GPR00: 0000000000000000 c00000010be8f970 c000000000d3d798 0000000000000001
GPR04: c00000010be8fa70 c00000010be8c000 c00000010727d9f8 0000000000000000
GPR08: c0000000043042f0 c0000000016534e8 000000000000017a c000000000c29a1c
GPR12: 0000000028228424 c00000000f600500 c00000010be8fc40 0000000020000000
GPR16: fffffffffffff000 c000000109c73000 c00000010be8fc30 0000000000010442
GPR20: 0000000000000000 0000000000000000 00000000000001b6 c00000010dd12250
GPR24: c00000000017c08c c00000010727cf00 c00000010dd12278 c00000010dd12210
GPR28: 0000000000000001 c00000010be8c000 c000000000ca2008 c00000010be8fa70
NIP [c0000000000be9e8] .mutex_remove_waiter+0xa4/0x130
LR [c0000000000be9cc] .mutex_remove_waiter+0x88/0x130
Call Trace:
[c00000010be8f970] [c00000010be8fa00] 0xc00000010be8fa00 (unreliable)
[c00000010be8fa00] [c00000000064a9f0] .mutex_lock_nested+0x384/0x430
Instruction dump:
e81f0010 e93d0000 7fa04800 41fe0028 482e96e5 60000000 2fa30000 419e0018
e93e8008 80090000 2f800000 409e0008<0fe00000>   e93e8000 80090000 2f800000
Unable to handle kernel paging request for unknown fault
Faulting instruction address: 0xc00000000008d0f4
Oops: Kernel access of bad area, sig: 7 [#1]
SMP NR_CPUS=1024 NUMA
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg
sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c00000000008d0f4 LR: c00000000008d0d0 CTR: 0000000000000000
REGS: c00000010978f900 TRAP: 0600   Tainted: G        W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000009032
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
EE,ME,IR,DR>    CR: 24022442  XER: 00000012
DAR: c000000000648f54, DSISR: 0000000040010000
TASK = c0000001096e4900[7353] 'fs_racer_file_s' THREAD: c00000010978c000 CPU: 10
GPR00: 0000000000004000 c00000010978fb80 c000000000d3d798 0000000000000001
GPR04: c00000000083539e c000000001610228 0000000000000000 c0000000054c6880
GPR08: 00000000000006a5 c000000000648f54 0000000000000007 00000000049b0000
GPR12: 0000000000000000 c00000000f601900 00000000ffffffff ffffffffffffffff
GPR16: 000000004b7dc520 0000000000000000 0000000000000000 c00000010978fea0
GPR20: 00000fffcca7e7a0 00000fffcca7e7a0 00000fffabf7dfd0 00000fffabf7dfd0
GPR24: 0000000000000000 0000000001200011 c000000000e1c0a8 c000000000648ed4
GPR28: 0000000000000000 c0000001096e4900 c000000000ca0458 c00000010725d400
NIP [c00000000008d0f4] .copy_process+0x310/0xf40
LR [c00000000008d0d0] .copy_process+0x2ec/0xf40
Call Trace:
[c00000010978fb80] [c00000000008d0d0] .copy_process+0x2ec/0xf40 (unreliable)
[c00000010978fc80] [c00000000008deb4] .do_fork+0x190/0x3cc
[c00000010978fdc0] [c000000000011ef4] .sys_clone+0x58/0x70
[c00000010978fe30] [c0000000000087f0] .ppc_clone+0x8/0xc
Instruction dump:
419e0010 7fe3fb78 480774cd 60000000 801f0014 e93f0008 7800b842 39290080
78004800 60000042 901f0014 38004000<7d6048a8>   7d6b0078 7d6049ad 40c2fff4

Kernel version 2.6.34-rc3-git3 works fine.

Thanks
Divya



[-- Attachment #2: 2.6.34-rc3-git4.log --]
[-- Type: text/x-log, Size: 43662 bytes --]

Using 007dfade bytes for initrd buffer
Please wait, loading kernel...
Allocated 01800000 bytes for kernel @ 01e00000
   Elf64 kernel loaded...
Loading ramdisk...
ramdisk loaded 007dfade @ 03600000
OF stdout device is: /vdevice/vty@30000000
Preparing to boot Linux version 2.6.35-rc3-git4-autotest (root@p55alp2) (gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux) ) #1 SMP Wed Jun 30 08:47:11 IST 2010
Max number of cores passed to firmware: 0x0000000000000200
Calling ibm,client-architecture-support... not implemented
command line: root=/dev/sda5 IDENT=1277868480
memory layout at init:
  memory_limit : 0000000000000000 (16 MB aligned)
  alloc_bottom : 0000000003de0000
  alloc_top    : 0000000010000000
  alloc_top_hi : 00000001f0000000
  rmo_top      : 0000000010000000
  ram_top      : 00000001f0000000
instantiating rtas at 0x000000000f6a0000... done
boot cpu hw idx 0000000000000000
starting cpu hw idx 0000000000000002... done
starting cpu hw idx 0000000000000004... done
starting cpu hw idx 0000000000000006... done
starting cpu hw idx 0000000000000008... done
starting cpu hw idx 000000000000000a... done
starting cpu hw idx 000000000000000c... done
starting cpu hw idx 000000000000000e... done
starting cpu hw idx 0000000000000010... done
starting cpu hw idx 0000000000000012... done
copying OF device tree...
Building dt strings...
Building dt structure...
Device tree strings 0x0000000003df0000 ->  0x0000000003df1135
Device tree struct  0x0000000003e00000 ->  0x0000000003e10000
Calling quiesce...
returning from prom_init
Phyp-dump not supported on this hardware
Using pSeries machine description
Using 1TB segments
Found initrd at 0xc000000003600000:0xc000000003ddfade
bootconsole [udbg0] enabled
Partition configured for 20 cpus.
CPU maps initialized for 2 threads per core
Starting Linux PPC64 #1 SMP Wed Jun 30 08:47:11 IST 2010
-----------------------------------------------------
ppc64_pft_size                = 0x1b
physicalMemorySize            = 0x1f0000000
htab_hash_mask                = 0xfffff
-----------------------------------------------------
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.35-rc3-git4-autotest (root@p55alp2) (gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux) ) #1 SMP Wed Jun 30 08:47:11 IST 2010
[boot]0012 Setup Arch
EEH: No capable adapters found
PPC64 nvram contains 7168 bytes
Zone PFN ranges:
  DMA      0x00000000 ->  0x0001f000
  Normal   empty
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 ->  0x00011000
    1: 0x00011000 ->  0x0001f000
[boot]0015 Setup Done
PERCPU: Embedded 29 pages/cpu @c000000003f00000 s1861120 r0 d39424 u2097152
pcpu-alloc: s1861120 r0 d39424 u2097152 alloc=2*1048576
pcpu-alloc: [0] 00 [0] 01 [0] 02 [0] 03 [0] 04 [0] 05 [0] 06 [0] 07
pcpu-alloc: [0] 08 [0] 09 [0] 10 [0] 11 [0] 12 [0] 13 [0] 14 [0] 15
pcpu-alloc: [0] 16 [0] 17 [0] 18 [0] 19
Built 2 zonelists in Node order, mobility grouping on.  Total pages: 126867
Policy zone: DMA
Kernel command line: root=/dev/sda5 IDENT=1277868480
PID hash table entries: 4096 (order: -1, 32768 bytes)
freeing bootmem node 0
freeing bootmem node 1
Memory: 8014272k/8126464k available (11392k kernel code, 112192k reserved, 2752k data, 8893k bss, 2304k init)
SLUB: Genslabs=18, HWalign=128, Order=0-3, MinObjects=0, CPUs=20, Nodes=256
Hierarchical RCU implementation.
        RCU torture testing starts during boot.
        Verbose stalled-CPUs detection is disabled.
NR_IRQS:512 nr_irqs:512
[boot]0020 XICS Init
[boot]0021 XICS Done
clocksource: timebase mult[155e24d] shift[22] registered
Console: colour dummy device 80x25
console [hvc0] enabled, bootconsole disabled
console [hvc0] enabled, bootconsole disabled
Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBCLASSES:  8
... MAX_LOCK_DEPTH:          48
... MAX_LOCKDEP_KEYS:        8191
... CLASSHASH_SIZE:          4096
... MAX_LOCKDEP_ENTRIES:     16384
... MAX_LOCKDEP_CHAINS:      32768
... CHAINHASH_SIZE:          16384
 memory used by lock dependency info: 6335 kB
 per task-struct memory footprint: 2688 bytes
allocated 5079040 bytes of page_cgroup
please try 'cgroup_disable=memory' option if you don't want memory cgroups
pid_max: default: 32768 minimum: 301
Security Framework initialized
SELinux:  Disabled at boot.
Dentry cache hash table entries: 1048576 (order: 7, 8388608 bytes)
Inode-cache hash table entries: 524288 (order: 6, 4194304 bytes)
Mount-cache hash table entries: 4096
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys blkio
Processor 1 found.
Processor 2 found.
Processor 3 found.
Processor 4 found.
Processor 5 found.
Processor 6 found.
Processor 7 found.
Processor 8 found.
Processor 9 found.
Processor 10 found.
Processor 11 found.
Processor 12 found.
Processor 13 found.
Processor 14 found.
Processor 15 found.
Processor 16 found.
Processor 17 found.
Processor 18 found.
Processor 19 found.
Brought up 20 CPUs
NET: Registered protocol family 16
IBM eBus Device Driver
POWER5+/++ performance monitor hardware support registered
PCI: Probing PCI hardware
bio: create slab<bio-0>  at 0
vgaarb: loaded
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource timebase
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 3, 524288 bytes)
TCP established hash table entries: 262144 (order: 6, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 6, 4718592 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
UDP hash table entries: 4096 (order: 3, 655360 bytes)
UDP-Lite hash table entries: 4096 (order: 3, 655360 bytes)
NET: Registered protocol family 1
Unpacking initramfs...
Freeing initrd memory: 8062k freed
IOMMU table initialized, virtual merging enabled
audit: initializing netlink socket (disabled)
type=2000 audit(1277868538.520:1): initialized
Kprobe smoke test started
Kprobe smoke test passed successfully
rcu-torture:--- Start of test: nreaders=40 nfakewriters=4 stat_interval=0 verbose=0 test_no_idle_hz=0 shuffle_interval=3 stutter=5 irqreader=1 fqs_duration=0 fqs_holdoff=0 fqs_stutter=3
HugeTLB registered 16 MB page size, pre-allocated 0 pages
HugeTLB registered 16 GB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
Btrfs loaded
msgmni has been set to 15668
alg: No test for stdrng (krng)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
rpaphp: RPA HOT Plug PCI Controller Driver version: 0.1
Generic RTC Driver v1.07
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
pmac_zilog: 0.6 (Benjamin Herrenschmidt<benh@kernel.crashing.org>)
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
IBM eHEA ethernet device driver (Release EHEA_0105)
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
mice: PS/2 mouse device common for all mice
EDAC MC: Ver: 2.1.0 Jun 30 2010
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
NET: Registered protocol family 15
registered taskstats version 1
Freeing unused kernel memory: 2304k freed
doing fast boot
SCSI subsystem initialized
ibmvscsi 30000003: SRP_VERSION: 16.a
scsi0 : IBM POWER Virtual SCSI Adapter 1.5.8
ibmvscsi 30000003: partner initialization complete
ibmvscsi 30000003: host srp version: 16.a, host partition p55avios (1), OS 3, max io 262144
ibmvscsi 30000003: Client reserve enabled
ibmvscsi 30000003: sent SRP login
ibmvscsi 30000003: SRP_LOGIN succeeded
scsi 0:0:1:0: Direct-Access     AIX      VDASD            0001 PQ: 0 ANSI: 3
scsi 0:0:2:0: CD-ROM            AIX      VOPTA                 PQ: 0 ANSI: 4
Creating device nodes with udev
udevd version 128 started
sd 0:0:1:0: [sda] 146800640 512-byte logical blocks: (75.1 GB/70.0 GiB)
sd 0:0:1:0: [sda] Write Protect is off
sd 0:0:1:0: [sda] Cache data unavailable
sd 0:0:1:0: [sda] Assuming drive cache: write through
sd 0:0:1:0: [sda] Cache data unavailable
sd 0:0:1:0: [sda] Assuming drive cache: write through
 sda: sda1 sda2 sda3<  sda5 sda6>
sd 0:0:1:0: [sda] Cache data unavailable
sd 0:0:1:0: [sda] Assuming drive cache: write through
sd 0:0:1:0: [sda] Attached SCSI disk
Boot logging started on /dev/hvc0(/dev/console) at Wed Jun 30 03:28:59 2010
resume device  not found (ignoring)
Waiting for device /dev/sda5 to appear:  ok
showconsole: Warning: the ioctl TIOCGDEV is not known by the kernel
fsck 1.41.1 (01-Sep-2008)
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/sda5
/dev/sda5: clean, 339391/2097152 files, 4231791/8379888 blocks
fsck succeeded. Mounting root device read-write.
Mounting root /dev/sda5
mount -o rw,acl,user_xattr -t ext3 /dev/sda5 /root
EXT3-fs: barriers not enabled
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sda5): using internal journal
EXT3-fs (sda5): mounted filesystem with writeback data mode
mount: can't find /root/proc in /etc/fstab or /etc/mtab
INIT: version 2.86 booting
System Boot Control: Running /etc/init.d/boot
Mounting procfs at /proc7[?25l[80C[10D[1;32mdone[m8[?25h
Mounting sysfs at /sys7[?25l[80C[10D[1;32mdone[m8[?25h
Mounting debugfs at /sys/kernel/debug7[?25l[80C[10D[1;32mdone[m8[?25h
Remounting tmpfs at /dev7[?25l[80C[10D[1;32mdone[m8[?25h
Initializing /dev7[?25l[80C[10D[1;32mdone[m8[?25h
Mounting devpts at /dev/pts7[?25l[80C[10D[1;32mdone[m8[?25h
Starting udevd: udevd version 128 started
7[?25l[80C[10D[1;32mdone[m8[?25h
Loading drivers, configuring devices: sd 0:0:1:0: Attached scsi generic sg0 type 0
scsi 0:0:2:0: Attached scsi generic sg1 type 5
sr0: scsi-1 drive
Uniform CD-ROM driver Revision: 3.20
7[?25l[80C[10D[1;32mdone[m8[?25h
Loading required kernel modules
7[?25l[1A[80C[10D[1;32mdone[m8[?25hActivating swap-devices in /etc/fstab...
Adding 8385856k swap on /dev/sda2.  Priority:-1 extents:1 across:8385856k
7[?25l[1A[80C[10D[1;32mdone[m8[?25hSetting up the hardware clock7[?25l[80C[10D[1;32mdone[m8[?25h
Activating device mapper...
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.17.0-ioctl (2010-03-05) initialised: dm-devel@redhat.com
7[?25l[80C[10D[1;32mdone[m8[?25h
Checking file systems...
fsck 1.41.1 (01-Sep-2008)
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /data] fsck.ext3 -a /dev/sda6
/dev/sda6: clean, 12/1966080 files, 906609/7863808 blocks
7[?25l[1A[80C[10D[1;32mdone[m8[?25h7[?25l[80C[10D[1;32mdone[m8[?25h
Mounting local file systems...
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
loop: module loaded
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
EXT3-fs: barriers not enabled
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sda6): using internal journal
EXT3-fs (sda6): mounted filesystem with writeback data mode
/dev/sda6 on /data type ext3 (rw,acl,user_xattr)
7[?25l[1A[80C[10D[1;32mdone[m8[?25hfuse init (API version 7.14)
Loading fuse module 7[?25l[80C[10D[1;32mdone[m8[?25h
Mounting fuse control filesystem7[?25l[80C[10D[1;32mdone[m8[?25h
Setting current sysctl status from /etc/sysctl.conf7[?25l[80C[10D[1;32mdone[m8[?25h
Activating remaining swap-devices in /etc/fstab...
7[?25l[1A[80C[10D[1;32mdone[m8[?25hEnabling syn flood protection[80C[10D[1;32mdone[m
Disabling IP forwarding7[?25l[80C[10D[1;32mdone[m8[?25h
7[?25l[80C[10D[1;32mdone[m8[?25h
Creating /var/log/boot.msg
7[?25l[1A[80C[10D[1;32mdone[m8[?25hshowconsole: Warning: the ioctl TIOCGDEV is not known by the kernel
Turning quota on
Checking quotas. This may take some time.
7[?25l[80C[10D[1;32mdone[m8[?25h
ATTENTION: You have modified /etc/resolv.conf.  Leaving it untouched...
You can find my version in /etc/resolv.conf.netconfig ...
Mounting securityfs on /sys/kernel/security [80C[10D[1;32mdone[m
Loading AppArmor module [80C[10D[1;31mfailed[m
Setting up hostname 'p55alp2'7[?25l[80C[10D[1;32mdone[m8[?25h
Setting up loopback interface     lo
    lo        IP address: 127.0.0.1/8
              IP address: 127.0.0.2/8
7[?25l[80C[10D[1;32mdone[m8[?25h
Loading kdump
Then try loading kdump kernel
Memory for crashkernel is not reserved
Please reserve memory by passing "crashkernel=X@Y" parameter to the kernel
7[?25l[80C[10D[1;31mfailed[m8[?25h
System Boot Control: The system has been [80C[10D[1mset up[m
Failed features: [80C[31D[1;31mboot.apparmor boot.kdump[m
System Boot Control: Running /etc/init.d/boot.local
7[?25l[1A[80C[10D[1;32mdone[m8[?25hINIT: Entering runlevel: 3
Boot logging started on /dev/hvc0(/dev/console) at Wed Jun 30 08:59:10 2010
Master Resource Control: previous runlevel: N, switching to runlevel: [80C[10D[1m3[m
Initializing random number generator7[?25l[80C[10D[1;32mdone[m8[?25h
Starting D-Bus daemon7[?25l[80C[10D[1;32mdone[m8[?25h
Starting syslog services7[?25l[80C[10D[1;32mdone[m8[?25h
Loading CPUFreq modules (CPUFreq not supported)
Starting HAL daemon7[?25l[80C[10D[1;32mdone[m8[?25h
Setting up (localfs) network interfaces:
    lo
    lo        IP address: 127.0.0.1/8
              IP address: 127.0.0.2/8
7[?25l[1A[80C[10D[1;32mdone[m8[?25h    eth0      name: Virtual Ethernet card 0
    eth0      IP address: 9.124.111.212/24
7[?25l[1A[80C[10D[1;32mdone[m8[?25hSetting up service (localfs) network  .  .  .  .  .  .  .  .  .  .7[?25l[80C[10D[1;32mdone[m8[?25h
Mount CIFS File Systems [80C[10D[1munused[m
Starting rpcbind 7[?25l[80C[10D[1;32mdone[m8[?25h
Starting auditd 7[?25l[80C[10D[1;32mdone[m8[?25h
Not starting NFS client services - no NFS found in /etc/fstab:[80C[10D[1munused[m
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
Loading console font lat9w-16.psfu  -m trivial G0:loadable
7[?25l[1A[80C[10D[1;32mdone[m8[?25hLoading keymap assuming iso-8859-15 euro
Loading /usr/share/kbd/keymaps/i386/qwerty/us.map.gz
7[?25l[1A[80C[10D[1;32mdone[m8[?25hLoading compose table latin1.add7[?25l[80C[10D[1;32mdone[m8[?25h
Start Unicode mode
7[?25l[1A[80C[10D[1;32mdone[m8[?25hStarting Name Service Cache Daemon7[?25l[80C[10D[1;32mdone[m8[?25h
Starting cupsd7[?25l[80C[10D[1;32mdone[m8[?25h
Starting rtas_errd (platform error handling) daemon: 7[?25l[80C[10D[1;32mdone[m8[?25h
Starting irqbalance 7[?25l[80C[10D[1;32mdone[m8[?25h
Starting ipr initialization daemon [80C[10D[1;32mdone[m
Checking ipr microcode levels
Completed ipr microcode updates [80C[10D[1;32mdone[m
Starting SSH daemon7[?25l[80C[10D[1;32mdone[m8[?25h
Starting smartd [80C[10D[1munused[m
Starting ipr dump daemon [80C[10D[1;32mdone[m
Setting up (remotefs) network interfaces:
Setting up service (remotefs) network  .  .  .  .  .  .  .  .  .  .7[?25l[80C[10D[1;32mdone[m8[?25h
Starting INET services. (xinetd)7[?25l[80C[10D[1;32mdone[m8[?25h
Starting mail service (Postfix)7[?25l[80C[10D[1;32mdone[m8[?25h
Starting CRON daemon7[?25l[80C[10D[1;32mdone[m8[?25h
Master Resource Control: runlevel 3 has been [80C[10D[1mreached[m
Skipped services in runlevel 3: [80C[30D[1;33msmbfs nfs smartd splash[m
showconsole: Warning: the ioctl TIOCGDEV is not known by the kernel


Welcome to SUSE Linux Enterprise Server 11 (ppc64) - Kernel 2.6.35-rc3-git4-autotest (console).


p55alp2 login:-- 0:conmux-control -- time-stamp -- Jun/29/10 20:31:38 --
-- 0:conmux-control -- time-stamp -- Jun/29/10 21:10:16 --
 ------------[ cut here ]------------
Badness at kernel/mutex-debug.c:64
NIP: c0000000000be9e8 LR: c0000000000be9cc CTR: 0000000000000000
REGS: c00000010be8f6f0 TRAP: 0700   Not tainted  (2.6.35-rc3-git4-autotest)
MSR: 8000000000029032<EE,ME,CE,IR,DR>   CR: 24224422  XER: 00000012
TASK = c00000010727cf00[8211] 'fs_racer_file_c' THREAD: c00000010be8bb50 CPU: 2
GPR00: 0000000000000000 c00000010be8f970 c000000000d3d798 0000000000000001
GPR04: c00000010be8fa70 c00000010be8c000 c00000010727d9f8 0000000000000000
GPR08: c0000000043042f0 c0000000016534e8 000000000000017a c000000000c29a1c
GPR12: 0000000028228424 c00000000f600500 c00000010be8fc40 0000000020000000
GPR16: fffffffffffff000 c000000109c73000 c00000010be8fc30 0000000000010442
GPR20: 0000000000000000 0000000000000000 00000000000001b6 c00000010dd12250
GPR24: c00000000017c08c c00000010727cf00 c00000010dd12278 c00000010dd12210
GPR28: 0000000000000001 c00000010be8c000 c000000000ca2008 c00000010be8fa70
NIP [c0000000000be9e8] .mutex_remove_waiter+0xa4/0x130
LR [c0000000000be9cc] .mutex_remove_waiter+0x88/0x130
Call Trace:
[c00000010be8f970] [c00000010be8fa00] 0xc00000010be8fa00 (unreliable)
[c00000010be8fa00] [c00000000064a9f0] .mutex_lock_nested+0x384/0x430
Instruction dump:
e81f0010 e93d0000 7fa04800 41fe0028 482e96e5 60000000 2fa30000 419e0018
e93e8008 80090000 2f800000 409e0008<0fe00000>  e93e8000 80090000 2f800000
Unable to handle kernel paging request for unknown fault
Faulting instruction address: 0xc00000000008d0f4
Oops: Kernel access of bad area, sig: 7 [#1]
SMP NR_CPUS=1024 NUMA
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c00000000008d0f4 LR: c00000000008d0d0 CTR: 0000000000000000
REGS: c00000010978f900 TRAP: 0600   Tainted: G        W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000009032
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
<
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
EE,ME,IR,DR>   CR: 24022442  XER: 00000012
DAR: c000000000648f54, DSISR: 0000000040010000
TASK = c0000001096e4900[7353] 'fs_racer_file_s' THREAD: c00000010978c000 CPU: 10
GPR00: 0000000000004000 c00000010978fb80 c000000000d3d798 0000000000000001
GPR04: c00000000083539e c000000001610228 0000000000000000 c0000000054c6880
GPR08: 00000000000006a5 c000000000648f54 0000000000000007 00000000049b0000
GPR12: 0000000000000000 c00000000f601900 00000000ffffffff ffffffffffffffff
GPR16: 000000004b7dc520 0000000000000000 0000000000000000 c00000010978fea0
GPR20: 00000fffcca7e7a0 00000fffcca7e7a0 00000fffabf7dfd0 00000fffabf7dfd0
GPR24: 0000000000000000 0000000001200011 c000000000e1c0a8 c000000000648ed4
GPR28: 0000000000000000 c0000001096e4900 c000000000ca0458 c00000010725d400
NIP [c00000000008d0f4] .copy_process+0x310/0xf40
LR [c00000000008d0d0] .copy_process+0x2ec/0xf40
Call Trace:
[c00000010978fb80] [c00000000008d0d0] .copy_process+0x2ec/0xf40 (unreliable)
[c00000010978fc80] [c00000000008deb4] .do_fork+0x190/0x3cc
[c00000010978fdc0] [c000000000011ef4] .sys_clone+0x58/0x70
[c00000010978fe30] [c0000000000087f0] .ppc_clone+0x8/0xc
Instruction dump:
419e0010 7fe3fb78 480774cd 60000000 801f0014 e93f0008 7800b842 39290080
78004800 60000042 901f0014 38004000<7d6048a8>  7d6b0078 7d6049ad 40c2fff4
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#2]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: 0000000000000000
REGS: c00000010979b870 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24042422  XER: 00000012
TASK = c0000001096c4e00[7356] 'fs_racer_file_c' THREAD: c000000109798000 CPU: 4
GPR00: c000000000648ed4 c00000010979baf0 c000000000d3d798 c00000010aeb0c00
GPR04: c0000001096c5320 c000000000087028 0000000024042424 c0000000000129c4
GPR08: c00000010979b890 c000000000000000 c000000000086fcc c0000000048c5780
GPR12: 0000000028000428 c00000000f600a00 0000000000000001 c00000010979bb60
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c000000109798080
GPR20: c0000000000939b0 0000000000000000 c000000109798000 c000000000b15780
GPR24: c0000001096c51c0 0000000000000002 0000000100034ba6 c0000001096c4e00
GPR28: c00000010b904e00 c0000000044c5780 c000000000c9fb00 c000000109e70500
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c00000010979baf0] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c00000010979bc00] [c0000000000939b0] .do_wait+0x19c/0x220
[c00000010979bcc0] [c000000000093b04] .SyS_wait4+0xd0/0x108
[c00000010979bdc0] [c00000000009138c] .SyS_waitpid+0x1c/0x30
[c00000010979be30] [c0000000000085b4] syscall_exit+0x0/0x40
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#3]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: 0000000000000000
REGS: c0000001097cb870 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24042422  XER: 00000010
TASK = c0000001096d5f00[7345] 'fs_racer_dir_cr' THREAD: c0000001097c8000 CPU: 5
GPR00: c000000000648ed4 c0000001097cbaf0 c000000000d3d798 c000000107175a00
GPR04: c0000001096d6420 c000000000087028 0000000024042424 c0000000000129c4
GPR08: c0000001097cb890 c000000000000000 c000000000086fcc c000000004ac5780
GPR12: c00000010c2ac000 c00000000f600c80 0000000000000001 c0000001097cbb60
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c0000001097c8080
GPR20: c0000000000939b0 0000000000000000 c0000001097c8000 c000000000b15780
GPR24: c0000001096d62c0 0000000000000005 0000000100034ba6 c0000001096d5f00
GPR28: c00000010eb8ea00 c000000004ac5780 c000000000c9fb00 c0000001098faf00
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c0000001097cbaf0] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c0000001097cbc00] [c0000000000939b0] .do_wait+0x19c/0x220
[c0000001097cbcc0] [c000000000093b04] .SyS_wait4+0xd0/0x108
[c0000001097cbdc0] [c00000000009138c] .SyS_waitpid+0x1c/0x30
[c0000001097cbe30] [c0000000000085b4] syscall_exit+0x0/0x40
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#4]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: c000000000078dac
REGS: c00000010e4d7ac0 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24000022  XER: 00000001
TASK = c00000010eb98600[0] 'swapper' THREAD: c00000010e4d4000 CPU: 9
GPR00: c000000000648ed4 c00000010e4d7d40 c000000000d3d798 c000000109307500
GPR04: c00000010eb98b20 c000000000087028 0000000024000024 c0000000000129c4
GPR08: c00000010e4d7ae0 c000000000000000 c000000000086fcc c0000000052c5780
GPR12: 0000000044000028 c00000000f601680 0000000000000001 c00000010e4d7db0
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c00000010e4d4080
GPR20: c0000000000140bc 0000000000000000 c00000010e4d4000 c000000000b15780
GPR24: c00000010eb989c8 0000000000000009 0000000000001680 c00000010eb98600
GPR28: c000000109307500 c0000000052c5780 c000000000c9fb00 c000000109376900
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c00000010e4d7d40] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c00000010e4d7e50] [c0000000000140bc] .cpu_idle+0x1a4/0x1ac
[c00000010e4d7ee0] [c000000000656530] .start_secondary+0x378/0x3b0
[c00000010e4d7f90] [c0000000000082d8] .start_secondary_prolog+0x10/0x14
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#5]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: c000000000078dac
REGS: c000000000d3fa30 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24000022  XER: 00000012
TASK = c000000000c67710[0] 'swapper' THREAD: c000000000d3c000 CPU: 0
GPR00: c000000000648ed4 c000000000d3fcb0 c000000000d3d798 c0000001096c7500
GPR04: c000000000c67c30 c000000000087028 0000000024000024 c0000000000129c4
GPR08: c000000000d3fa50 c000000000000000 c000000000086fcc c0000000040c5780
GPR12: 0000000042042428 c00000000f600000 0000000000000001 c000000000d3fd20
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c000000000d3c080
GPR20: c0000000000140bc 0000000000000000 c000000000d3c000 c000000000b15780
GPR24: c000000000c67ad8 0000000000000000 0000000001e00000 c000000000c67710
GPR28: c000000107275a00 c0000000040c5780 c000000000c9fb00 c0000001098f9100
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c000000000d3fcb0] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c000000000d3fdc0] [c0000000000140bc] .cpu_idle+0x1a4/0x1ac
[c000000000d3fe50] [c000000000009d84] .rest_init+0xd8/0x114
[c000000000d3fee0] [c0000000008e0dec] .start_kernel+0x544/0x564
[c000000000d3ff90] [c000000000008434] .start_here_common+0x1c/0x68
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#6]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: c0000000000813e0
REGS: c00000010ed639c0 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24000022  XER: 00000012
TASK = c00000010ecd3800[42] 'migration/13' THREAD: c00000010ed60000 CPU: 13
GPR00: c000000000648ed4 c00000010ed63c40 c000000000d3d798 c00000010edcc300
GPR04: c00000010ecd3d20 c000000000087028 0000000024000028 c0000000000129c4
GPR08: c00000010ed639e0 c000000000000000 c000000000086fcc c000000005ac5780
GPR12: 0000000044224424 c00000000f602080 0000000000000001 c00000010ed63cb0
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c00000010ed60080
GPR20: c0000000000e8a64 0000000000000000 c00000010ed60000 c000000000b15780
GPR24: c00000010ecd3bc0 000000000000000d c000000005ac4250 c00000010ecd3800
GPR28: c00000010a12e500 c000000005ac5780 c000000000c9fb00 c00000010a222800
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c00000010ed63c40] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c00000010ed63d50] [c0000000000e8a64] .cpu_stopper_thread+0x1e4/0x1ec
[c00000010ed63ea0] [c0000000000acc48] .kthread+0xa8/0xb4
[c00000010ed63f90] [c00000000002c698] .kernel_thread+0x54/0x70
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#7]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: 0000000000000000
REGS: c00000010aadb270 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24022422  XER: 00000000
TASK = c00000010aa5d400[8227] 'fs_racer_file_s' THREAD: c00000010aad8000 CPU: 7
GPR00: c000000000648ed4 c00000010aadb4f0 c000000000d3d798 c00000010809ad00
GPR04: c00000010aa5d920 c000000000087028 0000000024022424 c0000000000129c4
GPR08: c00000010aadb290 c000000000000000 c000000000086fcc c000000004ec5780
GPR12: 0000000028000428 c00000000f601180 0000000000000001 c00000010aadb560
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c00000010aad8080
GPR20: c0000000006490b0 0000000000000000 c00000010aad8000 c000000000b15780
GPR24: c00000010aa5d7c0 0000000000000009 0000000100034b9d c00000010aa5d400
GPR28: c00000010eb98600 c0000000052c5780 c000000000c9fb00 c00000010ab53c00
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c00000010aadb4f0] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c00000010aadb600] [c0000000006490b0] .io_schedule+0x8c/0x108
[c00000010aadb690] [c000000000118408] .sync_page+0x78/0x94
[c00000010aadb710] [c0000000006495bc] .__wait_on_bit_lock+0x9c/0x140
[c00000010aadb7d0] [c000000000118344] .__lock_page+0x74/0x98
[c00000010aadb8b0] [c000000000118f00] .filemap_fault+0x114/0x430
[c00000010aadb980] [c000000000133d18] .__do_fault+0xa4/0x628
[c00000010aadba90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c00000010aadbb90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c00000010aadbe30] [c000000000005628] handle_page_fault+0x20/0x74
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
---[ end trace 6d7478f9c45fb038 ]---
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#8]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: c00000000007e3f0
REGS: c00000010efaba00 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24000022  XER: 00000006
TASK = c00000010ef18600[73] 'events/10' THREAD: c00000010efa8000 CPU: 10
GPR00: c000000000648ed4 c00000010efabc80 c000000000d3d798 c0000001096e4900
GPR04: c00000010ef18b20 c000000000087028 0000000024000028 c0000000000129c4
GPR08: c00000010efaba20 c000000000000000 c000000000086fcc c0000000054c5780
GPR12: 0000000028022428 c00000000f601900 0000000000000001
Unrecoverable FP Unavailable Exception 800 at c000000000648ed4
c00000010efabcf0
GPR16: 0000000000000004 c000000000de2550 0000000000000000 c00000010efa8080
GPR20: c0000000000a7658 0000000000000000 c00000010efa8000 c000000000b15780
GPR24: c00000010ef189c0 000000000000000a c0000000054c6ac0 c00000010ef18600
GPR28: c00000010b873300 c0000000054c5780 c000000000c9fb00 c000000109b20500
NIP [c000000000648ed4] .schedule+0x620/0x770
LR [c000000000648ed4] .schedule+0x620/0x770
Call Trace:
[c00000010efabc80] [c000000000648ed4] .schedule+0x620/0x770 (unreliable)
[c00000010efabd90] [c0000000000a7658] .worker_thread+0xf0/0x34c
[c00000010efabea0] [c0000000000acc48] .kthread+0xa8/0xb4
[c00000010efabf90] [c00000000002c698] .kernel_thread+0x54/0x70
Instruction dump:
2fa00000 409e000c f81b02a8 fbfd0878 387d0018 e8be8940 38800001 4ba79469
60000000 7f84e378 7f63db78 4b9c99b1<c0000001>  0725d400 c0000000 00c29830
Oops: Unrecoverable FP Unavailable Exception, sig: 6 [#9]
SMP NR_CPUS=1024 NUMA pSeries
last sysfs file: /sys/devices/system/cpu/cpu19/cache/index1/shared_cpu_map
Modules linked in: ipv6 fuse loop dm_mod sr_mod cdrom ibmveth sg sd_mod crc_t10dif ibmvscsic scsi_transport_srp scsi_tgt scsi_mod
NIP: c000000000648ed4 LR: c000000000648ed4 CTR: 0000000000000000
REGS: c000000108adb870 TRAP: 0800   Tainted: G      D W    (2.6.35-rc3-git4-autotest)
MSR: 8000000000001032<ME,IR,DR>   CR: 24042422  XER: 00000001
---[ end trace 6d7478f9c45fb039 ]---
TASK = c000000108a3cf00[7339] 'fs_racer.sh' THREAD: c000000108ad8000 CPU: 19
GPR00: c000000000648ed4 c000000108adbaf0 c000000000d3d798 c00000010ebb0c00
   ---[ end trace 6d7478f9c45fb03a ]---
---[ end trace 6d7478f9c45fb03b ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Call Trace:
[c00000010e4d7790] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010e4d7840] [c0000000006514a0] .panic+0x94/0x140
[c00000010e4d78d0] [c000000000093ea8] .do_exit+0x98/0x71c
[c00000010e4d79b0] [c00000000002a568] .die+0x27c/0x2ac
[c00000010e4d7a50] [c000000000005110] fp_unavailable_common+0x110/0x180
--- Exception: 800 at .schedule+0x620/0x770
    LR = .schedule+0x620/0x770
[c00000010e4d7e50] [c0000000000140bc] .cpu_idle+0x1a4/0x1ac
[c00000010e4d7ee0] [c000000000656530] .start_secondary+0x378/0x3b0
[c00000010e4d7f90] [c0000000000082d8] .start_secondary_prolog+0x10/0x14
Rebooting in 180 seconds..
---[ end trace 6d7478f9c45fb03c ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Call Trace:
[c000000000d3f700] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c000000000d3f7b

BUG: spinlock lockup on CPU#5, fs_racer_dir_cr/7345, c000000004ac5780
Call Trace:
[c0000001097cabf0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c0000001097caca0] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c0000001097cad40] [c00000000064c44c] ._raw_spin_lock+0x74/0xa4
[c0000001097cadd0] [c00000000008b804] .scheduler_tick+0x54/0x3a8
[c0000001097cae70] [c00000000009e148] .update_process_times+0x5c/0x88
[c0000001097caf10] [c0000000000bd2fc] .tick_sched_timer+0xa4/0xf0
[c0000001097cafb0] [c0000000000b0d84] .__run_hrtimer+0xac/0x11c
[c0000001097cb050] [c0000000000b1098] .hrtimer_interrupt+0x108/0x258
[c0000001097cb140] [c000000000029230] .timer_interrupt+0xe4/0x138
[c0000001097cb1d0] [c000000000003718] decrementer_common+0x118/0x180
--- Exception: 901 at .raw_local_irq_restore+0x6c/0x80
    LR = ._raw_spin_unlock_irq+0x3c/0x54
[c0000001097cb4c0] [c0000001097cb550] 0xc0000001097cb550 (unreliable)
[c0000001097cb550] [c00000000064cf78] ._raw_spin_unlock_irq+0x3c/0x54
[c0000001097cb5e0] [c0000000000d703c] .acct_collect+0x1b0/0x1d4
[c0000001097cb680] [c000000000094008] .do_exit+0x1f8/0x71c
[c0000001097cb760] [c00000000002a568] .die+0x27c/0x2ac
[c0000001097cb800] [c000000000005110] fp_unavailable_common+0x110/0x180
--- Exception: 800 at .schedule+0x620/0x770
    LR = .schedule+0x620/0x770
[c0000001097cbc00] [c0000000000939b0] .do_wait+0x19c/0x220
[c0000001097cbcc0] [c000000000093b04] .SyS_wait4+0xd0/0x108
[c0000001097cbdc0] [c00000000009138c] .SyS_waitpid+0x1c/0x30
[c0000001097cbe30] [c0000000000085b4] syscall_exit+0x0/0x40
BUG: spinlock lockup on CPU#4, fs_racer_file_c/7356, c0000000048c5780
Call Trace:
[c00000010979abf0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010979aca0] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c00000010979ad40] [c00000000064c44c] ._raw_spin_lock+0x74/0xa4
[c00000010979add0] [c00000000008b804] .scheduler_tick+0x54/0x3a8
[c00000010979ae70] [c00000000009e148] .update_process_times+0x5c/0x88
[c00000010979af10] [c0000000000bd2fc] .tick_sched_timer+0xa4/0xf0
[c00000010979afb0] [c0000000000b0d84] .__run_hrtimer+0xac/0x11c
[c00000010979b050] [c0000000000b1098] .hrtimer_interrupt+0x108/0x258
[c00000010979b140] [c000000000029230] .timer_interrupt+0xe4/0x138
[c00000010979b1d0] [c000000000003718] decrementer_common+0x118/0x180
--- Exception: 901 at .raw_local_irq_restore+0x6c/0x80
    LR = ._raw_spin_unlock_irq+0x3c/0x54
[c00000010979b4c0] [c00000010979b550] 0xc00000010979b550 (unreliable)
[c00000010979b550] [c00000000064cf78] ._raw_spin_unlock_irq+0x3c/0x54
[c00000010979b5e0] [c0000000000d703c] .acct_collect+0x1b0/0x1d4
[c00000010979b680] [c000000000094008] .do_exit+0x1f8/0x71c
[c00000010979b760] [c00000000002a568] .die+0x27c/0x2ac
[c00000010979b800] [c000000000005110] fp_unavailable_common+0x110/0x180
--- Exception: 800 at .schedule+0x620/0x770
    LR = .schedule+0x620/0x770
[c00000010979bc00] [c0000000000939b0] .do_wait+0x19c/0x220
[c00000010979bcc0] [c000000000093b04] .SyS_wait4+0xd0/0x108
[c00000010979bdc0] [c00000000009138c] .SyS_waitpid+0x1c/0x30
[c00000010979be30] [c0000000000085b4] syscall_exit+0x0/0x40
BUG: spinlock lockup on CPU#6, mkdir/8226, c000000001692670
Call Trace:
[c000000108a8b5d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c000000108a8b680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c000000108a8b720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c000000108a8b7c0] [c00000000007b504] .__wake_up+0x34/0x88
[c000000108a8b870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c000000108a8b8f0] [c000000000118538] .unlock_page+0x40/0x58
[c000000108a8b980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c000000108a8ba90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c000000108a8bb90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c000000108a8be30] [c000000000005628] handle_page_fault+0x20/0x74
BUG: spinlock lockup on CPU#12, ln/8223, c000000001692670
Call Trace:
[c0000000a28635d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c0000000a2863680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c0000000a2863720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c0000000a28637c0] [c00000000007b504] .__wake_up+0x34/0x88
[c0000000a2863870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c0000000a28638f0] [c000000000118538] .unlock_page+0x40/0x58
[c0000000a2863980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c0000000a2863a90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c0000000a2863b90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c0000000a2863e30] [c000000000005628] handle_page_fault+0x20/0x74
BUG: spinlock lockup on CPU#17, fs_racer_file_c/8232, c000000001692670
Call Trace:
[c00000010ee7f5d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010ee7f680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c00000010ee7f720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c00000010ee7f7c0] [c00000000007b504] .__wake_up+0x34/0x88
[c00000010ee7f870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c00000010ee7f8f0] [c000000000118538] .unlock_page+0x40/0x58
[c00000010ee7f980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c00000010ee7fa90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c00000010ee7fb90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c00000010ee7fe30] [c000000000005628] handle_page_fault+0x20/0x74
BUG: spinlock lockup on CPU#15, klogd/1511, c0000000040c5780
Call Trace:
[c000000107497300] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c0000001074973b0] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c000000107497450] [c00000000064c44c] ._raw_spin_lock+0x74/0xa4
[c0000001074974e0] [c00000000007ba68] .task_rq_lock+0x6c/0xd4
[c000000107497580] [c000000000087d74] .try_to_wake_up+0x50/0x454
[c000000107497640] [c0000000001838dc] .pollwake+0x9c/0xcc
[c000000107497720] [c0000000000797c0] .__wake_up_common+0x6c/0xe0
[c0000001074977d0] [c00000000007b494] .__wake_up_sync_key+0x68/0x9c
[c000000107497870] [c00000000059304c] .sock_def_readable+0x84/0xd8
[c0000001074978f0] [c00000000063996c] .unix_dgram_sendmsg+0x4e4/0x610
[c000000107497a30] [c00000000058e318] .sock_aio_write+0x170/0x1a8
[c000000107497b60] [c00000000016e4e4] .do_sync_write+0xac/0x10c
[c000000107497ce0] [c00000000016f2a4] .vfs_write+0xec/0x1dc
[c000000107497d80] [c00000000016f49c] .SyS_write+0x58/0xa0
[c000000107497e30] [c0000000000085b4] syscall_exit+0x0/0x40
BUG: spinlock lockup on CPU#14, true/8230, c0000000052c5780
Call Trace:
[c00000010b3d6c40] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010b3d6cf0] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c00000010b3d6d90] [c00000000064c44c] ._raw_spin_lock+0x74/0xa4
[c00000010b3d6e20] [c00000000007ba68] .task_rq_lock+0x6c/0xd4
[c00000010b3d6ec0] [c000000000087d74] .try_to_wake_up+0x50/0x454
[c00000010b3d6f80] [c0000000000ad1ec] .autoremove_wake_function+0x18/0x54
[c00000010b3d7000] [c0000000000797c0] .__wake_up_common+0x6c/0xe0
[c00000010b3d70b0] [c00000000007b524] .__wake_up+0x54/0x88
[c00000010b3d7160] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c00000010b3d71e0] [c000000000118538] .unlock_page+0x40/0x58
[c00000010b3d7270] [c00000000013421c] .__do_fault+0x5a8/0x628
[c00000010b3d7380] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c00000010b3d7480] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c00000010b3d7720] [c000000000005628] handle_page_fault+0x20/0x74
--- Exception: 301 at .__clear_user+0x14/0x7c
    LR = .padzero+0x74/0x128
[c00000010b3d7a10] [c0000000001c2354] .padzero+0x44/0x128 (unreliable)
[c00000010b3d7aa0] [c0000000001c3530] .load_elf_binary+0xca4/0x16a8
[c00000010b3d7be0] [c0000000001753b0] .search_binary_handler+0x11c/0x37c
[c00000010b3d7cc0] [c000000000176d0c] .do_execve+0x1bc/0x2e8
[c00000010b3d7d90] [c000000000012740] .sys_execve+0x70/0xac
[c00000010b3d7e30] [c0000000000085b4] syscall_exit+0x0/0x40
BUG: spinlock lockup on CPU#1, true/8225, c000000001692670
Call Trace:
[c00000010a18b5d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010a18b680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c00000010a18b720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c00000010a18b7c0] [c00000000007b504] .__wake_up+0x34/0x88
[c00000010a18b870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c00000010a18b8f0] [c000000000118538] .unlock_page+0x40/0x58
[c00000010a18b980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c00000010a18ba90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c00000010a18bb90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c00000010a18be30] [c000000000005628] handle_page_fault+0x20/0x74
BUG: spinlock lockup on CPU#3, true/8220, c000000001692670
Call Trace:
[c0000001085e75d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c0000001085e7680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c0000001085e7720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c0000001085e77c0] [c00000000007b504] .__wake_up+0x34/0x88
[c0000001085e7870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c0000001085e78f0] [c000000000118538] .unlock_page+0x40/0x58
[c0000001085e7980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c0000001085e7a90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c0000001085e7b90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c0000001085e7e30] [c000000000005628] handle_page_fault+0x20/0x74
BUG: spinlock lockup on CPU#2, mkdir/8219, c000000001692670
Call Trace:
[c00000010b3cf5d0] [c000000000011c30] .show_stack+0x6c/0x16c (unreliable)
[c00000010b3cf680] [c0000000003ad784] .do_raw_spin_lock+0x13c/0x184
[c00000010b3cf720] [c00000000064c3a0] ._raw_spin_lock_irqsave+0x84/0xbc
[c00000010b3cf7c0] [c00000000007b504] .__wake_up+0x34/0x88
[c00000010b3cf870] [c0000000000ad180] .__wake_up_bit+0x3c/0x50
[c00000010b3cf8f0] [c000000000118538] .unlock_page+0x40/0x58
[c00000010b3cf980] [c00000000013421c] .__do_fault+0x5a8/0x628
[c00000010b3cfa90] [c000000000136774] .handle_mm_fault+0x404/0x91c
[c00000010b3cfb90] [c00000000064e4a0] .do_page_fault+0x42c/0x6b4
[c00000010b3cfe30] [c000000000005628] handle_page_fault+0x20/0x74
-- 0:conmux-control -- time-stamp -- Jun/29/10 21:12:40 -- 

^ permalink raw reply

* Re: [PATCH v1]460EX on-chip SATA driver<resubmisison>
From: Wolfgang Denk @ 2010-06-30 11:58 UTC (permalink / raw)
  To: Rupjyoti Sarmah
  Cc: linux-ide, rsarmah, linux-kernel, linuxppc-dev, sr, jgarzik
In-Reply-To: <201006241327.o5ODRY6m032299@amcc.com>

Dear Rupjyoti Sarmah,

In message <201006241327.o5ODRY6m032299@amcc.com> you wrote:
> This patch enables the on-chip DWC SATA controller of the AppliedMicro processor 460EX.
> 
> Signed-off-by: Rupjyoti Sarmah <rsarmah@appliedmicro.com> 
> Signed-off-by: Mark Miesfeld <mmiesfeld@appliedmicro.com>
> Signed-off-by: Prodyut Hazarika <phazarika@appliedmicro.com>
> 
> ---
> This patch incorporates the changes advised in the mailing list. The device
> tree changes were submitted as a seperate patch. 

Which kernel is this patch supposed to be applied to?

Using current mainline (v2.6.35-rc3-262-g984bc96) the patch applies
without problems, but when I enable it in the kernel configuration I
get this:

drivers/ata/sata_dwc_460ex.c:43:1: warning: "DRV_NAME" redefined
In file included from drivers/ata/sata_dwc_460ex.c:38:
drivers/ata/libata.h:31:1: warning: this is the location of the previous definition
drivers/ata/sata_dwc_460ex.c:44:1: warning: "DRV_VERSION" redefined
drivers/ata/libata.h:32:1: warning: this is the location of the previous definition
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_scr_read':
drivers/ata/sata_dwc_460ex.c:777: error: 'struct ata_port' has no member named 'ioaddr'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_scr_write':
drivers/ata/sata_dwc_460ex.c:793: error: 'struct ata_port' has no member named 'ioaddr'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_error_intr':
drivers/ata/sata_dwc_460ex.c:844: error: 'struct ata_port_operations' has no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_isr':
drivers/ata/sata_dwc_460ex.c:953: error: 'struct ata_port_operations' has no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c:957: error: 'struct ata_port_operations' has no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c:991: error: implicit declaration of function 'ata_sff_hsm_move'
drivers/ata/sata_dwc_460ex.c:1030: error: 'struct ata_port_operations' has no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c: At top level:
drivers/ata/sata_dwc_460ex.c:1213: warning: 'struct ata_ioports' declared inside parameter list
drivers/ata/sata_dwc_460ex.c:1213: warning: its scope is only this definition or declaration, which is probably not what you want
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_setup_port':
drivers/ata/sata_dwc_460ex.c:1215: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1216: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1218: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1219: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1221: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1223: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1224: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1225: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1227: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1228: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1229: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1231: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c:1232: error: dereferencing pointer to incomplete type
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_port_start':
drivers/ata/sata_dwc_460ex.c:1273: error: 'struct ata_port' has no member named 'bmdma_prd'
drivers/ata/sata_dwc_460ex.c:1274: error: 'struct ata_port' has no member named 'bmdma_prd_dma'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_exec_command_by_tag':
drivers/ata/sata_dwc_460ex.c:1356: warning: passing argument 1 of 'ata_get_cmd_descript' makes integer from pointer without a cast
drivers/ata/sata_dwc_460ex.c:1369: error: implicit declaration of function 'ata_sff_exec_command'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_qc_issue':
drivers/ata/sata_dwc_460ex.c:1512: error: 'struct ata_port_operations' has no member named 'sff_tf_load'
drivers/ata/sata_dwc_460ex.c:1516: error: implicit declaration of function 'ata_sff_qc_issue'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_error_handler':
drivers/ata/sata_dwc_460ex.c:1545: error: implicit declaration of function 'ata_sff_error_handler'
drivers/ata/sata_dwc_460ex.c: At top level:
drivers/ata/sata_dwc_460ex.c:1564: error: 'ata_sff_port_ops' undeclared here (not in a function)
drivers/ata/sata_dwc_460ex.c:1577: error: unknown field 'bmdma_setup' specified in initializer
drivers/ata/sata_dwc_460ex.c:1577: warning: initialization from incompatible pointer type
drivers/ata/sata_dwc_460ex.c:1578: error: unknown field 'bmdma_start' specified in initializer
drivers/ata/sata_dwc_460ex.c:1578: warning: initialization from incompatible pointer type
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_probe':
drivers/ata/sata_dwc_460ex.c:1638: error: 'struct ata_port' has no member named 'ioaddr'
drivers/ata/sata_dwc_460ex.c:1639: error: 'struct ata_port' has no member named 'ioaddr'
drivers/ata/sata_dwc_460ex.c:1641: error: 'struct ata_port' has no member named 'ioaddr'
make[2]: *** [drivers/ata/sata_dwc_460ex.o] Error 1
make[1]: *** [drivers/ata] Error 2
make: *** [drivers] Error 2


Does this require any specific kernel version?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
A direct quote from the Boss: "We passed over a lot of good people to
get the ones we hired."

^ permalink raw reply

* RE: [PATCH v1]460EX on-chip SATA driver<resubmisison>
From: Rupjyoti Sarmah @ 2010-06-30 12:44 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: linux-ide, sr, jgarzik, linux-kernel, linuxppc-dev
In-Reply-To: <20100630115808.2D9241524EC@gemini.denx.de>

Hi Wolfgang,

I took the mainline kernel v2.6.35-rc3 and downloaded using the git
download link.
I created the patch on 6/24/2010 after doing a git pull.

With the kernel tree on 6/24/2010 the driver compiled. I also tested the
functionality on the SATA drive & it worked.

Regards,
Rup



-----Original Message-----
From: Wolfgang Denk [mailto:wd@denx.de]
Sent: Wednesday, June 30, 2010 5:28 PM
To: Rupjyoti Sarmah
Cc: linux-ide@vger.kernel.org; linux-kernel@vger.kernel.org;
jgarzik@pobox.com; sr@denx.de; rsarmah@apm.com; linuxppc-dev@ozlabs.org
Subject: Re: [PATCH v1]460EX on-chip SATA driver<resubmisison>

Dear Rupjyoti Sarmah,

In message <201006241327.o5ODRY6m032299@amcc.com> you wrote:
> This patch enables the on-chip DWC SATA controller of the AppliedMicro
processor 460EX.
>
> Signed-off-by: Rupjyoti Sarmah <rsarmah@appliedmicro.com>
> Signed-off-by: Mark Miesfeld <mmiesfeld@appliedmicro.com>
> Signed-off-by: Prodyut Hazarika <phazarika@appliedmicro.com>
>
> ---
> This patch incorporates the changes advised in the mailing list. The
device
> tree changes were submitted as a seperate patch.

Which kernel is this patch supposed to be applied to?

Using current mainline (v2.6.35-rc3-262-g984bc96) the patch applies
without problems, but when I enable it in the kernel configuration I
get this:

drivers/ata/sata_dwc_460ex.c:43:1: warning: "DRV_NAME" redefined
In file included from drivers/ata/sata_dwc_460ex.c:38:
drivers/ata/libata.h:31:1: warning: this is the location of the previous
definition
drivers/ata/sata_dwc_460ex.c:44:1: warning: "DRV_VERSION" redefined
drivers/ata/libata.h:32:1: warning: this is the location of the previous
definition
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_scr_read':
drivers/ata/sata_dwc_460ex.c:777: error: 'struct ata_port' has no member
named 'ioaddr'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_scr_write':
drivers/ata/sata_dwc_460ex.c:793: error: 'struct ata_port' has no member
named 'ioaddr'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_error_intr':
drivers/ata/sata_dwc_460ex.c:844: error: 'struct ata_port_operations' has
no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_isr':
drivers/ata/sata_dwc_460ex.c:953: error: 'struct ata_port_operations' has
no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c:957: error: 'struct ata_port_operations' has
no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c:991: error: implicit declaration of function
'ata_sff_hsm_move'
drivers/ata/sata_dwc_460ex.c:1030: error: 'struct ata_port_operations' has
no member named 'sff_check_status'
drivers/ata/sata_dwc_460ex.c: At top level:
drivers/ata/sata_dwc_460ex.c:1213: warning: 'struct ata_ioports' declared
inside parameter list
drivers/ata/sata_dwc_460ex.c:1213: warning: its scope is only this
definition or declaration, which is probably not what you want
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_setup_port':
drivers/ata/sata_dwc_460ex.c:1215: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1216: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1218: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1219: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1221: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1223: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1224: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1225: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1227: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1228: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1229: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1231: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c:1232: error: dereferencing pointer to
incomplete type
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_port_start':
drivers/ata/sata_dwc_460ex.c:1273: error: 'struct ata_port' has no member
named 'bmdma_prd'
drivers/ata/sata_dwc_460ex.c:1274: error: 'struct ata_port' has no member
named 'bmdma_prd_dma'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_exec_command_by_tag':
drivers/ata/sata_dwc_460ex.c:1356: warning: passing argument 1 of
'ata_get_cmd_descript' makes integer from pointer without a cast
drivers/ata/sata_dwc_460ex.c:1369: error: implicit declaration of function
'ata_sff_exec_command'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_qc_issue':
drivers/ata/sata_dwc_460ex.c:1512: error: 'struct ata_port_operations' has
no member named 'sff_tf_load'
drivers/ata/sata_dwc_460ex.c:1516: error: implicit declaration of function
'ata_sff_qc_issue'
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_error_handler':
drivers/ata/sata_dwc_460ex.c:1545: error: implicit declaration of function
'ata_sff_error_handler'
drivers/ata/sata_dwc_460ex.c: At top level:
drivers/ata/sata_dwc_460ex.c:1564: error: 'ata_sff_port_ops' undeclared
here (not in a function)
drivers/ata/sata_dwc_460ex.c:1577: error: unknown field 'bmdma_setup'
specified in initializer
drivers/ata/sata_dwc_460ex.c:1577: warning: initialization from
incompatible pointer type
drivers/ata/sata_dwc_460ex.c:1578: error: unknown field 'bmdma_start'
specified in initializer
drivers/ata/sata_dwc_460ex.c:1578: warning: initialization from
incompatible pointer type
drivers/ata/sata_dwc_460ex.c: In function 'sata_dwc_probe':
drivers/ata/sata_dwc_460ex.c:1638: error: 'struct ata_port' has no member
named 'ioaddr'
drivers/ata/sata_dwc_460ex.c:1639: error: 'struct ata_port' has no member
named 'ioaddr'
drivers/ata/sata_dwc_460ex.c:1641: error: 'struct ata_port' has no member
named 'ioaddr'
make[2]: *** [drivers/ata/sata_dwc_460ex.o] Error 1
make[1]: *** [drivers/ata] Error 2
make: *** [drivers] Error 2


Does this require any specific kernel version?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
A direct quote from the Boss: "We passed over a lot of good people to
get the ones we hired."

^ permalink raw reply

* [PATCH 2/2] KVM: PPC: Make use of hash based Shadow MMU
From: Alexander Graf @ 2010-06-30 13:18 UTC (permalink / raw)
  To: kvm-ppc; +Cc: linuxppc-dev, KVM list
In-Reply-To: <1277903926-12786-1-git-send-email-agraf@suse.de>

We just introduced generic functions to handle shadow pages on PPC.
This patch makes the respective backends make use of them, getting
rid of a lot of duplicate code along the way.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v2 -> v3:

  - use hlist
  - use global kmem cache
---
 arch/powerpc/include/asm/kvm_book3s.h |    9 +++
 arch/powerpc/include/asm/kvm_host.h   |   17 +++++-
 arch/powerpc/kvm/Makefile             |    2 +
 arch/powerpc/kvm/book3s.c             |   14 ++++-
 arch/powerpc/kvm/book3s_32_mmu_host.c |  104 +++-----------------------------
 arch/powerpc/kvm/book3s_64_mmu_host.c |   98 ++----------------------------
 6 files changed, 54 insertions(+), 190 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index 4e99559..8274a2d 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h
@@ -115,6 +115,15 @@ extern void kvmppc_mmu_book3s_32_init(struct kvm_vcpu *vcpu);
 extern int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte);
 extern int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr);
 extern void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu);
+
+extern void kvmppc_mmu_hpte_cache_map(struct kvm_vcpu *vcpu, struct hpte_cache *pte);
+extern struct hpte_cache *kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu);
+extern void kvmppc_mmu_hpte_destroy(struct kvm_vcpu *vcpu);
+extern int kvmppc_mmu_hpte_init(struct kvm_vcpu *vcpu);
+extern void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte);
+extern int kvmppc_mmu_hpte_sysinit(void);
+extern void kvmppc_mmu_hpte_sysexit(void);
+
 extern int kvmppc_ld(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr, bool data);
 extern int kvmppc_st(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr, bool data);
 extern void kvmppc_book3s_queue_irqprio(struct kvm_vcpu *vcpu, unsigned int vec);
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 0c9ad86..e004eaf 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -38,7 +38,13 @@
 #define KVM_NR_PAGE_SIZES	1
 #define KVM_PAGES_PER_HPAGE(x)	(1UL<<31)
 
-#define HPTEG_CACHE_NUM 1024
+#define HPTEG_CACHE_NUM			(1 << 15)
+#define HPTEG_HASH_BITS_PTE		13
+#define HPTEG_HASH_BITS_VPTE		13
+#define HPTEG_HASH_BITS_VPTE_LONG	5
+#define HPTEG_HASH_NUM_PTE		(1 << HPTEG_HASH_BITS_PTE)
+#define HPTEG_HASH_NUM_VPTE		(1 << HPTEG_HASH_BITS_VPTE)
+#define HPTEG_HASH_NUM_VPTE_LONG	(1 << HPTEG_HASH_BITS_VPTE_LONG)
 
 struct kvm;
 struct kvm_run;
@@ -151,6 +157,9 @@ struct kvmppc_mmu {
 };
 
 struct hpte_cache {
+	struct hlist_node list_pte;
+	struct hlist_node list_vpte;
+	struct hlist_node list_vpte_long;
 	u64 host_va;
 	u64 pfn;
 	ulong slot;
@@ -282,8 +291,10 @@ struct kvm_vcpu_arch {
 	unsigned long pending_exceptions;
 
 #ifdef CONFIG_PPC_BOOK3S
-	struct hpte_cache hpte_cache[HPTEG_CACHE_NUM];
-	int hpte_cache_offset;
+	struct hlist_head hpte_hash_pte[HPTEG_HASH_NUM_PTE];
+	struct hlist_head hpte_hash_vpte[HPTEG_HASH_NUM_VPTE];
+	struct hlist_head hpte_hash_vpte_long[HPTEG_HASH_NUM_VPTE_LONG];
+	int hpte_cache_count;
 #endif
 };
 
diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
index ff43606..d45c818 100644
--- a/arch/powerpc/kvm/Makefile
+++ b/arch/powerpc/kvm/Makefile
@@ -45,6 +45,7 @@ kvm-book3s_64-objs := \
 	book3s.o \
 	book3s_emulate.o \
 	book3s_interrupts.o \
+	book3s_mmu_hpte.o \
 	book3s_64_mmu_host.o \
 	book3s_64_mmu.o \
 	book3s_32_mmu.o
@@ -57,6 +58,7 @@ kvm-book3s_32-objs := \
 	book3s.o \
 	book3s_emulate.o \
 	book3s_interrupts.o \
+	book3s_mmu_hpte.o \
 	book3s_32_mmu_host.o \
 	book3s_32_mmu.o
 kvm-objs-$(CONFIG_KVM_BOOK3S_32) := $(kvm-book3s_32-objs)
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 884d4a5..30c0bd5 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -1389,12 +1389,22 @@ int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
 
 static int kvmppc_book3s_init(void)
 {
-	return kvm_init(NULL, sizeof(struct kvmppc_vcpu_book3s), 0,
-			THIS_MODULE);
+	int r;
+
+	r = kvm_init(NULL, sizeof(struct kvmppc_vcpu_book3s), 0,
+		     THIS_MODULE);
+
+	if (r)
+		return r;
+
+	r = kvmppc_mmu_hpte_sysinit();
+
+	return r;
 }
 
 static void kvmppc_book3s_exit(void)
 {
+	kvmppc_mmu_hpte_sysexit();
 	kvm_exit();
 }
 
diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c b/arch/powerpc/kvm/book3s_32_mmu_host.c
index 904f5ac..0b51ef8 100644
--- a/arch/powerpc/kvm/book3s_32_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
@@ -58,105 +58,19 @@
 static ulong htab;
 static u32 htabmask;
 
-static void invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
+void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
 {
 	volatile u32 *pteg;
 
-	dprintk_mmu("KVM: Flushing SPTE: 0x%llx (0x%llx) -> 0x%llx\n",
-		    pte->pte.eaddr, pte->pte.vpage, pte->host_va);
-
+	/* Remove from host HTAB */
 	pteg = (u32*)pte->slot;
-
 	pteg[0] = 0;
+
+	/* And make sure it's gone from the TLB too */
 	asm volatile ("sync");
 	asm volatile ("tlbie %0" : : "r" (pte->pte.eaddr) : "memory");
 	asm volatile ("sync");
 	asm volatile ("tlbsync");
-
-	pte->host_va = 0;
-
-	if (pte->pte.may_write)
-		kvm_release_pfn_dirty(pte->pfn);
-	else
-		kvm_release_pfn_clean(pte->pfn);
-}
-
-void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong guest_ea, ulong ea_mask)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow PTEs: 0x%x & 0x%x\n",
-		    vcpu->arch.hpte_cache_offset, guest_ea, ea_mask);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	guest_ea &= ea_mask;
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.eaddr & ea_mask) == guest_ea) {
-			invalidate_pte(vcpu, pte);
-		}
-	}
-
-	/* Doing a complete flush -> start from scratch */
-	if (!ea_mask)
-		vcpu->arch.hpte_cache_offset = 0;
-}
-
-void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow vPTEs: 0x%llx & 0x%llx\n",
-		    vcpu->arch.hpte_cache_offset, guest_vp, vp_mask);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	guest_vp &= vp_mask;
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.vpage & vp_mask) == guest_vp) {
-			invalidate_pte(vcpu, pte);
-		}
-	}
-}
-
-void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, ulong pa_start, ulong pa_end)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow pPTEs: 0x%llx & 0x%llx\n",
-		    vcpu->arch.hpte_cache_offset, pa_start, pa_end);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.raddr >= pa_start) &&
-		    (pte->pte.raddr < pa_end)) {
-			invalidate_pte(vcpu, pte);
-		}
-	}
-}
-
-static int kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu)
-{
-	if (vcpu->arch.hpte_cache_offset == HPTEG_CACHE_NUM)
-		kvmppc_mmu_pte_flush(vcpu, 0, 0);
-
-	return vcpu->arch.hpte_cache_offset++;
 }
 
 /* We keep 512 gvsid->hvsid entries, mapping the guest ones to the array using
@@ -230,7 +144,6 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
 	register int rr = 0;
 	bool primary = false;
 	bool evict = false;
-	int hpte_id;
 	struct hpte_cache *pte;
 
 	/* Get host physical address for gpa */
@@ -315,8 +228,7 @@ next_pteg:
 
 	/* Now tell our Shadow PTE code about the new page */
 
-	hpte_id = kvmppc_mmu_hpte_cache_next(vcpu);
-	pte = &vcpu->arch.hpte_cache[hpte_id];
+	pte = kvmppc_mmu_hpte_cache_next(vcpu);
 
 	dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%llx (0x%llx) -> %lx\n",
 		    orig_pte->may_write ? 'w' : '-',
@@ -329,6 +241,8 @@ next_pteg:
 	pte->pte = *orig_pte;
 	pte->pfn = hpaddr >> PAGE_SHIFT;
 
+	kvmppc_mmu_hpte_cache_map(vcpu, pte);
+
 	return 0;
 }
 
@@ -413,7 +327,7 @@ void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu)
 
 void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu)
 {
-	kvmppc_mmu_pte_flush(vcpu, 0, 0);
+	kvmppc_mmu_hpte_destroy(vcpu);
 	preempt_disable();
 	__destroy_context(to_book3s(vcpu)->context_id);
 	preempt_enable();
@@ -453,5 +367,7 @@ int kvmppc_mmu_init(struct kvm_vcpu *vcpu)
 	htabmask = ((sdr1 & 0x1FF) << 16) | 0xFFC0;
 	htab = (ulong)__va(sdr1 & 0xffff0000);
 
+	kvmppc_mmu_hpte_init(vcpu);
+
 	return 0;
 }
diff --git a/arch/powerpc/kvm/book3s_64_mmu_host.c b/arch/powerpc/kvm/book3s_64_mmu_host.c
index 4ccdde1..384179a 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_host.c
@@ -47,98 +47,11 @@
 #define dprintk_slb(a, ...) do { } while(0)
 #endif
 
-static void invalidate_pte(struct hpte_cache *pte)
+void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
 {
-	dprintk_mmu("KVM: Flushing SPT: 0x%lx (0x%llx) -> 0x%llx\n",
-		    pte->pte.eaddr, pte->pte.vpage, pte->host_va);
-
 	ppc_md.hpte_invalidate(pte->slot, pte->host_va,
 			       MMU_PAGE_4K, MMU_SEGSIZE_256M,
 			       false);
-	pte->host_va = 0;
-
-	if (pte->pte.may_write)
-		kvm_release_pfn_dirty(pte->pfn);
-	else
-		kvm_release_pfn_clean(pte->pfn);
-}
-
-void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong guest_ea, ulong ea_mask)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow PTEs: 0x%lx & 0x%lx\n",
-		    vcpu->arch.hpte_cache_offset, guest_ea, ea_mask);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	guest_ea &= ea_mask;
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.eaddr & ea_mask) == guest_ea) {
-			invalidate_pte(pte);
-		}
-	}
-
-	/* Doing a complete flush -> start from scratch */
-	if (!ea_mask)
-		vcpu->arch.hpte_cache_offset = 0;
-}
-
-void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow vPTEs: 0x%llx & 0x%llx\n",
-		    vcpu->arch.hpte_cache_offset, guest_vp, vp_mask);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	guest_vp &= vp_mask;
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.vpage & vp_mask) == guest_vp) {
-			invalidate_pte(pte);
-		}
-	}
-}
-
-void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, ulong pa_start, ulong pa_end)
-{
-	int i;
-
-	dprintk_mmu("KVM: Flushing %d Shadow pPTEs: 0x%lx & 0x%lx\n",
-		    vcpu->arch.hpte_cache_offset, pa_start, pa_end);
-	BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
-
-	for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
-		struct hpte_cache *pte;
-
-		pte = &vcpu->arch.hpte_cache[i];
-		if (!pte->host_va)
-			continue;
-
-		if ((pte->pte.raddr >= pa_start) &&
-		    (pte->pte.raddr < pa_end)) {
-			invalidate_pte(pte);
-		}
-	}
-}
-
-static int kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu)
-{
-	if (vcpu->arch.hpte_cache_offset == HPTEG_CACHE_NUM)
-		kvmppc_mmu_pte_flush(vcpu, 0, 0);
-
-	return vcpu->arch.hpte_cache_offset++;
 }
 
 /* We keep 512 gvsid->hvsid entries, mapping the guest ones to the array using
@@ -246,8 +159,7 @@ map_again:
 		attempt++;
 		goto map_again;
 	} else {
-		int hpte_id = kvmppc_mmu_hpte_cache_next(vcpu);
-		struct hpte_cache *pte = &vcpu->arch.hpte_cache[hpte_id];
+		struct hpte_cache *pte = kvmppc_mmu_hpte_cache_next(vcpu);
 
 		dprintk_mmu("KVM: %c%c Map 0x%lx: [%lx] 0x%lx (0x%llx) -> %lx\n",
 			    ((rflags & HPTE_R_PP) == 3) ? '-' : 'w',
@@ -265,6 +177,8 @@ map_again:
 		pte->host_va = va;
 		pte->pte = *orig_pte;
 		pte->pfn = hpaddr >> PAGE_SHIFT;
+
+		kvmppc_mmu_hpte_cache_map(vcpu, pte);
 	}
 
 	return 0;
@@ -391,7 +305,7 @@ void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu)
 
 void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu)
 {
-	kvmppc_mmu_pte_flush(vcpu, 0, 0);
+	kvmppc_mmu_hpte_destroy(vcpu);
 	__destroy_context(to_book3s(vcpu)->context_id);
 }
 
@@ -409,5 +323,7 @@ int kvmppc_mmu_init(struct kvm_vcpu *vcpu)
 	vcpu3s->vsid_first = vcpu3s->context_id << USER_ESID_BITS;
 	vcpu3s->vsid_next = vcpu3s->vsid_first;
 
+	kvmppc_mmu_hpte_init(vcpu);
+
 	return 0;
 }
-- 
1.6.0.2

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox