Linux kernel 3.x problems on PowerMac G5

Phileas Fogg phileas-fogg at
Sun Mar 10 21:19:57 EST 2013

On 03/10/2013 01:45 AM, Benjamin Herrenschmidt wrote:
> On Sun, 2013-03-10 at 01:26 +0100, Phileas Fogg wrote:
>> i managed to find the bad commit after a couple of days bisecting.
> Thanks !
>> ----------------------------
>> 44ae3ab3358e962039c36ad4ae461ae9fb29596c is the first bad commit
>> commit 44ae3ab3358e962039c36ad4ae461ae9fb29596c
>> Author: Matt Evans <matt at>
>> 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 <matt at>
>>       Signed-off-by: Benjamin Herrenschmidt <benh at>
>> --------------------------------
> 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.
>> 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).
>> ----------------------
>> commit 5b03a1b140e13a28ff6be1526892a9dc538ddef6
>> Author: Tejun Heo <tj at>
>> 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 <tj at>
>> ----------------------------
>> 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.
>> Regards
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at

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.

/* MMU feature bit sets for various CPUs */

Hope it helps to fix the problem.


More information about the Linuxppc-dev mailing list