Hi Philippe,

I enabled the two kernel configuration parameters.
However, this changes the error behaviour.
Now, the e1000 driver will  be loaded, however it will not work...
A unload and reload of the e1000 driver leads now to a kernel oops. However 
this looks
completely different than the original one I am chasing...
 
I will try to instrument the e1000 driver to ensure that it tries to retrieve 
the correct interrupt...

Regards

Mathias


----- Original Nachricht ----
Von:     Philippe Gerum <[EMAIL PROTECTED]>
An:      "M. Koehrer" <[EMAIL PROTECTED]>
Datum:   02.05.2007 14:42
Betreff: Re: [Xenomai-help] Xenomai and MSI enabled crashes kernel

> On Wed, 2007-05-02 at 11:14 +0200, M. Koehrer wrote:
> > Hi Jan,
> > 
> > here is the result of this patch.
> > I patched in addition to Philippe's patches.
> > 
> > Regards
> > 
> > Mathias
> > ---------
> > Intel(R) PRO/1000 Network Driver - version 7.3.15-k2
> > Copyright (c) 1999-2006 Intel Corporation.
> > ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 16 (level, low) -> IRQ 16
> > e1000: 0000:05:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1)
> 00:30:48:5a:f9:0a
> > e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
> > BUG: unable to handle kernel NULL pointer dereference at virtual address
> 00000000
> >  printing eip:
> > dfedd3ca
> 
> The following options are needed to get a reliable backtrace, make sure
> to have them on:
> 
> CONFIG_DEBUG_KERNEL=y
> CONFIG_FRAME_POINTER=y
> 
> I also need the kernel disassembly; please send this privately to me
> (output of "objdump -d vmlinux"). Make sure to attach the boot log for
> this kernel as it fails, since code offsets listed in the backtrace are
> going to move with the above options enabled.
> 
> Additionally, does the problem persist if you disable CONFIG_XENOMAI,
> but still leave CONFIG_IPIPE on?
> 
> > *pde = 00000000
> > Oops: 0000 [#1]
> > SMP
> > Modules linked in: e1000
> > CPU:    0
> > EIP:    0060:[<dfedd3ca>]    Not tainted VLI
> > EFLAGS: 00010082   (2.6.20.4 #7)
> > EIP is at 0xdfedd3ca
> > eax: c0112478   ebx: 00000001   ecx: c0114581   edx: df06c001
> > esi: dfedf6c0   edi: dfedc240   ebp: 00000000   esp: df06ddf8
> > ds: 007b   es: 007b   ss: 0068
> > Process ifconfig (pid: 1242, ti=df06c000 task=c16f9030 task.ti=df06c000)
> > Stack: 00000040 ffffffff 00000000 00000007 c03e6f00 000000ec 00000000
> c03d9180
> >        c010f1b5 c015291a decbe080 00000680 decbe080 00000724 c02d6dfd
> 00007600
> >        00000001 00000060 e099a210 00000286 ffffff24 df7065c8 00000000
> 0000000f
> > Call Trace:
> >  [<c010f1b5>] __ipipe_handle_irq+0x26b/0x2bd
> >  [<c015291a>] __kmalloc+0x82/0x8d
> >  [<c02d6dfd>] __alloc_skb+0x4f/0xf8
> >  [<e099a210>] e1000_set_multi+0x111/0x189 [e1000]
> >  [<c01035b9>] common_interrupt+0x21/0x38
> >  [<e099a0ff>] e1000_set_multi+0x0/0x189 [e1000]
> >  [<e099a210>] e1000_set_multi+0x111/0x189 [e1000]
> >  [<c02dd211>] __dev_mc_upload+0x1d/0x1e
> >  [<c02dd331>] dev_mc_upload+0x24/0x37
> >  [<c02db83c>] dev_open+0x44/0x62
> >  [<c02da309>] dev_change_flags+0x47/0xe4
> >  [<c030d422>] devinet_ioctl+0x252/0x56f
> >  [<c02db41a>] dev_ifsioc+0x113/0x38d
> >  [<c02d1834>] sock_ioctl+0x0/0x1ad
> >  [<c02d19c2>] sock_ioctl+0x18e/0x1ad
> >  [<c02d1834>] sock_ioctl+0x0/0x1ad
> >  [<c015e41b>] do_ioctl+0x1f/0x62
> >  [<c015e6a2>] vfs_ioctl+0x244/0x256
> >  [<c015e6e7>] sys_ioctl+0x33/0x4c
> >  [<c01029f3>] sysenter_past_esp+0x6c/0x70
> >  =======================
> > Code: 00 00 00 00 00 01 00 00 00 00 90 ed df 04 03 02 01 6b ec fe ff 00 00
> 00 00 00 00 00 00 00 00 00 00 c0 d3 ed df c0 d3 ed df 00 42 <c9> de 00 db ed
> df d0 d3 ed df d0 d3 ed df 00 00 00 00 1a 00 00
> > EIP: [<dfedd3ca>] 0xdfedd3ca SS:ESP 0068:df06ddf8
> >  <0>Kernel panic - not syncing: Fatal exception in interrupt
> >  BUG: at arch/i386/kernel/smp.c:565 smp_call_function()
> >  [<c010ba83>] smp_call_function+0x66/0x10a
> >  [<c0119046>] printk+0x62/0xd5
> >  [<c010bb42>] smp_send_stop+0x1b/0x2b
> >  [<c01185e1>] panic+0x4d/0xe4
> >  [<c01040f1>] die+0x1f2/0x226
> >  [<c01118b0>] do_page_fault+0x447/0x517
> >  [<c010f84f>] __ipipe_handle_exception+0xce/0x158
> >  [<c03335fd>] error_code+0x81/0x90
> >  [<c0114581>] try_to_wake_up+0x33c/0x346
> >  [<c0112478>] __activate_task+0x1c/0x29
> >  [<c010f1b5>] __ipipe_handle_irq+0x26b/0x2bd
> >  [<c015291a>] __kmalloc+0x82/0x8d
> >  [<c02d6dfd>] __alloc_skb+0x4f/0xf8
> >  [<e099a210>] e1000_set_multi+0x111/0x189 [e1000]
> >  [<c01035b9>] common_interrupt+0x21/0x38
> >  [<e099a0ff>] e1000_set_multi+0x0/0x189 [e1000]
> >  [<e099a210>] e1000_set_multi+0x111/0x189 [e1000]
> >  [<c02dd211>] __dev_mc_upload+0x1d/0x1e
> >  [<c02dd331>] dev_mc_upload+0x24/0x37
> >  [<c02db83c>] dev_open+0x44/0x62
> >  [<c02da309>] dev_change_flags+0x47/0xe4
> >  [<c030d422>] devinet_ioctl+0x252/0x56f
> >  [<c02db41a>] dev_ifsioc+0x113/0x38d
> >  [<c02d1834>] sock_ioctl+0x0/0x1ad
> >  [<c02d19c2>] sock_ioctl+0x18e/0x1ad
> >  [<c02d1834>] sock_ioctl+0x0/0x1ad
> >  [<c015e41b>] do_ioctl+0x1f/0x62
> >  [<c015e6a2>] vfs_ioctl+0x244/0x256
> >  [<c015e6e7>] sys_ioctl+0x33/0x4c
> >  [<c01029f3>] sysenter_past_esp+0x6c/0x70
> >  =======================
> >  
> > 
> > ----- Original Nachricht ----
> > Von:     Jan Kiszka <[EMAIL PROTECTED]>
> > An:      "M. Koehrer" <[EMAIL PROTECTED]>
> > Datum:   02.05.2007 10:39
> > Betreff: Re: [Xenomai-help] Xenomai and MSI enabled crashes kernel
> > 
> > > M. Koehrer wrote:
> > > > Hi Philippe,
> > > > 
> > > > I have applied the patches as proposed.
> > > > However, the kernel still freezes.
> > > 
> > > :(
> > > 
> > > > Here is the corresponding message.
> > > > 
> > > 
> > > OK, here is another instrumentation, hoping that the bug will not move
> > > again and that we can nail down what piece of memory contains nonsense.
> > > 
> > > The next step would then be to narrow down the corruption window (or to
> > > find the reason for filling in nonsense during initialisation).
> > > 
> > > Jan
> > > 
> > > 
> > > Index: linux-2.6.20/arch/i386/kernel/ipipe.c
> > > ===================================================================
> > > --- linux-2.6.20.orig/arch/i386/kernel/ipipe.c
> > > +++ linux-2.6.20/arch/i386/kernel/ipipe.c
> > > @@ -782,6 +782,13 @@ int __ipipe_handle_irq(struct pt_regs re
> > >  
> > >   head = __ipipe_pipeline.next;
> > >   next_domain = list_entry(head, struct ipipe_domain, p_link);
> > > + if (irq==219) {
> > > +         ipipe_set_printk_sync(next_domain);
> > > +         printk("%s:%d\n", __FUNCTION__, __LINE__);
> > > +         printk("%s:%d %lx %p %p\n", __FUNCTION__, __LINE__,
> > > +                 ipipe_root.irqs[irq].control, 
> > > ipipe_root.irqs[irq].acknowledge,
> > > +                 ipipe_root.irqs[irq].handler);
> > > + }
> > >   if (likely(test_bit(IPIPE_WIRED_FLAG,
> &next_domain->irqs[irq].control)))
> > > {
> > >           if (!m_ack && next_domain->irqs[irq].acknowledge != NULL)
> > >                   next_domain->irqs[irq].acknowledge(irq);
> > > @@ -865,6 +872,10 @@ finalize:
> > >    * current domain in the pipeline.
> > >    */
> > >  
> > > + if (irq==219)
> > > +         printk("%s:%d %lx %p %p\n", __FUNCTION__, __LINE__,
> > > +                 ipipe_root.irqs[irq].control, 
> > > ipipe_root.irqs[irq].acknowledge,
> > > +                 ipipe_root.irqs[irq].handler);
> > >   __ipipe_walk_pipeline(head, cpuid);
> > >  
> > >   ipipe_load_cpuid();
> > > Index: linux-2.6.20/kernel/ipipe/core.c
> > > ===================================================================
> > > --- linux-2.6.20.orig/kernel/ipipe/core.c
> > > +++ linux-2.6.20/kernel/ipipe/core.c
> > > @@ -791,6 +791,11 @@ void fastcall __ipipe_sync_stage(unsigne
> > >                   rank = __ipipe_ffnz(submask);
> > >                   irq = (level << IPIPE_IRQ_ISHIFT) + rank;
> > >  
> > > +                 if (irq==219)
> > > +                         printk("%s:%d %lx %p %p\n", __FUNCTION__, 
> > > __LINE__,
> > > +                                 ipipe_root.irqs[irq].control,
> > > +                                 ipipe_root.irqs[irq].acknowledge,
> > > +                                 ipipe_root.irqs[irq].handler);
> > >                   if (test_bit(IPIPE_LOCK_FLAG, &ipd->irqs[irq].control)) 
> > > {
> > >                           __clear_bit(rank, 
> > > &cpudata->irq_pending_lo[level]);
> > >                           continue;
> > > @@ -807,6 +812,8 @@ void fastcall __ipipe_sync_stage(unsigne
> > >                   if (ipd == ipipe_root_domain)
> > >                           trace_hardirqs_off();
> > >  
> > > +                 if (irq==219)
> > > +                         printk("%s:%d\n", __FUNCTION__, __LINE__);
> > >                   __ipipe_run_isr(ipd, irq, cpuid);
> > >  #ifdef CONFIG_SMP
> > >                   {
> > > 
> > > 
> > > 
> > 
> -- 
> Philippe.
> 
> 
> 

-- 
Mathias Koehrer
[EMAIL PROTECTED]


Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig
und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
nur  39,85 €  inkl. DSL- und ISDN-Grundgebühr!
http://www.arcor.de/rd/emf-dsl-2

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to