Re: [PATCH v6] net: add Faraday FTMAC100 10/100 Ethernet driver
flat view
From: Po-Yu Chuang <hidden>
Date: 2011-03-01 05:20:27
Also in:
lkml
Hi Eric, On Fri, Feb 25, 2011 at 7:40 PM, Eric Dumazet [off-list ref] wrote:
Le vendredi 25 février 2011 à 17:57 +0800, Po-Yu Chuang a écrit :quoted
From: Po-Yu Chuang <redacted> FTMAC100 Ethernet Media Access Controller supports 10/100 Mbps and MII. This driver has been working on some ARM/NDS32 SoC's including Faraday A320 and Andes AG101. Signed-off-by: Po-Yu Chuang <redacted>It seems fine to me, but I have somes questions 1) On V5, the receive function ftmac100_rx_packet() was able to process several segments per skb. On V6 you process one frag only. Isnt this NIC able to handle large MTU (say... 9000) ?
No, it isn't. Its max supported packet size is 0x7ff (2047 bytes). I wasn't sure when will get multi-segment packet. After confirmed with HW designer two weeks ago, he told me that only if the rx buffer described by the first descriptor is not big enough, another rx buffer will be used. That means, since every rx buffer is large enough, it is impossible to get a multi-segment packets. So I simplified ftmac100_rx_packet().
2) ftmac100_alloc_rx_page() is called and allocate a full page for a rxdes. 128*4K -> 512 Kbytes of memory for RX ring In V5, you were using half pages only, so 256 kbytes of memory. If you look at other drivers (NIU, BENET), they are able to use exactly 128*2 kbytes (for a rxring of 128 slots, and 2Kbytes per slot)
Both NIU and BENET refill rx ring after all packets receive work done, but I allocate rx buffer right after a packet is received. I think it is difficult to use a page for two rx buffers in my driver now. Can we just keep it the way it is? I can study how to achieve that after current driver is accepted. best regards, Po-Yu Chuang