From: Jean T. <jt...@bo...> - 2003-09-02 16:57:33
|
On Tue, Sep 02, 2003 at 01:32:23PM +0200, Guennadi Liakhovetski wrote: > Hello all > > This is, essentially, a re-send of our report + patches, originally sent > on the 22nd on August. This time the patch is split in 4 logical pieces, > besides, we send a copy of this message to Jean Tourrilhes, since we > believe, that the issues raised here are important enough. > > We have a StrongARM-1110-based device, that has to build and break Ir > (FIr) connections multiple times, staying online, and, in parallel, we > issue multiple ifconfig requests both to irda0 and ppp0 interfaces. And > then straight away, we've got all the problems - memory leaks, races,... > We've gone the way from 2.4.13 to 2.4.21, fixed a few bugs ourselves > (patches come in separate emails), but there are still a few left. With > 2.4.21 + 2 more patches from 2.4.22-pre* (with or without our patch) our > system leaks memory, and, typically, Oopses after some time in iriap.c in > iriap_getvaluebyclass_request(). What happens, is the following: in > irnet_discover_next_daddr() iriap_open() is called, which allocates and > initialises a iriap_cb structure, then iriap_getvaluebyclass_request() is > called, but there data in the structure is corrupted. Which looks like a > race condition, which we can't understand so far. First time it ended up > with a BUG() in skb_over_panic(), second time the pointer to the callback > function went wrong. Also interesting, that 2.4.13 with the same patches > runs "stable" (i.e. without Oopses) until OOM. Here are the 2 decoded > Oopses with comments: I just came back from vacation under a deluge of e-mails. Yes, the IrDA stack in 2.4.X contains various memory leaks and locking problems. Those have been mostly fixed in 2.6.X. It might be possible to backport the IrDA stack from 2.6.X in a 2.4.X kernel. I will try to look over your patches later. Jean |