All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesper Dangaard Brouer <jdb@comx.dk>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Re: NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter (rmmod BUG)
Date: Wed, 19 Nov 2008 13:10:45 +0100	[thread overview]
Message-ID: <1227096645.25811.17.camel@localhost.localdomain> (raw)
In-Reply-To: <20081114.162105.193724466.davem@davemloft.net>

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

On Fri, 2008-11-14 at 16:21 -0800, David Miller wrote:
> From: Jesper Dangaard Brouer <jdb@comx.dk>
> Date: Fri, 14 Nov 2008 19:49:22 +0100
> 
> > On Fri, 2008-11-14 at 13:38 +0100, Jesper Dangaard Brouer wrote:
> > > On Thu, 2008-11-13 at 14:08 -0800, David Miller wrote:
> > > > I suspect that something might be changing np->num_ldg, but
> > > > anyways the following debugging patch should provide some
> > > > clues.  Please reproduce this and send the logs it generates.
> > > 
> > > Debugging the rmmod problem...
> > > 
> > > I found a strange behavior, rmmod'ing the niu driver will only cause a
> > > kernel BUG, if the driver was loaded at boot time.  If I remove the
> > > niu.ko driver from /lib/modules/2.6.28-rc4-davem/kernel/drivers/net/
> > > reboot the system.  After that I can load and unload the niu.ko driver
> > > without problems... hmmm
> > 
> > Perhaps this is a regression, as the problem is not in v2.6.27.
> 
> This is what I started to suspect as well.
> 
> > I'll start bisecting monday...
> > 
> > I'm not sure its a NIU driver bug, as the number of changes to niu.c is
> > very small since v2.6.27. (git log v2.6.27.. drivers/net/niu.c)
> 
> Ok, let me know what your bisect finds.

I have given up bisecting because during my bisect I have hit a kernel
that will not boot on my system (it hangs...)

I have attached the full bisect history document...

-- 
Med venlig hilsen / Best regards
  Jesper Brouer
  ComX Networks A/S
  Linux Network developer
  Cand. Scient Datalog / MSc.
  Author of http://adsl-optimizer.dk
  LinkedIn: http://www.linkedin.com/in/brouer

[-- Attachment #2: bisect_niu_rmmod.apt --]
[-- Type: text/plain, Size: 10091 bytes --]

~~ -*-text-*-

       -------------------------------------------------------
			    Bisecting bug:
		      NIU driver rmmod MSI-X bug
       -------------------------------------------------------
		 Jesper Dangaard Brouer (jdb@comx.dk)
       -------------------------------------------------------
	$LastChangedRevision: 772 $
	$Date: 2008-11-19 13:08:13 +0100 (Wed, 19 Nov 2008) $
       -------------------------------------------------------


git clone
~~~~~~~~~

+---------
 cd /var/kernels/git/davem
 git clone git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git net-2.6-bisect
+---------


Bug description
~~~~~~~~~~~~~~~

 NIU driver rmmod kernel MSI-X bug.

 I found a strange behavior, rmmod'ing the niu driver will only cause
 a kernel BUG, if the driver was loaded at boot time.  If I remove the
 niu.ko driver from /lib/modules/2.6.28-rc4-davem/kernel/drivers/net/
 reboot the system.  After that I can load and unload the niu.ko
 driver without problems... hmmm.

Reproduce / test
~~~~~~~~~~~~~~~~

 1. Boot machine

 2. rmmod niu

 3. look at dmesg for kernel BUG output


Install trick
~~~~~~~~~~~~~

 Installing kernel in a seperate directory.

+--------
 export VER=`cat include/config/kernel.release`
 echo $VER

 export INSTALL_MOD_PATH=/var/kernels/git/install/
 rm -rf $INSTALL_MOD_PATH/lib/modules/$VER/kernel/
 make modules_install

 export BOOT="$INSTALL_MOD_PATH/boot/"
 [ -d $BOOT ] ||  mkdir $BOOT

 cp -v arch/x86/boot/bzImage $BOOT/vmlinuz-$VER
 cp -v arch/i386/boot/bzImage $BOOT/vmlinuz-$VER
 cp -v System.map $BOOT/System.map-$VER
 cp -v vmlinux $BOOT/vmlinux-$VER
+--------

* Push to test host
  ~~~~~~~~~~~~~~~~~

 export KERNEL=2.6.27-davem
 export KERNEL=2.6.28-rc2-davem
 export KERNEL=2.6.28-rc4-davem

+--------
 export HOST=ng
 export KERNEL=$VER
 pushd /var/kernels/git/install
 rsync -e ssh -avz boot/vmlinuz-${KERNEL} root@${HOST}:/boot/
 rsync -e ssh -avz boot/vmlinux-${KERNEL} root@${HOST}:/boot/
 rsync -e ssh -avz --delete lib/modules/${KERNEL}  root@${HOST}:/lib/modules/
 popd
+--------


Create branch from tag:
~~~~~~~~~~~~~~~~~~~~~~~

 Known good starting point.

+-----------
 git branch   tag_v2.6.27 v2.6.27
 git checkout tag_v2.6.27
+-----------


Start bisect
~~~~~~~~~~~~

+--------
 git checkout master
 git bisect start
 git bisect good v2.6.27
 git bisect bad master
+--------

 Create .config by <<<make oldconfig>>> or <<<make menuconfig>>>

+-------
 bisect good
#Bisecting: 2157 revisions left to test after this
#[92b29b86fe2e183d44eb467e5e74a5f718ef2e43]
#Merge branch 'tracing-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
+-------

 compile:
  time make -j6 bzImage modules


 Sort of "good" version, problem is that number of IRQs when down a
 lot!  This probably means bad performance as I cannot get enough IRQs
 for the Sun NIC.

+--------
 bisect good
#Bisecting: 1066 revisions left to test after this
#[ea541686d8454efac4f2b5c0767affb12d4b6a52] 
#Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds
+--------

 compile:
  time make -j6 bzImage modules


 CRAP! - kernel (commit ea541686d8454efac4f2b5c0767affb12d4b6a52) will
 not boot on my system :-(((

 Stops with message:

+------
 hpet0: 3 comparators, 64-bit 14.318180 Mhz counter
+------

 <<Try to:>> removed "High Resolution Timer Support" in .config
 CONFIG_HIGH_RES_TIMERS and CONFIG_SCHED_HRTICK.

 Disable "HPET Timer Support" (under "Processor type and features").
 Undefs CONFIG_HPET_TIMER and CONFIG_HPET_EMULATE_RTC.

 Compiling ... installing ... It was not the problem... now I get a
 "BUG: soft lockup" kstop EIP is a stop_cpu+0x37/0xb0.


* Parallel process#1:
~~~~~~~~~~~~~~~~~~~~

 <<Try to:>> Pick a new commit point a make a new seperate branch and
 try to see if we cab boot... random picked commit
 9a1c3542768b5a58e45a9216921cd10a3bae1205

 git checkout -b new_bisect_point01 9a1c3542768b5a58e45a9216921cd10a3bae1205

 Compile on another tree davem/net-2.6-copy.

 Kernel named "-test".

 It can boot and unloading "niu" driver WORKS!

 If I understand bisect it should be possible to call:

   git-bisect good 9a1c3542768b5a58e45a9216921cd10a3bae1205


* Parallel process#2:
~~~~~~~~~~~~~~~~~~~~

 <<Try to:>> use git-bisect skip

+------
git-bisect skip
Bisecting: 1066 revisions left to test after this
[969907a956752f88dde4aa23fa8c033b9a939aee] Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
+------

 STILL HANGS on boot :-(((


* Back on track...
~~~~~~~~~~~~~~~~~~

+--------
git-bisect good 9a1c3542768b5a58e45a9216921cd10a3bae1205
Bisecting: 1000 revisions left to test after this
[1137fb670465b6b5d15b9db7d01707a5833ee3ae] arm ide breakage
+--------

 compile... install...

 BAD: Booting (now 2.6.28-rc1-bisect) and unloading "niu" causes the bug!

 Mark bisecting as BAD.

+----------
git-bisect bad
Bisecting: 508 revisions left to test after this
[36ec891895020f3bc9953c8b11d079c6d77d76bd] Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
+----------

 compile ... install ... (back on ver. 2.6.27-bisect)

 GRRRR... Now I cannot boot again! :-(((

* Try to find a new place
  ~~~~~~~~~~~~~~~~~~~~~~~

 Random pick: dbacefc9c4f6bd365243db379473ab7041656d90

+--------
 cd /var/kernels/git/davem/net-2.6-copy/
 git checkout -b new_bisect_point02 dbacefc9c4f6bd365243db379473ab7041656d90
+--------

 VER=2.6.27-rc1-test

 This version can boot and unloading niu works.

* Back on track(2) ... but not :-(
~~~~~~~~~~~~~~~~~~

 git-bisect good dbacefc9c4f6bd365243db379473ab7041656d90

+--------
git-bisect good dbacefc9c4f6bd365243db379473ab7041656d90
Bisecting: 508 revisions left to test after this
[36ec891895020f3bc9953c8b11d079c6d77d76bd] Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
+---------

 Hmmm... commit 36ec891895020f3bc9953c8b11d079c6d77d76bd was the same
 as before... which could not boot...

* Try a bisect skip...
 ~~~~~~~~~~~~~~~~~~~~~

+---------
 git bisect skip
Bisecting: 508 revisions left to test after this
[70740d6c93030b339b4ad17fd58ee135dfc13913] Merge branch 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
+---------

 compile ... install ... boot... CANNOT BOOT !!! :-(((


* Doing lucky guessing
~~~~~~~~~~~~~~~~~~~~~~

 git-bisect good

+--------------
git-bisect good
Bisecting: 259 revisions left to test after this
[22484856402bfa1ff3defe47f6029ab0418240d9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev
+--------------

 ARGH!!! -- cannot boot this kernel, it hangs :-(((

* Doing desperate guessing
~~~~~~~~~~~~~~~~~~~~~~~~~~

+--------
git-bisect good
Bisecting: 132 revisions left to test after this
[c3c9897c63ebb0b93b7f78724e38d6ee1da04041] Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
+--------

 compiling ... installing ...
 ... booting -- ARGH! cannot boot hang!


* Doing hopeless guessing
~~~~~~~~~~~~~~~~~~~~~~~~~

 This is hopeless, I should give up!

+-----------------
git-bisect good
Bisecting: 65 revisions left to test after this
[969907a956752f88dde4aa23fa8c033b9a939aee] Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
+------------------

 compiling ...
 installing ...
 still hangs after boot... :-(((

 ... GIVING UP!!!


* git bisect log
~~~~~~~~~~~~~~~~

+-------
git-bisect start
# good: [3fa8749e584b55f1180411ab1b51117190bac1e5] Linux 2.6.27
git-bisect good 3fa8749e584b55f1180411ab1b51117190bac1e5
# bad: [5f9021cfdc3524a4c5e3d7ae2d049eb7adcd6776] rtnetlink: propagate error from dev_change_flags in do_setlink()
git-bisect bad 5f9021cfdc3524a4c5e3d7ae2d049eb7adcd6776
# good: [29415c37f043d1d54dcf356601d738ff6633b72b] KVM: set debug registers after "schedulable" section
git-bisect good 29415c37f043d1d54dcf356601d738ff6633b72b
# good: [92b29b86fe2e183d44eb467e5e74a5f718ef2e43] Merge branch 'tracing-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
git-bisect good 92b29b86fe2e183d44eb467e5e74a5f718ef2e43
# skip: [ea541686d8454efac4f2b5c0767affb12d4b6a52] Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds
git-bisect skip ea541686d8454efac4f2b5c0767affb12d4b6a52
# good: [9a1c3542768b5a58e45a9216921cd10a3bae1205] pass fmode_t to blkdev_put()
git-bisect good 9a1c3542768b5a58e45a9216921cd10a3bae1205
# bad: [1137fb670465b6b5d15b9db7d01707a5833ee3ae] arm ide breakage
git-bisect bad 1137fb670465b6b5d15b9db7d01707a5833ee3ae
# good: [dbacefc9c4f6bd365243db379473ab7041656d90] fs/buffer.c: uninline __remove_assoc_queue()
git-bisect good dbacefc9c4f6bd365243db379473ab7041656d90
# skip: [36ec891895020f3bc9953c8b11d079c6d77d76bd] Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
git-bisect skip 36ec891895020f3bc9953c8b11d079c6d77d76bd
# good: [70740d6c93030b339b4ad17fd58ee135dfc13913] Merge branch 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
git-bisect good 70740d6c93030b339b4ad17fd58ee135dfc13913
# good: [22484856402bfa1ff3defe47f6029ab0418240d9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev
git-bisect good 22484856402bfa1ff3defe47f6029ab0418240d9
# good: [c3c9897c63ebb0b93b7f78724e38d6ee1da04041] Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
git-bisect good c3c9897c63ebb0b93b7f78724e38d6ee1da04041
+-------


Compile:
~~~~~~~~

+-------
 time make -j6 bzImage modules
+-------


NOTES:
~~~~~~

 git log 29415c37f043d1d54dcf356601d738ff6633b72b..5f9021cfdc3524a4c5e3d7ae2d049eb7adcd6776

 NR_IRQS changed ... could this be releated?

 git show 7db282fa67b58daff8a57f9e1c93d4474b5908ff
 git show 1b4897688011cd05e07f00dcfe6af3331eb36a3c
 git show c78d0cf2925bffae8a6f00e7d9b8e971b0392edd

  reply	other threads:[~2008-11-19 12:10 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-04 14:45 NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter Jesper Dangaard Brouer
2008-11-04 21:42 ` David Miller
2008-11-05  7:05   ` Jesper Dangaard Brouer
2008-11-05  7:33     ` David Miller
2008-11-05  9:30       ` Jesper Dangaard Brouer
2008-11-05  9:34         ` David Miller
2008-11-11 19:19 ` Jesper Krogh
2008-11-11 23:50   ` David Miller
2008-11-12  0:18     ` David Miller
2008-11-12  9:36       ` Jesper Dangaard Brouer
2008-11-12  9:49         ` David Miller
2008-11-12 10:04           ` Jesper Dangaard Brouer
2008-11-12 11:01           ` Jesper Dangaard Brouer
2008-11-12 11:52             ` David Miller
2008-11-12 12:11               ` David Miller
2008-11-12 12:49                 ` Jesper Dangaard Brouer
2008-11-13  8:50                   ` Jesper Dangaard Brouer
2008-11-13 22:08                     ` David Miller
2008-11-14 12:38                       ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter (rmmod BUG) Jesper Dangaard Brouer
2008-11-14 18:49                         ` Jesper Dangaard Brouer
2008-11-15  0:21                           ` David Miller
2008-11-19 12:10                             ` Jesper Dangaard Brouer [this message]
2008-11-12 12:54                 ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter Ben Hutchings
2008-11-12 13:21                   ` Jesper Dangaard Brouer
2008-11-12 21:46                   ` David Miller
2008-11-12 21:50                     ` Ben Hutchings
2008-11-12 22:26                       ` David Miller
2008-11-12 22:58                         ` Roland Dreier
2008-11-12 17:56                 ` Jesper Krogh
2008-11-12 21:43                   ` David Miller
2008-11-12 21:31                 ` Jesper Dangaard Brouer
2008-11-12 23:10                   ` Matheos Worku
2008-11-13  9:10                 ` Jesper Dangaard Brouer
2008-11-13 22:19                   ` David Miller
2008-11-13 10:29                 ` Jesper Dangaard Brouer
2008-11-13 22:15                   ` David Miller
2008-11-19 22:58                     ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter (perf + regression IRQs) Jesper Dangaard Brouer
2008-11-19 23:11                       ` David Miller
2008-11-20 19:48                         ` Regression: Bisected, IRQ and MSI allocations screwed without sparse irq Jesper Dangaard Brouer
2008-11-21  0:34                           ` Thomas Gleixner
2008-11-21 10:33                             ` Jesper Dangaard Brouer
2008-11-21 16:40                               ` Thomas Gleixner
2008-11-21 19:35                                 ` Jesper Dangaard Brouer
2008-11-21 21:11                                   ` Thomas Gleixner
2008-11-21 23:06                                   ` David Miller

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=1227096645.25811.17.camel@localhost.localdomain \
    --to=jdb@comx.dk \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.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.