This is the mail archive of the
ecos-discuss@sourceware.cygnus.com
mailing list for the eCos project.
Re: TCP/IP preemption fix
- To: Gary Thomas <gthomas at redhat dot com>
- Subject: Re: [ECOS] TCP/IP preemption fix
- From: Grant Edwards <grante at visi dot com>
- Date: Thu, 13 Apr 2000 14:40:39 -0500
- Cc: eCos Discussion <ecos-discuss at sourceware dot cygnus dot com>
- References: <XFMail.000412181304.gthomas@redhat.com>
On Wed, Apr 12, 2000 at 06:13:04PM -0600, Gary Thomas wrote:
> Can you see if these patches fix [at least] the sockbuf
> corruption problem you were seeing?
So far, it looks good.
> The basic idea I've incorporated is to use the eCos scheduler
> lock to emulate the user/kernel behaviour from the BSD world
> (i.e. kernel code cannot be preempted)
I'm still curious about DSRs causing problems by calling
cyg_drv_eth_recv (which calls ether_input). They don't mess
with socket structures, but they do allocate and free mbufs.
That should be protected by the splimp/splx calls in the MBLOCK
macro, right?
I can't see any other access to global data structures from
DSR-called routines that looks like it might be a problem.
Do splimp/splx really need to disable interrupts, or just lock
out DSRs? For my driver I'm pretty sure locking out DSRs would
suffice, but that may not be true for other ethernet drivers.
--
Grant Edwards
grante@visi.com