USBNET: Kernel panic under high network load.

Dave Liu <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
Hello,

I did the IP forwarding test for USB->Ethernet 1 direction as below.

USB--->TSEC1 IP forwarding:

   PowerPC               LINKSYS USB200M       Generator/Capturer
+-----------------+     +-----------------+      +-------------+
|        USB port |<----| AX88172+RTL8201 |<-----|PORT1        |
|                 |     +---------------- +      |             |
|                 |                              |             |
|      Ethernet 1 |----------------------------->|PORT2        |
+-----------------+                              +-------------+

When I sent the 64 bytes size packet and if I sent packet with
throughput more than 47 Mbps, the kernel error will happen. The error
message is the flowing, the eth2 port is usb net port. I noticed that
the error message is triggered by NO available memory in the USB net
drivers, that is saying we can not alloc_skb from system. The code is in
drivers/usb/net/usbnet.c

static void rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)
{
        struct sk_buff          *skb;
        struct skb_data         *entry;
        int                     retval = 0;
        unsigned long           lockflags;
        size_t                  size = dev->rx_urb_size;

        if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) {
                if (netif_msg_rx_err (dev))
                        devdbg (dev, "no rx skb");
                usbnet_defer_kevent (dev, EVENT_RX_MEMORY);
                usb_free_urb (urb);
                return;
        }
...
}

I think the issue is happening in the usb net drivers, not USB EHCI host
drivers. If anybody have any idea, experiences or patch, please give me.
TIA.

David,
I will take a look the AX88772 issue on big endian according your
feedback. thank your help.

Regards,
Dave

===
eth2: kevent 2 may have been dropped
events/0: page allocation failure. order:0, mode:0x20
Call Trace:
[C0605930] [C00085D0]  (unreliable)
[C0605960] [C004A130] 
[C06059B0] [C0062D08] 
--- Exception: c0605a80[C06059E0] [C00631E8]  (unreliable)
[C06059F0] [C016D5A0] 
[C0605A10] [C0162794] 
[C0605A50] [C0162BCC] 
[C0605A80] [C0147E18] 
[C0605A90] [C01557F4] 
[C0605AA0] [C0156E4C] 
[C0605AE0] [C0157834] 
[C0605B30] [C0158354] 
[C0605BF0] [C0148C3C] 
[C0605C00] [C0042B90] 
[C0605C20] [C0044350] 
[C0605C40] [C00056D0] 
[C0605C50] [C000F7BC] 
--- Exception: 501[C0605D30] [C016DED0] 
[C0605D40] [C016DC2C] 
[C0605D50] [C0174D48] 
[C0605D70] [C016258C] 
[C0605D80] [C0163E00] 
[C0605DA0] [C00268C4] 
[C0605DC0] [C00264D0] 
[C0605DF0] [C000577C] 
[C0605E00] [C002657C] 
[C0605E10] [C00056D4] 
[C0605E20] [C000F7BC] 
--- Exception: 501[C0605EE0] [C0250000]  (unreliable)
[C0605F00] [C0063CB8] 
[C0605F20] [C0033488] 
[C0605F40] [C0033638] 
[C0605FC0] [C00378D0] 
[C0605FF0] [C000FF54] 
Mem-info:
DMA per-cpu:
CPU    0: Hot: hi:   90, btch:  15 usd:  14   Cold: hi:   30, btch:   7
usd:   2
Active:405 inactive:2728 dirty:0 writeback:0 unstable:0 free:184
slab:60948 mapped:186 pagetables:12
DMA free:736kB min:2036kB low:2544kB high:3052kB active:1620kB
inactive:10912kB present:260096kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 0*16kB 1*32kB 1*64kB 1*128kB 0*256kB 1*512kB 0*1024kB
0*2048kB 0*4096kB = 736kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap  = 0kB
Total swap = 0kB
Free swap:            0kB
65536 pages of RAM
1184 reserved pages
455 pages shared
0 pages swap cached
eth2: kevent 2 may have been dropped
events/0: page allocation failure. order:0, mode:0x20
Call Trace:
[C0605930] [C00085D0]  (unreliable)
[C0605960] [C004A130] 
[C06059B0] [C0062D08] 
--- Exception: c0605a80[C06059E0] [C00631E8]  (unreliable)
[C06059F0] [C016D5A0] 
[C0605A10] [C0162794] 
[C0605A50] [C0162BCC] 
[C0605A80] [C0147E18] 
[C0605A90] [C01557F4] 
[C0605AA0] [C0156E4C] 
[C0605AE0] [C0157834] 
[C0605B30] [C0158354] 
[C0605BF0] [C0148C3C] 
[C0605C00] [C0042B90] 
[C0605C20] [C0044350] 
[C0605C40] [C00056D0] 
[C0605C50] [C000F7BC] 
--- Exception: 501[C0605D30] [C016DED0] 
[C0605D40] [C016DC2C] 
[C0605D50] [C0174D48] 
[C0605D70] [C016258C] 
[C0605D80] [C0163E00] 
[C0605DA0] [C00268C4] 
[C0605DC0] [C00264D0] 
[C0605DF0] [C000577C] 
[C0605E00] [C002657C] 
[C0605E10] [C00056D4] 
[C0605E20] [C000F7BC] 
--- Exception: 501[C0605EE0] [C0250000]  (unreliable)
[C0605F00] [C0063CB8] 
[C0605F20] [C0033488] 
[C0605F40] [C0033638] 
[C0605FC0] [C00378D0] 
[C0605FF0] [C000FF54] 
Mem-info:
DMA per-cpu:
CPU    0: Hot: hi:   90, btch:  15 usd:  14   Cold: hi:   30, btch:   7
usd:   2
Active:405 inactive:2728 dirty:0 writeback:0 unstable:0 free:184



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.