Open fszyang opened 6 years ago
Issue Verification Status: Verified in SRIOV GoES version Issue Result Status: Open (Still exists)
Issue verified in the following SRIOV build:
root@invader45:/home/jignesh# goes version
github.com/platinasystems/go: v0.41-244-g49d9e6da
github.com/platinasystems/fe1: v0.2-520-g85494c1
github.com/platinasystems/firmware-fe1a: v0.2
root@invader45:/home/jignesh#
root@invader45:/home/jignesh# goes hget platina-mk1 packages | grep version:
version: 49d9e6dae2471c7d8f20f88997cd3b4578dee36a
version: 85494c17b94de997f1d2dac7a0cf21a4e76343f0
version: 60f39141fbbf78ddb2260dba74c68f2789374f18
root@invader45:/home/jignesh#
root@invader45:/home/jignesh# dpkg --list | grep kernel
ii kmod 18-3 amd64 tools for managing Linux kernel modules
ii libdrm2:amd64 2.4.58-2 amd64 Userspace interface to kernel DRM services -- runtime
ii linux-image-4.13.0-platina-mk1 4.13-117-g00814e4e1a1e amd64 Linux kernel, version 4.13.0-platina-mk1
ii rsyslog 8.4.2-1+deb8u2 amd64 reliable system and kernel logging daemon
root@invader45:/home/jignesh#
Steps:
root@invader45:/home/jignesh# cat issue98.sh
#!/bin/bash
goes stop
rmmod platina-mk1
modprobe platina-mk1
for ((i=1; i<=32; i++));
do
for ((j=1; j<=4; j++));
do
ip link add eth-$i-$j type platina-mk1
ip link set eth-$i-$j up
ethtool -s eth-$i-$j speed 10000 autoneg off
ifconfig eth-$i-$j 10.0.$i.$j/31
ifconfig eth-$i-$j:0 192.168.$i.$j netmask 255.255.255.255
ifconfig eth-$i-$j:1 172.16.$i.$j netmask 255.255.255.255
ifconfig eth-$i-$j:2 172.17.$i.$j netmask 255.255.255.255
ifconfig eth-$i-$j:3 172.18.$i.$j netmask 255.255.255.255
ifconfig eth-$i-$j:4 192.178.$i.$j netmask 255.255.255.255
# ip add add 10.0.$i.$j/32 dev eth-$i-$j
# sleep 5
done
done
goes start
root@invader45:/home/jignesh#
root@invader45:/home/jignesh# ./issue98.sh
start: (platina-mk1,vnet.ready) timeout
root@invader45:/home/jignesh#
Jul 25 06:20:03 debian goes.vnetd[22705]: eventHandler: panic vnet: fe1a alloc_slice_rule: exceeded max size 512 of rxf_rule_pool[6]
Jul 25 06:20:03 debian goes.vnetd[22705]: panic: vnet: fe1a alloc_slice_rule: exceeded max size 512 of rxf_rule_pool[6]
Jul 25 06:20:03 debian goes.vnetd[22705]: goroutine 115 [running]:
Jul 25 06:20:03 debian goes.vnetd[22705]: runtime/debug.Stack(0xc1b8a0, 0xc4248fc380, 0xc424c27590)
Jul 25 06:20:03 debian goes.vnetd[22705]: /usr/lib/go-1.9/src/runtime/debug/stack.go:24 +0xa7
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/elib/loop.(*Loop).eventHandler.func1(0xc420164418, 0xc420164970)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/elib/loop/event.go:189 +0x1c9
Jul 25 06:20:03 debian goes.vnetd[22705]: panic(0xc1b8a0, 0xc4248fc350)
Jul 25 06:20:03 debian goes.vnetd[22705]: /usr/lib/go-1.9/src/runtime/panic.go:491 +0x283
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*garbage_dump_rxf_pipe).alloc_slice_rule(0xc420a2ded0, 0xfc0, 0xc42339b080)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/dump.go:698 +0x164
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*garbage_dump_rxf_main).rxf_ip46_prefix_counter_add_del(0xc420a2ca78, 0xc42366be00, 0xc42058e068, 0xc424c297d8, 0x0, 0x0, 0xc423bf4300, 0xa)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/dump.go:868 +0xba
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*adjacency_main).install_adjacency(0xc420a2c518, 0xc420a2c578, 0xc42366be00, 0xc42058e068, 0x0, 0xc424c298f4, 0x7f3500000203, 0x0, 0x20000000001, 0xc42014d880, ...)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/fib.go:285 +0xba8
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*ip4_fib_pipe).add_del(0xc420a2fde0, 0xc424c299d0, 0x0, 0xc423bf6a48, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/fib.go:683 +0x22e
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*fe1a).ip4_fib_add_del(0xc420a14000, 0xc400000000, 0xc423bf6a48, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/fib.go:738 +0xec
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/fe1/internal/fe1a.(*fe1a).(github.com/platinasystems/fe1/internal/fe1a.ip4_fib_add_del)-fm(0xc400000000, 0xc423bf6a48, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/fe1/internal/fe1a/fib.go:155 +0x4d
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/ip4.(*fibMain).callFibAddDelHooks(0xc42058e518, 0xc400000000, 0xc423bf6a48, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/ip4/fib.go:580 +0x77
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/ip4.(*Fib).addDel(0xc42014ea00, 0xc42058e000, 0xc423bf6a48, 0x203, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/ip4/fib.go:315 +0x206
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/ip4.(*Fib).addDelReplace(0xc42014ea00, 0xc42058e000, 0xc423bf6a48, 0x203)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/ip4/fib.go:793 +0x50
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/ip4.(*Main).addDelInterfaceAddressRoutes(0xc42058e000, 0x1c7)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/ip4/fib.go:835 +0x1e9
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/ip4.(*Main).AddDelInterfaceAddress(0xc42058e000, 0x50, 0xc423bf69e8, 0x19e2800, 0xc420210b00, 0xc400000386)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/ip4/fib.go:884 +0x283
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/unix.(*netlinkEvent).ip4IfaddrMsg(0xc4207ffb40, 0xc424afc370, 0xc424afc370, 0x1)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/unix/netlink.go:574 +0x3a9
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/vnet/unix.(*netlinkEvent).EventAction(0xc4207ffb40)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/vnet/unix/netlink.go:468 +0x47b
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/elib/loop.(*nodeEvent).do(0xc423fd6040)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/elib/loop/event.go:158 +0x98
Jul 25 06:20:03 debian goes.vnetd[22705]: github.com/platinasystems/go/elib/loop.(*Loop).eventHandler(0xc420164418, 0x1970f00, 0xc420164968)
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/elib/loop/event.go:228 +0xa3
Jul 25 06:20:03 debian goes.vnetd[22705]: created by github.com/platinasystems/go/elib/loop.(*Node).maybeStartEventHandler.func1
Jul 25 06:20:03 debian goes.vnetd[22705]: /home/arthur/gopath/src/github.com/platinasystems/go/elib/loop/event.go:389 +0x271
Can be reproduced by creating 256 interfaces and assigning IP address to them (results in a glean and local entry for each)