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
next prev parent 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).