All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bob Feretich <bob.feretich@domain.hid>
To: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Adeos patch interference with Angstrom 2.6.29-r46
Date: Tue, 06 Apr 2010 13:46:14 -0700	[thread overview]
Message-ID: <4BBB9D96.7060808@domain.hid> (raw)
In-Reply-To: <4BBA61AD.5020100@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 5832 bytes --]

I am using the TI OMAP3530 on a BeagleBoard. I need better real time 
support than vanilla Angstrom offers, so I am attempting to integrate 
Xenomai into it. The 2.6.29-R46 kernel version seems to be the latest 
supported by Angstrom for the BeagleBoard (as of two weeks ago). The 
distribution comes with a large number of patches. I know that Xenomai 
was tested against a vanilla kernel, but I believe that it is likely 
that if I omit all the Angstrom patches, some Angstrom functionality 
will be broken. I seems easier to start with a known working system and 
integrate one thing (Xenomai) into it than to try to rebuild all of 
Angstrom around a Xenomai patched kernel.

I plan to port a couple of my device drivers from the Linux environment 
to become real time drivers and write a real time user task that makes 
heavy use of the OMAP NEON and VFP units. The real time user task will 
asynchronously publish state/status to subscribed Linux applications. In 
general, I need to read a set of sensors and do some heavy number 
crunching on the results every millisecond. Actions requiring 
tens-of-milliseconds or less latency will be performed in the Xenomai 
environment.

More below...

On 4/5/2010 3:18 PM, Gilles Chanteperdrix wrote:
> Bob Feretich wrote:
>   
>> First, thanks for the help getting me started with Xenomai in 
>> openembedded. Special thanks to Felipe Brandao Cavalcanti for the files 
>> he posted. (I was sidetracked on another project, so I could not 
>> follow-up sooner.)
>>
>> I added  adeos-ipipe-2.6.29-arm-1.13-04.patch to the end of the normal 
>> set of kernel patches to be applied against Angstrom 
>> linux-omap-2.6.29.bb recipe file (it builds the -r46 revision). There 
>> are conflicts with four Angstrom patches. There are two conflicts that I 
>> am concerned about. (The first two below.)
>>     
>
> Hi,
>
> first of all, the Adeos patch is made for the vanilla kernel, not for
> patched versions, and validated with that kernel. So, I would recommend
> you to upgrade the kernel, instead of using a kernel with backported
> changes. Maintaining the Adeos patch is enough time consuming.
>
> Second, on what processor do you intend to run Xenomai? Some of the
> patches may not be needed at all for the processor you want to use, so
> you should not even bother to try and apply them.
>   
Addressed above.
>> Conflict with 
>> '0001-implement-TIF_RESTORE_SIGMASK-support-and-enable-the.patch'.
>> patching file arch/arm/include/asm/thread_info.h
>> Hunk #1 FAILED at 136.
>> Hunk #2 FAILED at 146.
>> 2 out of 2 hunks FAILED -- rejects in file 
>> arch/arm/include/asm/thread_info.h
>> Adeos wants TIF_MMSWITCH_INT   20, but the other patch wants 
>> TIF_RESTORE_SIGMASK   20.
>> Can I define TIF_MMSWITCH_INT  as 21? Will that bother anything?
>>     
> You need to inspect the code carefully to see if 21 is not used for
> anything else.
>   
I examined the patch closely. the value 21 is not used for anything else.
>> Conflict with 'no-cortex-deadlock.patch'.
>> patching file arch/arm/kernel/entry-common.S
>> Hunk #5 FAILED at 82.
>> Hunk #6 succeeded at 272 (offset 4 lines).
>> Hunk #8 succeeded at 494 (offset -6 lines).
>> 1 out of 8 hunks FAILED -- rejects in file arch/arm/kernel/entry-common.S
>> Some Arm silicon require the "dmb" instruction in this fix to avoid 
>> deadlock. Does Xenomai account for this elsewhere?
>>     
> What you see is what you get. All the changes made by Xenomai are
> available in the Adeos patch. Without seeing the code I can not tell. Is
> the processor you want to use affected by this patch?
>   
I determined that this patch is not needed. BeagleBoard Rev. B7 and 
above use ES3.0 silicon. This patch seems to be needed for ES2.0 and 
earlier silicon.
>> Conflict with '/cache/l1cache-shift.patch'
>> patching file arch/arm/mm/Kconfig
>> Hunk #1 FAILED at 717.
>> 1 out of 1 hunk FAILED -- rejects in file arch/arm/mm/Kconfig
>> No real conflict, the other patch just added a config entry that the 
>> Adeos patch wasn't expecting.
>>     
I'm sure that the above patch is not a problem.
>> Conflict with 'vfp/03-vfp-corruption.patch'
>> patching file arch/arm/vfp/vfphw.S
>> Hunk #5 succeeded at 136 with fuzz 1.
>> Hunk #6 FAILED at 156.
>> 1 out of 6 hunks FAILED -- rejects in file arch/arm/vfp/vfphw.S
>> I allowed the #ifdef CONFIG_PREEMPT segment to match before the Adeos 
>> insertion.
>>     
> Risky business, we patch a bit the vfp support, and are going to patch
> it even further in next revisions. Here again, without the code, I can
> not tell.
>   
Your statement concerns me. I need NEON/VFP support and here are four 
patches applied to it by the distribution.
           file://vfp/02-vfp-ptrace.patch;patch=1 \
           file://vfp/03-vfp-corruption.patch;patch=1 \
           file://vfp/04-vfp-threads.patch;patch=1 \
           file://vfp/05-vfp-signal-handlers.patch;patch=1 \
Are these patches well known? Can you identify them from the above?

The specific area of detected conflict is with vfp/03-vfp-corruption.patch.
The conflicting part of the patch just seems to be decrementing a 
preemption counter.
@@ -154,16 +156,18 @@ look_for_VFP_exceptions:
     @ Fall into hand on to next handler - appropriate coproc instr
     @ not recognised by VFP
 
+    enable_irq_cond
     DBGSTR    "not VFP"
 #ifdef CONFIG_PREEMPT
    get_thread_info    r10
    ldr    r4, [r10, #TI_PREEMPT]    @ get preempt count
    sub    r11, r4, #1        @ decrement it
    str    r11, [r10, #TI_PREEMPT]
 #endif
     mov    pc, lr

The #ifdef/#endif block were the unexpected statements. I think that 
moving the enable_irq_cond after the #ifdef block is probably the 
correct thing to do. I am assuming hat Xenomai is trying to enable some 
kind of interrupt just before this segment returns.

Regards,
Bob Feretich




[-- Attachment #2: Type: text/html, Size: 7315 bytes --]

  reply	other threads:[~2010-04-06 20:46 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-05 21:22 [Xenomai-help] Adeos patch interference with Angstrom 2.6.29-r46 Bob Feretich
2010-04-05 22:18 ` Gilles Chanteperdrix
2010-04-06 20:46   ` Bob Feretich [this message]
2010-04-06 20:55     ` Gilles Chanteperdrix
2010-04-07  0:42       ` Bob Feretich
2010-04-08 12:16         ` Gilles Chanteperdrix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BBB9D96.7060808@domain.hid \
    --to=bob.feretich@domain.hid \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.