I am arriving at the same conclusion. Platform: MIPS Ticks from support.c:
int hz = 100; int tick = 10000; // usec per "tick" Thanks. MHK > Perhaps I'm missing the point here, but when faced with an instance of a > consisently full queue, I have been taught to investigate the process(es) > that are to service that queue. > Given the limiting factor of 100 frames /sec. one can pretty much rule out > CPU cycle saturation as the root problem (unless we're using a Z80 > timeframe > CPU or other really old HW), one has to ask if the blockage is due to > some > thread priorites, or the like blocking the servicing of the queue? > > what is the platform, and what is the "tick interval" > > ---- Original Message ----- > From: <[EMAIL PROTECTED]> > To: <ecos-discuss@ecos.sourceware.org> > Sent: Monday, September 19, 2005 5:46 PM > Subject: [ECOS] Re: Urgent Help: ether_demux function > > >> Hi Gary and Andew, >> >> I can see what the issue is, but I do not know how to solve. From my dsr >> I >> call: >> >> while ( !(pDevCtrl->rxBds[pDevCtrl->rxHeadIndex].status & DMA_OWN) >> (sc->funs->eth_drv->recv)(sc, pDevCtrl .....); >> >> this loops through as long as packets are coming and I checked from >> eth_drv.c the function ether_input.c is being called which calls >> ether_demux. >> >> ether_demux queue them in ip_input queue and schedule a software >> interrupt >> for ipintr to pick up the packets in the queue. if packets are coming >> beyond 100 packets/sec, then software interrupt is NOT generated and >> after >> first 50 packets received, all are dropped. ipintr is called at the end >> and at that time only first 50 packets are in the queue. >> >> Need help please. Thanks. >> >> Michael >> >> >>> On Fri, Sep 16, 2005 at 12:35:08PM -0700, [EMAIL PROTECTED] wrote: >>>> I know that it is dropping packets because IF_QFULL(inq) is full. This >>>> does not seem correct to me since eCos should handle more traffic than >>>> 100 >>>> packets/sec. >>>> >>>> Is there any issue with the driver or need to turn something on to >>>> make >>>> this happen. >>>> >>>> Thanks. >>>> >>>> michael >>>> >>>> ---------------------------- Original Message >>>> ---------------------------- >>>> Subject: ether_demux function >>>> From: [EMAIL PROTECTED] >>>> Date: Fri, September 16, 2005 12:10 pm >>>> To: ecos-discuss@ecos.sourceware.org >>>> -------------------------------------------------------------------------- >>>> >>>> Hi Gary, >>>> >>>> Do you have any idea, why ether_demux drops packets when more than 100 >>>> packet per second are sent via the driver (with 100 packets/sec with >>>> length of 60bytes each, no issues). Basically it only allows exactly >>>> 50 >>>> packets thru and drops the rest. Thanks. >>> >>> You need to find out why the queue is overflowing. What is supposed to >>> take packets out of the queue? Why is it not? It sounds like a problem >>> with the transmit functions in your ethernet driver. >>> >>> Andrew >>> >> >> >> >> -- >> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos >> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss >> >> > > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss