lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 13 Mar 2013 06:57:38 +0100 From: Eric Dumazet <eric.dumazet@...il.com> To: Michael Büsch <m@...s.ch> Cc: Eric Dumazet <edumazet@...gle.com>, linux-netdev <netdev@...r.kernel.org>, "David S.Miller" <davem@...emloft.net> Subject: Re: atl1c issues on 3.8.2 On Tue, 2013-03-12 at 18:09 +0100, Michael Büsch wrote: > On Tue, 12 Mar 2013 16:45:44 +0100 > Eric Dumazet <eric.dumazet@...il.com> wrote: > > > On Tue, 2013-03-12 at 16:17 +0100, Michael Büsch wrote: > > > Hi, > > > > > > Starting with 3.8.x scp stalls the atl1c based interface on my Asus Eeepc 1011px. > > > iperf (for example) does not do that. But after scp stalled the interface, > > > iperf transfers fail, too. > > > > I am pretty sure David stable list contains the needed fix > > > > http://patchwork.ozlabs.org/bundle/davem/stable/?state=* > > No this didn't fix it. > > However, I tried to revert 69b08f62e17439ee3d436faf0b9a7ca6fffb78db again, > which already caused trouble for me in 3.7 > and this fixed the issue. > > So it seems that this still is the same or a related issue that I reported > for 3.7. I just wrongly stated that the problem was fixed in 3.8, because my > simple ping test doesn't catch it on 3.8. > kmalloc(2000) never had the guarantee that the result would not span two 4K pages. Apparently the NIC doesn't allow a rx descriptor spanning two 4K pages or has a particular hardware bug that I can not possibly find myself. (I don't have atl1c nor any documentation) atl1c driver authors will need to find the bug and fix the driver. Drivers that deal with this kind of hardware limitation allocates page themselves and provide skbs with a fragment to upper stack, or use build_skb() once the frame is received. drivers/net/ethernet/intel/igb/igb_main.c is a an example. Could you try (on net-next tree) different values for the NETDEV_FRAG_PAGE_MAX_ORDER constant, as it might give to Atheros some hints ? (8192 & 16384) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 821c7f4..769fdac 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1844,7 +1844,7 @@ static inline void __skb_queue_purge(struct sk_buff_head *list) kfree_skb(skb); } -#define NETDEV_FRAG_PAGE_MAX_ORDER get_order(32768) +#define NETDEV_FRAG_PAGE_MAX_ORDER get_order(8192) #define NETDEV_FRAG_PAGE_MAX_SIZE (PAGE_SIZE << NETDEV_FRAG_PAGE_MAX_ORDER) #define NETDEV_PAGECNT_MAX_BIAS NETDEV_FRAG_PAGE_MAX_SIZE -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists