Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 1996 19:55:18 -0700 (PDT)
From:      Steven Frank <stevenf@thetics.europa.com>
To:        Michael Smith <msmith@atrad.adelaide.edu.au>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Socket library question
Message-ID:  <Pine.SUN.3.91.960521194339.10487A-100000@thetics.europa.com>
In-Reply-To: <199605220123.KAA00231@genesis.atrad.adelaide.edu.au>

next in thread | previous in thread | raw e-mail | index | archive | help
> How much of the kernel did you port?!   You should start by looking at what
> the original code is sleeping _on_, and find any/all wakeups that match it.

    I ported everything to do with sockets and TCP/IP, and the domain 
name resolver.  (most of net/ and netinet/ and a little of kern/) 
Fortunately it's all quite platform-independent and the only things that 
had to really be "ported" were the kernel-level calls to set the 
processing level and handle sleep queues, etc.

    The sleep in question that is not getting woken up is in the sbwait() 
function in kern/uipc_socket2.c.  It waits on the sb_cc field of the 
receiving socket buffer.  (So it should continue when more network data 
comes in, I assume.)  More data is coming in, but the sleep is not broken.

> You may have missed the code that's responsible for the appropriate wakeup.

    I am fairly sure the wakeup is in there, but it is most likely being 
blocked from execution somehow.

> It's possible that the OS/network interface that you're layering on top 
> of behaves sufficiently differently to FreeBSD that some condition/situation
> is not being met.

    I should clarify this point, actually...  The code I used for the 
base socket library and TCP stack is the "bsd-sources" located on 
munnari.oz.au.  The PPP interface came from NetBSD 1.1.  So, 
technically, it has nothing specifically to do with FreeBSD, but I have 
noticed that the socket portion of the code seems to be almost exactly the 
same across the different BSDs I have looked at.  That's why I'm 
asking on the FreeBSD mailing list, as well as several other places.  :)

    Thanks for the help.  Hope my explanation wasn't too muddled.  :)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.960521194339.10487A-100000>