Re: [Xenomai-core] RT_HEAP Problem

2008-09-28 Thread Yasser Kashfi
Hi Gilles,
excuse me, I will test it and reply to you at Tuesday.

regards

--- On Thu, 9/25/08, Gilles Chanteperdrix [EMAIL PROTECTED] wrote:

 From: Gilles Chanteperdrix [EMAIL PROTECTED]
 Subject: Re: [Xenomai-core] RT_HEAP Problem
 To: [EMAIL PROTECTED]
 Cc: xenomai-core@gna.org
 Date: Thursday, September 25, 2008, 5:33 AM
 Gilles Chanteperdrix wrote:
  Gilles Chanteperdrix wrote:
  Yasser Kashfi wrote:
  Hi
  Thanks Gilles for your notes. The problem is
 solved.
  Well... not exactly, it shows that the problem is
 using highmem, but we
  should now modify xenomai so that it supports
 using highmem.
 
  
  
  Hi Yasser,
  
  here is a patch which is supposed to fix this issue
 with highmem. Could 
  you apply it and use the same kernel configuration as
 you used initially
  ? 
  
  Thanks in advance.
 
 Hi Yasser,
 
 if you do not have time to test this patch, please tell us,
 we will try
 and test it by other means.
 
 Regards.
 
 -- 
  Gilles.


  


___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] rt_sem_create bug when registring in proc

2008-09-28 Thread Philippe Gerum
stephane ancelot wrote:
 Hi,
 I have the following kernel bug, when using a string name in  
 rt_sem_create. using NULL as name do not report this problem.
 
 BUG: unable to handle kernel paging request at virtual address de82a268
 printing eip: c025d51a *pde = 1dd3e067 *pte = 
 Oops:  [#1] PREEMPT
 Modules linked in: xx(P) elok_s(P) e100 mii


You did not specify the Xenomai version in use. Looking at this output, you may
want to search the bug in your proprietary module code first; it seems that you
passed a string laid into the data segment of a module that has been unloaded,
without removing the semaphore it had initially created.

 Pid: 4, comm: events/0 Tainted: P(2.6.24.2-ipipe #3)
 EIP: 0060:[c025d51a] EFLAGS: 00010246 CPU: 0
 EIP is at strlen+0xa/0x20
 EAX:  EBX: 8124 ECX:  EDX: de82a268
 ESI: de82a268 EDI: de82a268 EBP: 0001 ESP: ddc27e8c
   DS: 007b ES: 007b FS:  GS:  SS: 0068
 Process events/0 (pid: 4, ti=ddc26000 task=ddc19ab0 task.ti=ddc26000)0
 I-pipe domain Linux
 Stack: ddc27ebc c01e445b dde783c0 c0257d2a dde78140 de82a268 de82a268  
 c016e7a0
 c048aebc  c01e46d4 0001 dde78140 c04fbac4 c016338c  
 0200
    007b 0002  dde783c0  
 dde78140
 Call Trace:
   [c01e445b] proc_create+0x4b/0x110
   [c0257d2a] idr_get_new+0xa/0x30
   [c016e7a0] __sem_read_proc+0x0/0x130
   [c01e46d4] create_proc_entry+0x44/0x90
   [c016338c] registry_proc_callback+0xa1c/0xb00
   [c01130c1] update_curr+0x71/0x100
   [c0113148] update_curr+0xf8/0x100
   [c01132ef] set_next_entity+0x1f/0x50
   [c0162970] registry_proc_callback+0x0/0xb00
   [c0129516] run_workqueue+0xb6/0x1a0
   [c039ff8f] schedule+0x1df/0x3d0
   [c0129e9d] worker_thread+0x6d/0xa0
   [c012d670] autoremove_wake_function+0x0/0x50
   [c0129e30] worker_thread+0x0/0xa0
   [c012d302] kthread+0x42/0x70
   [c012d2c0] kthread+0x0/0x70
   [c010398b] kernel_thread_helper+0x7/0x1c
   ===
 Code: 00 56 89 c6 89 d0 88 c4 ac 38 e0 74 09 84 c0 75 f7 be 01 00 00 00 89  
 f0 48 5e c3 8d b6 00 00 00 00 57 b9 ff ff ff ff 89 c7 31 c0 f2 ae f7 d1  
 49 5f 89 c8 c3 8d b6 00 00 00 00 8d bc 27 00 00 00
 EIP: [c025d51a] strlen+0xa/0x20 SS:ESP 0068:ddc27e8c
 ---[ end trace 614a6309c2874abe ]---
 
 Best regards
 S.Ancelot
 
 ___
 Xenomai-core mailing list
 Xenomai-core@gna.org
 https://mail.gna.org/listinfo/xenomai-core
 


-- 
Philippe.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] Handle SIGILL when kernel compiled without Xenomai.

2008-09-28 Thread Philippe Gerum
Gilles Chanteperdrix wrote:
 Philippe Gerum wrote:
 Gilles Chanteperdrix wrote:
 Hi,

 on some (all ?) platforms, we get a SIGILL when trying to emit the first 
 Xenomai syscall, instead of the -ENOSYS return value. This patches 
 handles the SIGILL by printing an error message and exiting.

 This is an issue for archs that encode the syscall number into the trap 
 opcode
 like ARM using the OABI, others will get -ENOSYS as expected, so this should
 move to the arch-specific code.
 
 Actually, I get a SIGILL on ARM compiled with EABI as well.

It seems the ARM folks decided to send SIGILL with EABI to conform to the OABI
behaviour, despite they did not formally need that. Only invalid calls in the
9f00xx..9f07ff range are expected to return -ENOSYS. Too bad that our syscall
marker is out of that range.

 Moving this
 code to the arch dependent code looks hard, since we need to setup the
 jump buffer in the very function which issues the syscall (Ok, we could
 use a macro). But what would you think of a SIGILL handler which does
 not longjmp (like Jan suggested, simply print an error message and exit,
 even if xeno_bind_skin_opt was called) ?
 

Fine with me.

-- 
Philippe.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] Handle SIGILL when kernel compiled without Xenomai.

2008-09-28 Thread Gilles Chanteperdrix
Philippe Gerum wrote:
 Gilles Chanteperdrix wrote:
 Philippe Gerum wrote:
 Gilles Chanteperdrix wrote:
 Hi,

 on some (all ?) platforms, we get a SIGILL when trying to emit the first 
 Xenomai syscall, instead of the -ENOSYS return value. This patches 
 handles the SIGILL by printing an error message and exiting.

 This is an issue for archs that encode the syscall number into the trap 
 opcode
 like ARM using the OABI, others will get -ENOSYS as expected, so this should
 move to the arch-specific code.
 Actually, I get a SIGILL on ARM compiled with EABI as well.
 
 It seems the ARM folks decided to send SIGILL with EABI to conform to the OABI
 behaviour, despite they did not formally need that. Only invalid calls in the
 9f00xx..9f07ff range are expected to return -ENOSYS. Too bad that our syscall
 marker is out of that range.
 
  Moving this
 code to the arch dependent code looks hard, since we need to setup the
 jump buffer in the very function which issues the syscall (Ok, we could
 use a macro). But what would you think of a SIGILL handler which does
 not longjmp (like Jan suggested, simply print an error message and exit,
 even if xeno_bind_skin_opt was called) ?

 
 Fine with me.

Ok. Commited in trunk. Do I commit in v2.4.x branch?

-- 
Gilles.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] Handle SIGILL when kernel compiled without Xenomai.

2008-09-28 Thread Philippe Gerum
Gilles Chanteperdrix wrote:
 Philippe Gerum wrote:
 Gilles Chanteperdrix wrote:
 Philippe Gerum wrote:
 Gilles Chanteperdrix wrote:
 Hi,

 on some (all ?) platforms, we get a SIGILL when trying to emit the first 
 Xenomai syscall, instead of the -ENOSYS return value. This patches 
 handles the SIGILL by printing an error message and exiting.

 This is an issue for archs that encode the syscall number into the trap 
 opcode
 like ARM using the OABI, others will get -ENOSYS as expected, so this 
 should
 move to the arch-specific code.
 Actually, I get a SIGILL on ARM compiled with EABI as well.
 It seems the ARM folks decided to send SIGILL with EABI to conform to the 
 OABI
 behaviour, despite they did not formally need that. Only invalid calls in the
 9f00xx..9f07ff range are expected to return -ENOSYS. Too bad that our syscall
 marker is out of that range.

  Moving this
 code to the arch dependent code looks hard, since we need to setup the
 jump buffer in the very function which issues the syscall (Ok, we could
 use a macro). But what would you think of a SIGILL handler which does
 not longjmp (like Jan suggested, simply print an error message and exit,
 even if xeno_bind_skin_opt was called) ?

 Fine with me.
 
 Ok. Commited in trunk. Do I commit in v2.4.x branch?
 

Yep. Thanks.

-- 
Philippe.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] Problems using rt_intr_wait on PowerPC

2008-09-28 Thread Niklaus Giger
Hi

Based on the user_irq.c I created a simple test program for my PPC405GPr 
board.

We have a FPGA which generates an interrupt every millisecond.
It seems to work as simple test (fire it once and assure that it
sets the interrupt-bit).

When I connect it to the irq_server however (letting the main task
sleep 1 second) I get around 2321964 error and not a single OK from 
rt_intr_wait.
Also my debug LED flicker very fast.
The FPGA is connected to the External Interrupt 0, which has the number 25.

I think that I either got the polarity/level/edge register wrong or
I am playing with the wrong interrupt.

Could anybody tell me, whether I used the correct interrupt number?
Does Linux somewhere overwrite the values for the UIC polarity/level, etc
settings written by U-Boot (e.g. for my board in board_early_init_f)

Any hints are welcome.

Best regards

-- 
NIklaus Giger


___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core