Hi Ali, Thanks for your reply. It seems that the error is coming because the tx_ring clearer thinks that the nr_frags is set on the skb and also sees a frag_list. I cannot see these values getting set in the transmit path, when it pushes into the tx_queue in the xmit_frame code. In the trace I am using I should not have any fragmented packets.
I am trying to hack it now to reset the nr_frags and the frag_list and see if the problem goes, but I will dig into it more to see how these values are getting set in the first place. By the way, I am not sure how to hook up gdb to the kernel running on gem5? This is inside the kernel, so I was not sure how to run gdb on it. Thanks, Pritha ----- Original Message ----- From: "Ali Saidi" <sa...@umich.edu> To: "gem5 users mailing list" <gem5-users@gem5.org> Sent: Tuesday, May 15, 2012 12:34:41 AM Subject: Re: [gem5-users] Kernel panic in skb_release_data in put_page call You're going to have to get gdb hooked up to gem5 and see where that address is coming from and why its bad. With alpha all the kernel addresses should start with ffffc, so some how something is going wrong. You can also try sprinking printks or dprintks through the code to see where the address is being generated. Once you track how it's computed, you can see where it is loaded from and then go looking for who wrote that last and why it was wrong. Ali On 15.05.2012 01:08, Pritha Ghoshal wrote: 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 = [] ra = [] 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 [] skb_release_data+0xe8/0x120^M [] __kfree_skb+0x1c/0x120^M [] dev_kfree_skb_any+0x40/0x70^M [] e1000_unmap_and_free_tx_resource+0x30/0x80^M [] e1000_clean+0xec/0x720^M [] net_rx_action+0x1d8/0x2c0^M [] __do_softirq+0x13c/0x170^M [] do_softirq+0x74/0x80^M [] kthread+0x0/0xc0^M [] ksoftirqd+0xb0/0x170^M [] kthread+0x70/0xc0^M [] ksoftirqd+0x0/0x170^M [] 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 _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users