netdev.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).