[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] bad page fault kernel panics



Hi Michal,

On Tue, 24 Feb 2009 10:38:40 +0100, Michal Simek wrote
> Hi Gregori,
> 
> > Hi,
> > 
> > I'm using the PetaLogix subversion snapshot with MMU support enabled on
> > the Spartan-3A DSP 1800 Board with MicroBlaze 7.10.d and I was
> > accidentally running into bad page fault panics over and over again - 
> > sometimes during boot, sometimes later. In the meantime I found a way
> > to force this panic by running
> > 
> >   # while [ -d / ] ; do ls ; done
> > 
> > which will end in said bad page fault panic sooner or later (but usually
> > within the first minute being executed)
> 
> I haven't test it your commands but I think that I know where the 
> problem is. Please go to arch/microblaze/kernel/entry.S -> lines 743-
> 747 should be
> 
> 	swi	r11, r0, TOPHYS(PER_CPU(KM));	/* Now we're in kernel-mode. */
> 	lwi	r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE));	/* load current - get 
> the saved current */
> 2: 	swi	r0, r1, PTO+PT_SYSCALL; /* Save away the syscall number.  */
> 
> Please change it to this form (just move 2: label one line before)
> 	swi	r11, r0, TOPHYS(PER_CPU(KM));	/* Now we're in kernel-mode. */
> 2:
> 	lwi	r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE));	/* load current - get 
> the saved current */ 	swi	r0, r1, PTO+PT_SYSCALL; /* Save away the 
> syscall number.  */
> 
> Could you please test it and send me your results?

Thank you, seems like that fixed the problem! I ran the mentioned ls
loop couple of times for several minutes without getting a panic at
all. As I said, the system usually died within the first minute, so
this looks pretty satisfying to me ;)

Thanks again,
Sven

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/