Hi Martin, On Wed, Feb 05, 2014 at 10:08:03AM +0000, Martin Townsend wrote: > Hi Alex, > > I have been testing your 6lowpan_pending branch with the fragmentation > updates (commit 5e47d2f516a6cf1acf9927125392484835d93552 - I don't think > this has the spin_lock patch below) using 2 devices pinging each other,
I thought I fix a little bit in the net branch which used the old fragmentation api. But David Miller said it already the synchornization of the fragmentation is a mess, so I decide to reimplement the fragmentation api of 6lowpan. That means you don't need this patch, I removed everything from the current fragmentation api and replace it. > one with 1000 byte ping and the other with a 777 byte ping and the good > news it was working fine for about 3/4 hour. The bad news is that it > gets to a point where something happens and then only sporadic pings are > getting through on one device and the other I've seen one ping get > through in about 10 minutes. Could this be a symptom of what your > describing here or would it completely freeze? If I stop the pings and > set them both off again withdefault packet sizes it works fine again. > As soon as I try to using a larger ping payload it becomes sporadic again. > I guess it's because the fragmentation queue and the memory managment. The new fragmentation have a garbage collector and some other things but it has basically a maximum memory size and if you reach this memory size... I don't know what happens then there. Maybe you experience this issue yet. The good news! You can change some parameters for the garbage collector and we should use some "good defaults" for 6lowpan. The bad news, you can't change these parameters at runtime (oh yea, ipv6 can do this but I dropped it... I will add the necessary sysfs entries there). Maybe you want to try it out now, then search for IPV6_FRAG_HIGH_THRESH IPV6_FRAG_LOW_THRESH in net/ieee802154/reassembly.c. This are the default values for ipv6. Currently I don't have any time to think about some default values for 6lowpan. Maybe you can help me there! It works after you stopped it because the garbage collector runs and drops many things out of the fragmentation queue. (I think). > I'll try and get some sort of tracing working to see if this shows > anything. If you have a branch with the inet_frag api changes I don't > mind trying them out too. > Give me some time, then I will create a new branch on current net-next with the necessary sysfs entries and will cleanup the code. Then I need you! If you have tested these patches for new fragmentation, then I can add a Tested-by <martin....> to these patches, so it's easier to get this patches mainline. That's a really big help :-) - Alex ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel