tnt Veteran
Joined: 27 Feb 2004 Posts: 1222
|
Posted: Sun Apr 30, 2006 9:41 pm Post subject: g-sources-2.6.16-r4 & iproute2-2.6.15.20060110 => HAR |
|
|
After trying to get IFB working with newest kernel
(described here: https://forums.gentoo.org/viewtopic-t-452670-highlight-ifb.html )
I've found something "very interesting".
Script similar to exemple script given here:
http://linux-net.osdl.org/index.php/IFB
cause a hard lock on amd64 system with gentoo-sources 2.6.16-r4 and iproute2-2.6.15.20060110
Script:
Code: | #!/bin/bash
export TC="/sbin/tc"
$TC qdisc del dev ifb0 root 2> /dev/null > /dev/null
$TC qdisc del dev ifb0 ingress 2> /dev/null > /dev/null
$TC qdisc del dev eth0 root 2> /dev/null > /dev/null
$TC qdisc del dev eth0 ingress 2> /dev/null > /dev/null
$TC qdisc add dev ifb0 root handle 1: prio
$TC qdisc add dev ifb0 parent 1:1 handle 10: sfq
$TC qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000
$TC qdisc add dev ifb0 parent 1:3 handle 30: sfq
$TC filter add dev ifb0 protocol ip pref 1 parent 1: handle 1 fw classid 1:1
$TC filter add dev ifb0 protocol ip pref 2 parent 1: handle 2 fw classid 1:2
ifconfig ifb0 up
$TC qdisc add dev eth0 ingress
# redirect all IP packets arriving in eth0 to ifb0
# use mark 1 --> puts them onto class 1:1
$TC filter add dev eth0 parent ffff: protocol ip prio 10 u32 \
match u32 0 0 flowid 1:1 \
action ipt -j MARK --set-mark 1 \
action mirred egress redirect dev ifb0
|
The response I've got from executing that script was:
Code: | tablename: mangle hook: NF_IP_PRE_ROUTING
target: MARK set 0x1 index 0
Action 4 device ifb0 ifindex 5 |
After that, computer stoped responding. I went there (it was remote box) as soon as I could, connected keyboard and monitor to the box but screen was blank and box did not respond to any command from the keyboard. I had to reset it manually (I don't like that button on the case).
After restart I was able to reproduce that same error, but this time I saw output dying kernel put to the screen. Here it is (be aware of typos - it was a long typing exercise):
Code: | Process swapper (pid: 0, threadinfo ffff810002f70000, task ffff810002f6ae20)
Stack: 00000000fffffff4 ffff81007b49f000 ffff81007e324b80 ffffffff802e9e44
ffff8100782b2140 ffff81007e324b80 0000000000000001 ffffffff802fc3a2
ffff81007ae55260 ffff81007e324d80
Call trace: <IRQ> <ffffffff802e9e44>{dev_queue_xmit+148}
<ffffffff802fc3a2>{tcf_mirred+402} <ffffffff802fa222>{tcf_action+82}
<ffffffff8030014b>{u32_classify+187} <ffffffff8010db87>{do_IRQ+71}
<ffffffff8032f928>{arp_process+1400} <ffffffff8012714d>{activate_task+157}
<ffffffff801279be>{try_to_wake_up+862} <ffffffff8012714d>{activate_task+157}
<ffffffff802f8c07>{tc_classify+71} <ffffffff802ff35b>{ingress_enqueue+27}
<ffffffff802ea49d>{netif_receive_skb+461} <ffffffff802ea66b>{process_backlog+155}
<ffffffff802ea788>{net_rx_action+136} <ffffffff80133e01>{__do_softirq+97}
<ffffffff8010bf6a>{call_softirq+30} <ffffffff8010dbd1>{do_softirq+49}
<ffffffff8010db87>{do_IRQ+71} <ffffffff80108e30>{default_idle+0}
<ffffffff8010b2c8>{ret_from_intr+0} <EOI> <ffffffff80108e5b>{default_idle+43}
<ffffffff80109098>{cpu_idle+104} <ffffffff8048c63a>{start_secondary+1258}
Code: 0f 0b 68 6b ef 39 80 c2 4d 04 89 c8 66 31 c9 89 d2 c1 e0 10
RIP <ffffffff802e9bde>{skb_checksum_help+174} RSP <ffff810002f77cb8>
<0> Kernel panic - not syncing: Aiee, killing interrupt handler! |
So, I've quit playing around with ifb0 and mirred/action/redirect - it's just too important box.
I've made this post to inform others as well as developers and to ask where should I fill in bug report - just because I don't need this functionality any more doesn't mean this should be left as it is - very, very broken and ugly.
Code: | emerge info
Portage 2.0.54 (default-linux/amd64/2006.0, gcc-3.4.5, glibc-2.3.5-r2, 2.6.16-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.16-gentoo-r4 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Gentoo Base System version 1.6.14
dev-lang/python: 2.4.2
dev-util/ccache: [Not Present]
dev-util/confcache: [Not Present]
sys-apps/sandbox: 1.2.12
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -maccumulate-outgoing-args"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -maccumulate-outgoing-args"
DISTDIR="/mnt/storage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ ftp://mirror.etf.bg.ac.yu/gentoo/"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 acpi apache2 avi berkdb bitmap-fonts bzip2 cli crypt dri dvd eds emboss expat extensions fortran freetype gif gpm gstreamer gtk2 httpd imlib isdnlog ithreads jpeg libwww lm_sensors logrotate lzw lzw-tiff mod mysql ncurses nptl nptlonly pam pcre pdflib perl png pppd python quicktime readline reflection rrdtool sdl session smp snmp spell spl ssl tcpd threads tiff truetype truetype-fonts type1-fonts udev usb xml2 xorg zlib userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LINGUAS
|
_________________ gentoo user |
|