All of lore.kernel.org
 help / color / mirror / Atom feed
* [Adeos-main] When to do __adeos_takeover() on ARM
       [not found] <20050205014301.6569.13097.Mailman@domain.hid>
@ 2005-02-24  3:03 ` Jason Huang
  2005-02-24  8:10   ` Philippe Gerum
  0 siblings, 1 reply; 5+ messages in thread
From: Jason Huang @ 2005-02-24  3:03 UTC (permalink / raw)
  To: adeos-main

Dear list members,

If __adeos_takeover is called in init(), the timer interrupt kicks in way before
adp->irqs[] have been initialized and hence adeos_switch_domain is not called
and the interrupt is not handled.

Has anybody seen the problem? How/where do I place __adeos_takeover?

Thanks in advance.

Jason Huang
Wescon Technology
408-727-8818 x108 

> -----Original Message-----
> From: adeos-main-admin@domain.hid [mailto:adeos-main-admin@domain.hid] On Behalf Of
> adeos-main-request@domain.hid
> Sent: Friday, February 04, 2005 5:43 PM
> To: Jason Huang
> Subject: Welcome to the "Adeos-main" mailing list
> 
> Welcome to the Adeos-main@domain.hid mailing list!
> 
> To post to this list, send your email to:
> 
>   adeos-main@gna.org
> 
> General information about the mailing list is at:
> 
>   https://mail.gna.org/listinfo/adeos-main
> 
> If you ever want to unsubscribe or change your options (eg, switch to
> or from digest mode, change your password, etc.), visit your
> subscription page at:
> 
>   https://mail.gna.org/options/adeos-main/jason.huang%40wescongroup.com
> 
> 
> You can also make such adjustments via email by sending a message to:
> 
>   Adeos-main-request@domain.hid
> 
> with the word `help' in the subject or body (don't include the
> quotes), and you will get back a message with instructions.
> 
> You must know your password to change your options (including changing
> the password, itself) or to unsubscribe.  It is:
> 
>   welcome
> 
> If you forget your password, don't worry, you will receive a monthly
> reminder telling you what all your gna.org mailing list passwords are,
> and how to unsubscribe or change your options.  There is also a button
> on your options page that will email your current password to you.
> 
> You may also have your password mailed to you automatically from the
> Web page noted above.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Adeos-main] When to do __adeos_takeover() on ARM
  2005-02-24  3:03 ` [Adeos-main] When to do __adeos_takeover() on ARM Jason Huang
@ 2005-02-24  8:10   ` Philippe Gerum
  2005-02-26  2:18     ` Jason Huang
  2005-03-04 21:37     ` [Adeos-main] 'Badness in local_bh_enable at kernel/softirq.c:136' on 2.6.8.1 ARM Jason Huang
  0 siblings, 2 replies; 5+ messages in thread
From: Philippe Gerum @ 2005-02-24  8:10 UTC (permalink / raw)
  To: Jason Huang; +Cc: adeos-main

Jason Huang wrote:
> Dear list members,
> 
> If __adeos_takeover is called in init(), the timer interrupt kicks in way before
> adp->irqs[] have been initialized and hence adeos_switch_domain is not called
> and the interrupt is not handled.
>

If the takeover has not taken place, then the standard IRQ vectors 
should be in place after the interrupt layer has been initialized, 
therefore further interrupts should be handled by the regular Linux 
handlers as they would if Adeos was absent. Additionally, 
__adeos_switch_domain() is only called when more than a single domain 
exists, which sounds unlikely during the boot phase.

> Has anybody seen the problem? How/where do I place __adeos_takeover?

Which architecture are you working on?

> 
> Thanks in advance.
> 
> Jason Huang
> Wescon Technology
> 408-727-8818 x108 
> 
> 
>>-----Original Message-----
>>From: adeos-main-admin@domain.hid [mailto:adeos-main-admin@domain.hid] On Behalf Of
>>adeos-main-request@domain.hid
>>Sent: Friday, February 04, 2005 5:43 PM
>>To: Jason Huang
>>Subject: Welcome to the "Adeos-main" mailing list
>>
>>Welcome to the Adeos-main@domain.hid mailing list!
>>
>>To post to this list, send your email to:
>>
>>  adeos-main@gna.org
>>
>>General information about the mailing list is at:
>>
>>  https://mail.gna.org/listinfo/adeos-main
>>
>>If you ever want to unsubscribe or change your options (eg, switch to
>>or from digest mode, change your password, etc.), visit your
>>subscription page at:
>>
>>  https://mail.gna.org/options/adeos-main/jason.huang%40wescongroup.com
>>
>>
>>You can also make such adjustments via email by sending a message to:
>>
>>  Adeos-main-request@domain.hid
>>
>>with the word `help' in the subject or body (don't include the
>>quotes), and you will get back a message with instructions.
>>
>>You must know your password to change your options (including changing
>>the password, itself) or to unsubscribe.  It is:
>>
>>  welcome
>>
>>If you forget your password, don't worry, you will receive a monthly
>>reminder telling you what all your gna.org mailing list passwords are,
>>and how to unsubscribe or change your options.  There is also a button
>>on your options page that will email your current password to you.
>>
>>You may also have your password mailed to you automatically from the
>>Web page noted above.
> 
> 
> 
> _______________________________________________
> Adeos-main mailing list
> Adeos-main@domain.hid
> https://mail.gna.org/listinfo/adeos-main


-- 

Philippe.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [Adeos-main] When to do __adeos_takeover() on ARM
  2005-02-24  8:10   ` Philippe Gerum
@ 2005-02-26  2:18     ` Jason Huang
  2005-02-26  9:25       ` Philippe Gerum
  2005-03-04 21:37     ` [Adeos-main] 'Badness in local_bh_enable at kernel/softirq.c:136' on 2.6.8.1 ARM Jason Huang
  1 sibling, 1 reply; 5+ messages in thread
From: Jason Huang @ 2005-02-26  2:18 UTC (permalink / raw)
  To: adeos-main

I am trying to port 2.6.8.1 onto ARM9TDMI, TI's Innovator board.

I found the reason that it crashes when compiling into kernel is that: when
compiled in kernel, adp_pipelined is not checked; __adeos_handle_irq calls
handlers when adeos has not yet been completely initialized.

I forced adp_pipelined is checked even when adeos is compiled into kernel. Now
that the crashing is gone, I encountered another problem: still in
__adeos_handle_irq, somewhere down in __adeos_sync_stage, just before invoking
irq handler,
	if (adp == adp_root)
		adeos_hw_sti();
This, adeos_hw_sti, causes a new interrupt comes in; and this repeats
(__irq_svc->__adeos_handle_irq->__adeos_sync_stage->__irq_svc,...).

I got stuck here for two days.

Best regards.

Jason Huang
Wescon Technology
408-727-8818 x108 


> -----Original Message-----
> From: Philippe Gerum [mailto:rpm@xenomai.org]
> Sent: Thursday, February 24, 2005 12:10 AM
> To: Jason Huang
> Cc: adeos-main@gna.org
> Subject: Re: [Adeos-main] When to do __adeos_takeover() on ARM
> 
> Jason Huang wrote:
> > Dear list members,
> >
> > If __adeos_takeover is called in init(), the timer interrupt kicks in way
> before
> > adp->irqs[] have been initialized and hence adeos_switch_domain is not
> called
> > and the interrupt is not handled.
> >
> 
> If the takeover has not taken place, then the standard IRQ vectors
> should be in place after the interrupt layer has been initialized,
> therefore further interrupts should be handled by the regular Linux
> handlers as they would if Adeos was absent. Additionally,
> __adeos_switch_domain() is only called when more than a single domain
> exists, which sounds unlikely during the boot phase.
> 
> > Has anybody seen the problem? How/where do I place __adeos_takeover?
> 
> Which architecture are you working on?
> 
> >
> > Thanks in advance.
> >
> > Jason Huang
> > Wescon Technology
> > 408-727-8818 x108
> >
> >



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Adeos-main] When to do __adeos_takeover() on ARM
  2005-02-26  2:18     ` Jason Huang
@ 2005-02-26  9:25       ` Philippe Gerum
  0 siblings, 0 replies; 5+ messages in thread
From: Philippe Gerum @ 2005-02-26  9:25 UTC (permalink / raw)
  To: Jason Huang; +Cc: adeos-main

Jason Huang wrote:
> I am trying to port 2.6.8.1 onto ARM9TDMI, TI's Innovator board.
> 
> I found the reason that it crashes when compiling into kernel is that: when
> compiled in kernel, adp_pipelined is not checked; __adeos_handle_irq calls
> handlers when adeos has not yet been completely initialized.
> 

Which is your Adeos patch of reference for porting to 2.6?

> I forced adp_pipelined is checked even when adeos is compiled into kernel. Now
> that the crashing is gone, I encountered another problem: still in
> __adeos_handle_irq, somewhere down in __adeos_sync_stage, just before invoking
> irq handler,
> 	if (adp == adp_root)
> 		adeos_hw_sti();
> This, adeos_hw_sti, causes a new interrupt comes in; and this repeats
> (__irq_svc->__adeos_handle_irq->__adeos_sync_stage->__irq_svc,...).
> 

Removing it is not the right way to fix this; you need to re-enable hw 
IRQs before calling root IRQ handlers since the latter might perform 
lengthy operations like, e.g. PIO. They need to be preemptable by higher 
domain handers, or the latency will skyrocket. A safer solution is to 
make sure that __adeos_sync_stage() is not called from 
__adeos_walk_pipeline() when returning from a domain switch if some 
inner __adeos_sync_stage() from the current domain has been preempted. 
But doing so won't still allow driving high-rate interrupts on too slow 
of a machine though.

> I got stuck here for two days.
> 

Still better than /me being stuck on Adeos for three years though.

> Best regards.
> 
> Jason Huang
> Wescon Technology
> 408-727-8818 x108 
> 
> 
> 
>>-----Original Message-----
>>From: Philippe Gerum [mailto:rpm@xenomai.org]
>>Sent: Thursday, February 24, 2005 12:10 AM
>>To: Jason Huang
>>Cc: adeos-main@gna.org
>>Subject: Re: [Adeos-main] When to do __adeos_takeover() on ARM
>>
>>Jason Huang wrote:
>>
>>>Dear list members,
>>>
>>>If __adeos_takeover is called in init(), the timer interrupt kicks in way
>>
>>before
>>
>>>adp->irqs[] have been initialized and hence adeos_switch_domain is not
>>
>>called
>>
>>>and the interrupt is not handled.
>>>
>>
>>If the takeover has not taken place, then the standard IRQ vectors
>>should be in place after the interrupt layer has been initialized,
>>therefore further interrupts should be handled by the regular Linux
>>handlers as they would if Adeos was absent. Additionally,
>>__adeos_switch_domain() is only called when more than a single domain
>>exists, which sounds unlikely during the boot phase.
>>
>>
>>>Has anybody seen the problem? How/where do I place __adeos_takeover?
>>
>>Which architecture are you working on?
>>
>>
>>>Thanks in advance.
>>>
>>>Jason Huang
>>>Wescon Technology
>>>408-727-8818 x108
>>>
>>>
> 
> 
> 
> _______________________________________________
> Adeos-main mailing list
> Adeos-main@domain.hid
> https://mail.gna.org/listinfo/adeos-main


-- 

Philippe.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Adeos-main] 'Badness in local_bh_enable at kernel/softirq.c:136' on 2.6.8.1 ARM
  2005-02-24  8:10   ` Philippe Gerum
  2005-02-26  2:18     ` Jason Huang
@ 2005-03-04 21:37     ` Jason Huang
  1 sibling, 0 replies; 5+ messages in thread
From: Jason Huang @ 2005-03-04 21:37 UTC (permalink / raw)
  To: adeos-main

Dear list members,

After correcting a lot of my mistakes (in porting ADEOS ARM 2.4 to ARM9
2.6.8.1), I can boot up the Linux. However, I noticed a WARN_ON(irqs_disabled())
in softirq.c. Apparently, local IRQ was disabled unintentionally. This only
occurs once during initial NFS bootup.

Has anyone seen similar problems? What was the cause?

Thanks in advance.

Jason



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-03-04 21:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20050205014301.6569.13097.Mailman@domain.hid>
2005-02-24  3:03 ` [Adeos-main] When to do __adeos_takeover() on ARM Jason Huang
2005-02-24  8:10   ` Philippe Gerum
2005-02-26  2:18     ` Jason Huang
2005-02-26  9:25       ` Philippe Gerum
2005-03-04 21:37     ` [Adeos-main] 'Badness in local_bh_enable at kernel/softirq.c:136' on 2.6.8.1 ARM Jason Huang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.