From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3210 invoked by alias); 2 Jun 2007 00:16:06 -0000 Received: (qmail 3200 invoked by uid 22791); 2 Jun 2007 00:16:05 -0000 X-Spam-Check-By: sourceware.org Received: from mx2.lvl7.com (HELO lvl7-trend01.lvl7.com) (66.192.95.83) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 02 Jun 2007 00:16:03 +0000 Received: from lvl7in-mail01.lvl7.com ([10.240.1.18]) by lvl7-trend01.lvl7.com with InterScan VirusWall; Fri, 01 Jun 2007 20:15:59 -0400 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Sat, 02 Jun 2007 00:16:00 -0000 Message-ID: References: <20070601230438.GG5944@lunn.ch> From: "Alok Singh" To: "Andrew Lunn" Cc: Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: RE: [ECOS] Delay in procesing packet across the BSD stack - X-SW-Source: 2007-06/txt/msg00028.txt.bz2 Andrew, I don't say it's a bug, but worth while to take a look at. My problem is solved, when I made certain modifications in BSD stack.=20 In ether_demux(), we call schednetisr(NETISR_IP) for IP packet( or for that matter for any type of packet) before enqueuing the packet, by way of calling IF_ENQUEUE(inq, m). ENQUEUE will be done only at the end of the ether_demux(). So cyg_netint() waiting via cyg_flag_wait() will come alive, and calls corresponding ISR, that is ipintr() for our case. It will try to dequeue the packet, but finds none, because enqueue is not done still. I changed the logic to call schednetisr() after enqueuing the packet. And things work fine. Now it is really strange why others don't see the problem. May be some other conditions match for others, that don't match for me. But I think what I'm doing is logical correct. Am I allowed to make these changes to my ecos?? regards, Alok -----Original Message----- From: Andrew Lunn [mailto:andrew@lunn.ch]=20 Sent: Saturday, June 02, 2007 4:35 AM To: Alok Singh Cc: ecos-discuss@ecos.sourceware.org Subject: Re: [ECOS] Delay in procesing packet across the BSD stack - On Sat, Jun 02, 2007 at 04:30:00AM +0530, Alok Singh wrote: >=20 > Hi, > I'm seeing a strange problem on my Box.? I'm using Free BSD stack. The issue is that when I send icmp requests from a single client to the box, the stack doesn't respond in time.? But when I start sending icmp requests from another client, the stack starts sending 100% ICMP echo replies.? I'm currently debugging the system. I've seen that if I send echo requests very slowly, then invariably client times out. When I send icmp request from another client, it sorts of kick something in the stack, and the echo reply to the previous request packet also comes out. ?? >=20 > I'm debugging the system. But if you have some suggestions for me, let me know. Check your interrupts are working correctly. It sounds like you are loosing interrupts, probably TX complete, so the next packet is not getting sent until the next RX happens. 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