Igalia / snabb

Snabb Switch: Fast open source packet processing
Apache License 2.0
47 stars 5 forks source link

Error on compiling a 40M softwires binding-table #1149

Open dpino opened 6 years ago

dpino commented 6 years ago

I got the following error when trying to compile a configuration file which contains 40M softwires on its binding-table:

$ sudo ./snabb lwaftr run --name lwaftr --cpu 10,11 --conf lwaftr-40m.conf --on-a-stick 82:00.1
Migrating instance 'test' to '82:00.1'
hugetlb mmap failed (Cannot allocate memory), falling back.
hugetlb mmap failed (Cannot allocate memory), falling back.
core/lib.lua:57: attempt to index local 'f' (a nil value)

Stack Traceback
===============
(1) Lua metamethod '__index' at file 'core/main.lua:170'
    Local variables:
     reason = string: "core/lib.lua:57: attempt to index local 'f' (a nil value)"
     (*temporary) = C function: print
(2) Lua field 'firstfile' at file 'core/lib.lua:57'
    Local variables:
     command = string: "ls -1 /sys/bus/pci/devices/0000:82:00.1/net 2>/dev/null"
     what = string: "*l"
     f = nil
     (*temporary) = string: "ls -1 /sys/bus/pci/devices/0000:82:00.1/net 2>/dev/null: Cannot allocate memory"
     (*temporary) = nil
     (*temporary) = nil
     (*temporary) = string: "attempt to index local 'f' (a nil value)"
(3) Lua field 'device_info' at file 'lib/hardware/pci.lua:49'
    Local variables:
     pciaddress = string: "82:00.1"
     info = table: 0x41bdd1d8  {pciaddress:82:00.1, driver:apps.intel_mp.intel_mp, tx:output, rx:input (more...)}
     p = string: "/sys/bus/pci/devices/0000:82:00.1"
(4) Lua upvalue 'f' at file 'program/lwaftr/setup.lua:296'
    Local variables:
     c = table: 0x41bdc550  {links:table: 0x41bdc5d8, apps:table: 0x41bdc578}
     conf = table: 0x4058ce10  {softwire_config:table: 0x4058ce98, alarm_notification:true}
     args = table: 0x41bdcae0  {v6_nic_name:b4sideNic, v4v6:false, v4_nic_name:inetNic}
     pciaddr = string: "82:00.1"
     id = number: 1
     queue = table: 0x405994f8  {external_interface:table: 0x40599580, internal_interface:table: 0x4059cfb0 (more...)}

To generate the binding-table:

$ sudo ./snabb lwaftr generate-configuration --output lwaftr-40m.conf 193.5.1.100 634960 fc00::100 fc00:1:2:3:4:5:0:7e 6

This binding-table has two queues as it's aimed to run using 2 cores. Here's the information of the instances:

   instance {
      device test;
      queue {
         id 0;
         external-interface {
            ip 10.0.1.1;
            mac 52:52:00:00:01:29;
            next-hop {
               mac 02:99:99:99:99:99;
            }
            vlan-tag 364;
         }
         internal-interface {
            ip fc00::100;
            mac 52:52:00:00:91:02;
            next-hop {
               mac 02:99:99:99:99:99;
            }
            vlan-tag 325;
         }
      }
      queue {
         id 1;
         external-interface {
            ip 10.0.1.1;
            mac 52:52:00:00:01:29;
            next-hop {
               mac 02:99:99:99:99:99;
            }
            vlan-tag 364;
         }
         internal-interface {
            ip fc00::100;
            mac 52:52:00:00:91:02;
            next-hop {
               mac 02:99:99:99:99:99;
            }
            vlan-tag 325;
         }
      }
   }