We are using lwip as a linux kernel module in a multi threaded environment.

Here is the sequence of events that are leading to the crash in my case.

As the application is continuously sending data, do_write continuously
calls do_writemore, which internally calls tcp_write. At some point
tcp_write returns ERR_MEM and do_write waits on semaphore op_completed.

When an ack is received from the other end, tcp_input function calls
sent_tcp which calls do_writemore, if the state of the connection is
NETCONN_WRITE. In do_writemore function access to the data pointer
(dataptr) resulting this crash.

My fix: In sent_tcp function, i am signalling the op_completed semaphore
and from do_write function i am calling do_writemore again, which is
working fine.

 What could be the reason for the crash in the first case,  is it i am
using lwip threads incorrectly ?

 Please let me know if you need any further clarification.

Thanks,
Anil











On Mon, Sep 3, 2012 at 4:32 PM, Anil kumar <[email protected]> wrote:

> Some debugging using prints is indicating that this crash is resulting
> when the available send buffer size reaches zero. The send buffer size in
> my opt.h is 32KB and the packet sizes generated by the application is 128.
>
> The available send buffer reaching zero indicates any leaks ?
>
> Thanks,
> Anil
>
>
>
>
>
> On Fri, Aug 31, 2012 at 5:13 PM, Anil kumar <[email protected]>wrote:
>
>> Hi All,
>>
>> We are using LWIP on linux platform. When we are testing it is crashing
>> repeatedly with the following crash dump.
>> Any help in this regard would be very much helpful.
>>
>>
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495042] *pde = 1bd04067
>> *pte = 00000000
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495110] Modules linked in:
>> lwip(O) ops(O) complib(O) rfcomm bnep bluetooth binfmt_misc i915
>> drm_kms_helper dr
>> m ppdev snd_hda_codec_realtek parport_pc snd_hda_intel snd_hda_codec
>> snd_hwdep i2c_algo_bit video snd_pcm snd_seq_midi snd_rawmidi psmouse
>> serio_raw snd_seq
>> _midi_event snd_seq snd_timer snd_seq_device snd soundcore snd_page_alloc
>> lp parport 8139too 8139cp r8169
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495424]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495439] Pid: 2913, comm:
>> tcpip_input_tim Tainted: G           O 3.2.2 #3                  /DG41RQ
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495504] EIP:
>> 0060:[<c12a1f2d>] EFLAGS: 00010212 CPU: 1
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495541] EIP is at
>> memcpy+0x1d/0x40
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495568] EAX: f947c78a EBX:
>> 00000064 ECX: 00000019 EDX: 0811f550
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495607] ESI: 0811f550 EDI:
>> f947c78a EBP: dbffde18 ESP: dbffde0c
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495644]  DS: 007b ES: 007b
>> FS: 00d8 GS: 00e0 SS: 0068
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495739]  00000064 f947c78a
>> 0811f550 dbffde3c f92ea0fe f92f6db4 f947c78a 0811f550
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495809]  00000064 f947c2d0
>> 00000064 f92fb930 dbffdeb8 f92f21de f92f9303 f947c78a
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495879]  0811f550 00000000
>> 00000056 c1901496 0000de66 00000064 205b0246 32313620
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.495983]  [<f92ea0fe>]
>> lwip_chksum_copy+0x3e/0x60 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92f21de>]
>> tcp_write+0x66e/0x990 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e6f74>]
>> do_writemore+0x164/0x370 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e73c0>] ?
>> poll_tcp+0xb0/0xb0 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e743f>]
>> sent_tcp+0x7f/0xc0 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92eef67>] ?
>> tcp_parseopt.isra.0+0x27/0xe0 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e73c0>] ?
>> poll_tcp+0xb0/0xb0 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92ef5d5>]
>> tcp_input+0x5b5/0xf30 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92eb562>]
>> ip_input+0x2b2/0x2d0 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e959b>]
>> ethernet_input+0x7b/0x330 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c1026288>] ?
>> default_spin_lock_flags+0x8/0x10
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c156fdbd>] ?
>> _raw_spin_lock_irqsave+0x2d/0x40
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c106ba19>] ?
>> down+0x29/0x40
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e8220>] ?
>> pbuf_free_int+0x10/0x10 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e831c>]
>> tcpip_thread+0xfc/0x160 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<f92e8220>] ?
>> pbuf_free_int+0x10/0x10 [lwip]
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c1065dcd>]
>> kthread+0x6d/0x80
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c1065d60>] ?
>> flush_kthread_worker+0x80/0x80
>> Aug 31 15:52:13 neelima-desktop kernel: [  612.496003]  [<c1576efe>]
>> kernel_thread_helper+0x6/0x10
>> Aug 31 15:52:14 neelima-desktop kernel: [  612.557620] ---[ end trace
>> 333a796a57491d86 ]---
>>
>> Thanks,
>> Anil
>>
>
>
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to