From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25798 invoked by alias); 30 May 2007 15:35:04 -0000 Received: (qmail 25783 invoked by uid 22791); 30 May 2007 15:35:03 -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; Wed, 30 May 2007 15:34:54 +0000 Received: from lvl7in-mail01.lvl7.com ([10.240.1.18]) by lvl7-trend01.lvl7.com with InterScan VirusWall; Wed, 30 May 2007 11:34:49 -0400 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Wed, 30 May 2007 15:42:00 -0000 Message-ID: References: <465D6725.9010502@mlbassoc.com> From: "Alok Singh" To: "Gary Thomas" 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] Net BSD network stack posix tasks - X-SW-Source: 2007-05/txt/msg00175.txt.bz2 Gary, To give an example, I'm required to make a posix call in the end_send function below. end_send will be called by the network stack to send the out to Ethernet driver( layers below network layer to be precise). What will be happen in this case? Wouldn't the system crash because of it?? ETH_DRV_SC(end_sc0, &end0_priv_data, // Driver specific data ETH_NAME, // Name for this interface end_start, end_stop, end_ioctl, end_can_send, end_send, end_recv, end_deliver,=20=20=20=20=20=20 end_poll, end_int_vector); NETDEVTAB_ENTRY(end_netdev0, "device_end0", end_drv_init, &end_sc0); ***************** end_send() { ------------------------------- pthread_cleanup_push(); ---------------------------- } regards, Alok -----Original Message----- From: Gary Thomas [mailto:gary@mlbassoc.com]=20 Sent: Wednesday, May 30, 2007 5:30 PM To: Alok Singh Cc: ecos-discuss@ecos.sourceware.org Subject: Re: [ECOS] Net BSD network stack posix tasks - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alok Singh wrote: > Thanks for all the suggestions. My only issue is, and a simple one, that > if I want to send a packet out of the device in the network thread > context, then I've problems. We have our implementation of message > queues, mutexes, and other stuff that all use POSIX calls. So the code > crashes, since I'm trying to make posix calls (while putting the packet > in the message queue, and using mutexes), in the context of native cyg > thread context. To overcome this problem, I'm queuing the packet coming > out of the network stack, and then another posix thread de-queues the > packet, and sends it out. This is working fine except that performance > is not that good, and some fine tuning is required. In the limited > testing I did while sending the packet out in the context of network > thread, the performance is better, and suits my purpose. Sorry, but this description doesn't make a lot of sense (to me at least). There should be no difference doing network I/O from a POSIX thread and a native eCos thread. Everything should boil down to socket I/O, which is the API exported by the network stacks. Perhaps you can explain in more detail, or provide some code snippets. What do you mean by "send a packet out of the device in the network thread context?" >=20 > There is no issue with BSD stack. It runs perfectly fine.=20=20 >=20 > regards, > Alok >=20 > -----Original Message----- > From: ecos-discuss-owner@ecos.sourceware.org > [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Nick > Garnett > Sent: Tuesday, May 29, 2007 10:56 PM > To: Alok Singh > Cc: ecos-discuss@ecos.sourceware.org > Subject: Re: [ECOS] Net BSD network stack posix tasks - >=20 > "Alok Singh" writes: >=20 >> Hi, >> I don't understand licensing issues much. I've a question. Am I > allowed >> to convert network stack threads to posix threads instead of native > cyg >> threads? I've compatibility issues making ecos network stack work > with >> my application (Posix based.) Though there are ways to overcome this >> issue, but they affect the performance of the system. >=20 > (I'm not sure why this has anything to do with licensing.) >=20 > The network threads are internal to the stack. POSIX threads are for > running application code. The network threads will never run > application code and so don't need to be POSIX threads. The network > threads work perfectly well alongside POSIX applications without > needing to be POSIX threads themselves. >=20 > I don't know what problems you are having, but your suggestion is > almost certainly the wrong solution. It sounds to me like you are > trying to do something that eCos doesn't support. Tell us what the > problem is and maybe someone can offer a better solution. >=20 >=20 - -- - ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world - ------------------------------------------------------------ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFGXWckmaKbSsQGV8ARAr3GAKCCnOVJk6HLJcYN9wLLJSVzJLAOlgCgqeUN +tgYjbY2PUR/MndJIzNO3GM=3D =3DK/bm -----END PGP SIGNATURE----- -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss