[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Linux hang in restore_context (PetaLinuxv0.30-rc1, kernel 2.6.20-uc0)
Hi Falk,
Here's the change that's in our internal tree - there was a slight
problem with the original patch from Kenneth:
Index: software/linux-2.6.x-petalogix/arch/microblaze/kernel/entry.S
===================================================================
--- software/linux-2.6.x-petalogix/arch/microblaze/kernel/entry.S
(revision 3290)
+++ software/linux-2.6.x-petalogix/arch/microblaze/kernel/entry.S
(revision 3389)
@@ -122,7 +122,7 @@
ret_from_intr:
- lwi r11, r1, PT_MODE
- bneid r11, 3f
-
+ /* Returning to kernel mode? Skip the sigpend and sched checks */
+ lwi r20, r1, PT_MODE
+ bneid r20, no_intr_resched
lwi r6, r31, TS_THREAD_INFO /* get thread info */
@@ -135,5 +135,5 @@
nop
1: andi r11, r19, _TIF_SIGPENDING
- beqid r11, no_intr_reshed
+ beqid r11, no_intr_resched
addk r5, r1, r0
addk r7, r0, r0
@@ -141,11 +141,12 @@
addk r6, r0, r0
-no_intr_reshed:
- /* save mode indicator */
- lwi r11, r1, PT_MODE
-3:
- swi r11, r0, PER_CPU(KM)
-
- /* save r31 */
+no_intr_resched:
+ /* Disable interrupts, we are now committed to the state restore */
+ disable_irq
+
+ /* Save kernel mode indicator */
+ swi r20, r0, PER_CPU(KM)
+
+ /* save r31 ("current" ptr)*/
swi r31, r0, PER_CPU(CURRENT_SAVE)
restore_context:
Brettschneider Falk wrote:
> Hi,
>
> John Williams wrote:
>
>>A couple of things - first of all, make sure you try the MicroBlaze
>>"tactical" patches from Xilinx
>
> Hmm...I still use CPU version 4.00.b. So I wonder if the patch also helps for that version.
>
>
>>Secondly, there was a patch posted late 2007/early 2008 that
>>also fixes
>>an issue that was found in the high IRQ load scenario.
>
> Do you mean this?:
> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/archive/2007/11/msg00048.html
> It's a good hint. I thought it's already in PetaLinux-0.3-rc1 but obviously it isn't. Trying that patch...
>
> Cheers,
> Falk
>
> ___________________________
> 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/
>
___________________________
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/