Hi, I am trying to use two e1000 drivers to simulate an incoming port and an outgoing port. I have the iptables setup in between to regulate traffic and let only some packets proceed to the outgoing port. I have modified the networking part of the kernel as follows: 1. I added a virtual device driver which sits on top of eth0 and eth1. 2. This device calls the iptable functions by using the NF_HOOK mechanism for all three hooks - PRE_ROUTING, FORWARD, POST_ROUTING. 3. I have removed the NF_HOOK calls from places like ip_rcv, ip_forward and ip_output, the functions that were being called through NF_HOOKS are being called directly now.
When I try to run packets through this setup, it works well till 1000 packets. In the experiment where I try to send 10,000 packets, I get a kernel panic: Unable to handle kernel paging request at virtual address 0000074a7b000000^M CPU 0 ksoftirqd/0(4): Oops 0^M pc = [<fffffc000037dde8>] ra = [<fffffc00005c8e08>] ps = 0000 Tainted: G W^M pc is at put_page+0x28/0x190^M ra is at skb_release_data+0xe8/0x120^M v0 = 0000000000000000 t0 = fffffc001da7e350 t1 = 0000000000006000^M t2 = 0000000000000001 t3 = 0000000000000068 t4 = 0008000400000000^M t5 = 0000000000000000 t6 = 0000000000000002 t7 = fffffc001f04c000^M s0 = 0000074a7b000000 s1 = fffffc001e40bbc0 s2 = 0000000000000069^M s3 = fffffc001f248000 s4 = 0000000000000068 s5 = fffffc001f37e680^M s6 = 0000000000000001^M a0 = 0000074a7b000000 a1 = 000000009da7e2d2 a2 = 0000000000000068^M a3 = 0000000000000001 a4 = fffffc001f2f6800 a5 = fffffc001da897c0^M t8 = 0000000000000000 t9 = 0000000000000000 t10= 0000000002000000^M t11= ffffffffffffffff pv = fffffc000037ddc0 at = 0000000000000020^M gp = fffffc000086fc60 sp = fffffc001f04fc38^M Trace:^M [<fffffc00005c8e08>] skb_release_data+0xe8/0x120^M [<fffffc00005c8b2c>] __kfree_skb+0x1c/0x120^M [<fffffc00005d1a90>] dev_kfree_skb_any+0x40/0x70^M [<fffffc00005470d0>] e1000_unmap_and_free_tx_resource+0x30/0x80^M [<fffffc000054c3dc>] e1000_clean+0xec/0x720^M [<fffffc00005d48f8>] net_rx_action+0x1d8/0x2c0^M [<fffffc000034450c>] __do_softirq+0x13c/0x170^M [<fffffc00003445b4>] do_softirq+0x74/0x80^M [<fffffc0000358cc0>] kthread+0x0/0xc0^M [<fffffc00003448f0>] ksoftirqd+0xb0/0x170^M [<fffffc0000358d30>] kthread+0x70/0xc0^M [<fffffc0000344840>] ksoftirqd+0x0/0x170^M [<fffffc00003110c8>] kernel_thread+0x28/0x90^M It is giving an error in put_page call in the skb_release_data function. Could someone help me in this? I am not sure how to proceed to debug this.. Thanks, Pritha _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users