This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Net BSD network stack posix tasks -


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Alok Singh wrote:
> 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??

Why would you be calling some POSIX function from this code?  That's
most certainly not right (and is a layering violation).  What are you
trying to accomplish that the standard stack and I/O functions (e.g.
select) cannot provide?

> 
> 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,      
>     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] 
> 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 -
> 
> 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?"
> 
>> There is no issue with BSD stack. It runs perfectly fine.  
> 
>> regards,
>> Alok
> 
>> -----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 -
> 
>> "Alok Singh" <aloks@broadcom.com> writes:
> 
>>> 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.
>> (I'm not sure why this has anything to do with licensing.)
> 
>> 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.
> 
>> 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.
> 
> 
> 
> 

- --
- ------------------------------------------------------------
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

iD8DBQFGXZtbmaKbSsQGV8ARAtyGAJ4rc3vaIGDEDEWNN5VOPOPkN5nLBwCgmd+N
v914Bs1vf3lDuVzapG7iqJk=
=4sqX
-----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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]