Thread (18 messages) flat view 18 messages, 4 authors, 2013-03-11

Re: Linux kernel 3.x problems on PowerMac G5

From: Phileas Fogg <hidden>
Date: 2013-03-10 10:20:57

On 03/10/2013 01:45 AM, Benjamin Herrenschmidt wrote:
On Sun, 2013-03-10 at 01:26 +0100, Phileas Fogg wrote:
quoted
i managed to find the bad commit after a couple of days bisecting.
Thanks !
quoted
----------------------------
44ae3ab3358e962039c36ad4ae461ae9fb29596c is the first bad commit
commit 44ae3ab3358e962039c36ad4ae461ae9fb29596c
Author: Matt Evans [off-list ref]
Date:   Wed Apr 6 19:48:50 2011 +0000

      powerpc: Free up some CPU feature bits by moving out MMU-related
features

      Some of the 64bit PPC CPU features are MMU-related, so this patch moves
      them to MMU_FTR_ bits.  All cpu_has_feature()-style tests are moved to
      mmu_has_feature(), and seven feature bits are freed as a result.

      Signed-off-by: Matt Evans [off-list ref]
      Signed-off-by: Benjamin Herrenschmidt [off-list ref]
--------------------------------
Have you verified that if you checkout git at the above commit point, it
fails and if you then just revert that commit on top, it works again ?

The above should have been mostly a NOP change but I'll have a closer
look in case a typo of some kind actually broke something.
quoted
Actually, there are 2 problems i found.
The first problem occurs when i enable IDE CDROM driver on my machine.
The following commit causes hangs on my machine at boot:
Ok. You may want to switch to the new libata instead of the old IDE
driver too

(CONFIG_IDE off, CONFIG_ATA on, CONFIG_PATA_MACIO on and from there it
will use the SCSI CDROM driver).
quoted
----------------------
commit 5b03a1b140e13a28ff6be1526892a9dc538ddef6
Author: Tejun Heo [off-list ref]
Date:   Wed Mar 9 19:54:27 2011 +0100

      ide: Convert to bdops->check_events()

      Convert ->media_changed() to the new ->check_events() method.  The
      conversion is mostly mechanical.  The only notable change is that
      cdrom now doesn't generate any event if @slot_nr isn't CDSL_CURRENT.
      It used to return -EINVAL which would be treated as media changed.  As
      media changer isn't supported anyway, this doesn't make any
      difference.

      This makes ide emit the standard disk events and allows kernel event
      polling.  Currently, only MEDIA_CHANGE event is implemented.  Adding
      support for EJECT_REQUEST shouldn't be difficult; however, given that
      ide driver is already deprecated, it probably is best to leave it
      alone.

      Signed-off-by: Tejun Heo [off-list ref]
----------------------------




If i disable IDE CDROM driver then the Linux kernel boots again
and then it hits the commit 44ae3ab3358e962039c36ad4ae461ae9fb29596c
and hangs again :)

The commit eca590f402332ab873d13f2d8d00fa0b91cfff36 which is before
the commit 44ae3ab3358e962039c36ad4ae461ae9fb29596c works fine,
i tested it myself to be on the safe side.
Ok thanks. I'll dig a bit if I get a chance next week.

Cheers,
Ben.
quoted

Regards

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

I'm trying to debug the problem and printed CPU and MMU features
before and after this bad commit. And found i think i found the problem.
At least i got very strange results.

The following code i did add to arch/powerpc/kernel/setup_64.c:setup_system
------------------------------------------------------------
printk("cpu_features %lx\n", cur_cpu_spec->cpu_features);
printk("mmu_features %lx\n", cur_cpu_spec->mmu_features);
------------------------------------------------------------


CPU features before 44ae3ab3358e962039c36ad4ae461ae9fb29596c commit:

cpu_features 0x24000c718100448


CPU and MMU features after 44ae3ab3358e962039c36ad4ae461ae9fb29596c commit:

cpu_features 0x18100448
mmu_features 0x00000001

MMU features in 2nd case have only bit MMU_FTR_HPTE_TABLE set.
Where are the bits MMU_FTR_SLB, MMU_FTR_16M_PAGE and MMU_FTR_TLBIEL 
which introduced in commit 44ae3ab3358e962039c36ad4ae461ae9fb29596c ?
They should be set if i see it right in arch/powerpc/include/asm/mmu.h.

#define MMU_FTR_PPCAS_ARCH_V2 	(MMU_FTR_SLB | MMU_FTR_TLBIEL | \
				 MMU_FTR_16M_PAGE)
/* MMU feature bit sets for various CPUs */
#define MMU_FTRS_DEFAULT_HPTE_ARCH_V2	\
	MMU_FTR_HPTE_TABLE | MMU_FTR_PPCAS_ARCH_V2
#define MMU_FTRS_POWER4		MMU_FTRS_DEFAULT_HPTE_ARCH_V2
#define MMU_FTRS_PPC970		MMU_FTRS_POWER4


Hope it helps to fix the problem.

regards
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help