[openbeos] Re: How far along is Haiku networking?

Axel Dörfler wrote:
mphipps1@xxxxxxxxxxxxxxxx wrote:
Haiku networking, as I have been told, is a mess. The code was created
with a strong eye on FreeBSD of that time period. The problem is that
FreeBSD, back then (2002 or so) had a lot of multi-processor issues,

AFAICT it wasn't based on FreeBSD at all, but some other BSD code, maybe it was OpenBSD I dunno - if it's directly based on it, that someone didn't bother to preserve the original license, anyway. And the only issues I know that most BSDs still have is this giant lock kernel land approach.
FreeBSD (aside from a few things we don't care about like the PS/2 keyboard driver) is now giant-lock free. The entire network stack uses fine-grained locking. The other BSDs still have horrible SMP problems (with the possible exception of Dragonfly). As to Dragonfly, I'd be hesitant to take their code for a few reasons. Dragonfly is using a kernel threading module (lwkt) which, while very interesting and possibly the better way to do things, is completely alien to the way we've done everything else in the Haiku kernel. FreeBSD, on the other hand, uses a bog-standard threads, mutexes, and semaphores any-thread-could-show-up-on-any-cpu-at-any-time implementation that could be grafted with a minimum of effort onto our kernel threading infrastructure. Axel's concerns about alien code are well-founded, and I think that Dragonfly's, while perhaps more "Be-ish" in the abstract, would either require many modifications to the system or extensive compatibility work that would remove most of the benefits of lwkt. In addition, Dragonfly still being a novelty, and FreeBSD being *very* widely used for a variety of mission-critical applications, I trust FreeBSD's stack far more. In addition, while Dragonfly has been exploring interesting new ideas, FreeBSD has added a really nice 802.11 layer as well as some other things that would be, in the long run, good for Haiku.

In short, if we were starting the kernel coding over again, we should probably have looked at doing things like Dragonfly, but for now, FreeBSD has something closest to our code that is also much better tested and with more features.
-Nathan
-Nathan


Other related posts: