On 10/18/2012 12:37 PM, Gilles Chanteperdrix wrote:
On 10/18/2012 07:22 PM, Jeff Webb wrote:
On 10/17/2012 11:24 PM, Gilles Chanteperdrix wrote:
On 10/18/2012 12:11 AM, Jeff Webb wrote:
On 10/16/2012 02:04 AM, Gilles Chanteperdrix wrote:
On 10/16/2012 12:52 AM, Jeff Webb wrote:
I'm back to trying to get Xenomai running on a dual 6-core Intel
X5650 desktop machine. I reported my previous attempts a few
months ago:
On ubuntu 10.04 with 2.6.38.8:
http://www.xenomai.org/pipermail/xenomai/2012-July/000546.html
On ubuntu 10.04 with 3.2.21:
http://www.xenomai.org/pipermail/xenomai/2012-July/000577.html
I am now using ubuntu 12.04 instead of 10.04, and I'm using the
xenomai-2.6.git branch. I am still not having any success. The
kernel boots, but hangs as the GUI login box is coming up. This
is similar to what happened under ubuntu 10.04/3.2.21, but the
call trace seems a little different. I have attached my kernel
config and the console output, which was captured via a serial
connection. This exact kernel package seems to run fine (with
very limited testing) on a 4-core Intel X9650 desktop machine
running the same OS, for what it's worth. Any help in debugging
this would be appreciated. What's my next step?
I am afraid that is another known issue fixed in the 3.4 branch.
Please try the I-pipe git; git://git.denx.de, branch core-3.4.
Thanks again, Gilles.
I just rebuilt the kernel using the core-3.4 branch of ipipe.git with
xenomai-2.6.git. I started with the same kernel config as before and
then disabled a few drivers to get everything to compile without
errors.
If you do not need to disable these drivers to compile the kernel
without Xenomai, then it is not normal, please be more specific.
I started with a 3.2-series kernel config (posted earlier) that compiled with
Xenomai. I then copied that config over into the ipipe-core-3.4 build
directory before running menuconfig. When I tried to compile the kernel, I
encountered some section mismatch errors. To get those to go away, I ended up
disabling the following options:
# Device Drivers
# GPIO Support
# Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831)...
# USB Support
# USB Gadget Support
# Staging drivers
# Data acquisition support (comedi)
It wasn't quite clear to me which comedi module was giving me trouble, so I
disabled all of it, although it probably wasn't necessary. I'm pretty sure
that these problems were a result of migrating my kernel config from 3.2 to
3.4, and don't have anything to do with Xenomai. I did not try to compile a
vanilla 3.4 kernel, so I can't be certain. I apologize for the confusion. I
only mentioned that so you would know that the config was very slightly
different from what I posted last time.
The system still crashes, but now it seems to happen several
seconds after the login box has appeared. The console output is
shown below.
This does not look like the same issue, right? As usual, could you
disassemble __ipipe_dispatch_irq, or run addr2line for the error address
(0xffffffff810ac055)?
It appears to be a different issue. Since I have a bzImage in my boot
directory, I ran:
addr2line -i -e vmlinux ffffffff810ac055
on the vmlinux file I found in my kernel build directory. I'm assuming that is
the right thing to do. Here is the result:
linux-3.4.6-ipipe-core-3.4.git.2012.10.09/include/linux/ipipe.h:342
linux-3.4.6-ipipe-core-3.4.git.2012.10.09/kernel/ipipe/core.c:1211
The code looks like this:
ipipe.h:
static inline int ipipe_chained_irq_p(struct irq_desc *desc)
{
void __ipipe_chained_irq(unsigned irq, struct irq_desc *desc);
--> return desc->handle_irq == __ipipe_chained_irq;
}
core.c:
if (unlikely(irq >= NR_IRQS)) {
desc = NULL;
chained_irq = 0;
} else {
desc = irq_to_desc(irq);
--> chained_irq = ipipe_chained_irq_p(desc);
}
Ok, desc can be NULL, so, we should have
chained_irq = desc ? ipipe_chained_irq_p(desc) : 0;
Hooray! With this change, the system boots and seems to run fine. I ran a few
of the tests in the test suite (latency, etc.), and the results look good at
first glance. We'll see how it all comes out in the end, but things looks rosy
at the moment...
Thank you very much for your help in fixing this issue.
-Jeff
index 9898b92..569eafa 100644
--- a/kernel/ipipe/core.c
+++ b/kernel/ipipe/core.c
@@ -1208,7 +1208,7 @@ void __ipipe_dispatch_irq(unsigned int irq, int flags) /*
hw interrupts off */
chained_irq = 0;
} else {
desc = irq_to_desc(irq);
- chained_irq = ipipe_chained_irq_p(desc);
+ chained_irq = desc ? ipipe_chained_irq_p(desc) : 0;
}
#ifdef CONFIG_IPIPE_DEBUG
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai