lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] recv function BLOCK because recv_mbox is full: can youg


From: Piero 74
Subject: Re: [lwip-users] recv function BLOCK because recv_mbox is full: can yougive me a solution?
Date: Fri, 7 Mar 2008 18:01:55 +0100

Bikram,

after changing of recvmbox size ( 8 ---> 20 !!! ) the problem seems disapper....
i tried to increase again a throughput, and i saw the problem agian.... but i had a breakpoint in my debugger in sys_arc_trypost error and debugger doesn't stop.
After your post, i check lwip code:

as you said... it's possible that mbox had problem... because there are some calls: sys_mbox_post(mbox, &msg);
this calls block forever....

i want to suggest to LWIP developer:

change ALL calls to sys_mbox_post in sys_mbox_trypost
if sys_mbox_trypost fails for a lot of time, caller drops all msgs in xxxx_mbox

if you can, forward thi idea to lwip developer...

i will continue to investigate

bye,
Piero

2008/3/7, Bikram Chatterjee <address@hidden>:
I am not sure but some times back I ran into a similar problem. I
remember to trace it back to a deadlock due to small size of mbox.

I doubt that it not recvmbox but it is mbox that is getting filled up
and posting new commands from application and driver are blocked up.

But that might not be the case here, just though it might help, at to
be eliminated as a possibility.


On Fri, Mar 7, 2008 at 9:45 PM, Piero 74 <address@hidden> wrote:
>
>
>
> 2008/3/7, Bill Auerbach <address@hidden>:
>
> >
> >
> >
> >
> > Should receive have blocked at all since there is data in the recv_mbox?  Overflowing has no bearing on a thread waiting for data when there is data already in the mbox.
>
>
> yes... it has blocked.... i tried to  use  a recv_mbox with more elemets, and the problem dosn't  happen... but  i'm thinking something to avoid this block...
>
> i don't know if can help you to understand the problem, but i saw:
>
> tcp fast timer was running and calling sys_mbox_trypost, but mbox was full... so tcp_ip thread was running, but application task was blocked... in think in sys_arch_mbox_fetch (called with timeout =0) in netconn_recv.
>
> Do you think could be usefull this:
>
> enable LWIP_SO_RCVTIMEO
> set SO_RCVTIMEO option for a socket
>
> i think (i hope) in this way sys_arch_mbox_fetch will never call with timeout =0.... what do you think?
>
> bye
> Piero
>
>
>
> >
> >
> >
> >
> >
> > Bill
> >
> >
> >
> >
> > ________________________________

> >
> > From: lwip-users-bounces+bauerbach=address@hidden [mailto:address@hidden] On Behalf Of Piero 74
> > Sent: Friday, March 07, 2008 10:02 AM
> > To: Mailing list for lwIP users
> > Subject: [lwip-users] recv function BLOCK because recv_mbox is full: can yougive me a solution?
> >
> >
> >
> >
> > Hi all
> >
> > this is my new problem:
> >
> > I have a task which calls lwip_recv with the flag MSG_DONTWAIT.
> >
> > I saw a strange situation: my recv_mbox is full, so sys_mbox_trypost return ERR_MEM, so recv_tcp return ERR_MEM and tcp packet is dropped... but recv remains BLOCKED! In this situation my code cannot check the problem and close the socket!
> >
> > I can set size for recv_mbox using high value, but it's not a solution.... can anyone explain how i can trap this problem?
> >
> > thanks,
> > Piero
> > _______________________________________________
> > lwip-users mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/lwip-users
> >
>
>
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users
>




--
Bikram Chatterjee
Senior Engineer
Alumnus Software Limited
Kolkata



_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users


reply via email to

[Prev in Thread] Current Thread [Next in Thread]