help w/panic under heavy load - 5.4
Edwin
edwin at verolan.com
Sat Jul 23 13:53:24 GMT 2005
comments in-line.
Giorgos Keramidas (keramida at freebsd.org) wrote:
>
> This looks rather strange. ip_fastforward() should pass an mtu of 1500
> but somehow the negative strange value gets passed. It would be
> interesting to see the value of ``mtu'' in frame 13 too, if you still
> have this crash dump stored somewhere.
included right below - i have a few other questions while i'm looking @ these
- the value of hlen (looks from the code that it should be ip->ip_hl << 2 (5*4=20 right?)
not some large -value - plus the value of hlen is sortof close to crazy mtu value
- ip->ip_len = 10240 ??? not sure why this would be either
- i think mtu should have a value of 1500 here - both the ifp struct and ro struct
have values of 1500, but even if it did have a value of 1500 - since
ip->ip_len = 10240 - it's still going to drop through to else of line 542
(ie. ip->ip_len <= mtu) which leaves either can't frag/drop or frag (where
we are i think) - unless I'm missing something
(kgdb) f 13
#13 0xc06933c1 in ip_fastforward (m=0xc12e6c00) at /usr/src/sys/netinet/ip_fastfwd.c:572
warning: Source file is more recent than executable.
572 if (ip_fragment(ip, &m, mtu, ifp->if_hwassist,
(kgdb) i loc
ip = (struct ip *) 0xc12f700e
m0 = (struct mbuf *) 0xc12f700e
ro = {ro_rt = 0xc11f8420, ro_dst = {sa_len = 16 '\020', sa_family = 2 '\002',
sa_data = "\000\000�\002\005\000\000\000\000\000\000\000"}}
dst = (struct sockaddr_in *) 0xc76bfc3c
ia = (struct in_ifaddr *) 0x0
ifa = (struct ifaddr *) 0x0
ifp = (struct ifnet *) 0xc0f91800
odest = {s_addr = 84060352}
dest = {s_addr = 84060352}
sum = 0
ip_len = 0
error = 84060352
hlen = -1057417216
mtu = 0
__func__ = "ip_fastforward"
(kgdb) p *ip
$1 = {ip_hl = 5, ip_v = 4, ip_tos = 0 '\0', ip_len = 10240, ip_id = 61249, ip_off = 0, ip_ttl = 63 '?', ip_p = 17 '\021', ip_sum = 31921, ip_src = {s_addr = 67479744}, ip_dst = {s_addr = 84060352}}
(kgdb)
>
> You are not running a kernel with optimization and/or architecture-
> dependent optimization flags, right?
>
ntiko - i have added CPU_GEODE/CPU_SOEKRIS to my config - but same crash on the generic
config as well..this is a soekris net4801 box (w/ geode proc - i586). generic
'make buildkernel KERNCONF=D1-0722' command line (ie no other make/compiler options).
mbsd05# diff /root/kernels/D1-0722 /root/kernels/GENERIC
21,22d20
< makeoptions DEBUG=-g
<
24c22
< #cpu I486_CPU
---
> cpu I486_CPU
26,27c24,25
< #cpu I686_CPU
< ident D1-0722
---
> cpu I686_CPU
> ident GENERIC
31,48d28
<
< options KDB
< options DDB
< options INVARIANTS
< options INVARIANT_SUPPORT
<
< options CPU_SOEKRIS
< options CPU_GEODE
<
< options HZ=1000
< options DEVICE_POLLING
<
< options IPFIREWALL
< options IPFIREWALL_VERBOSE
< options IPFIREWALL_VERBOSE_LIMIT
< options IPFIREWALL_DEFAULT_TO_ACCEPT
< options DUMMYNET
< options IPDIVERT
mbsd05#
More information about the freebsd-hackers
mailing list