FreeBSD SMPng Interview with Scott Long
animus9 writes "There's an interesting interview with Scott Long over at the ONLamp.com. Scott explains the difference between the various locking methods, and the current status of SMP in FreeBSD 5. He also compares the new SMP implementation with that of FreeBSD 4.x, NetBSD, DragonFly, and Linux. Other items touched upon include scalability, the status of KSE & ULE, and much more."
I must say that reading this interview only reinforced my gut feeling that FreeBSD and other BSD variants start to look as a viable alternative to Solaris and Linux. This is consistent with the attitude in my company. To make a long story short, I received the email first thing in the morning from the IT department. Our network would be undergoing a major overhaul to correct the ad hoc growth it had experienced in the last year, and starting next week Internet access would be sporadic. There would also be a new firewall and security measures, replacing the old OpenBSD system I'd managed to get installed last Spring. Happy for the heads-up, I went to work right away to make sure Linux had no place on our network. This was not the first time that I had faced this threat.
One day about a year ago our network guy gets asked to draw up firewall plans for this subnet of servers we have. Our network guy was your typical GNU-slinger save that he had a cascade of flowing hair down the back of his head and not a beard hanging from his face. And yeah, you can guess what he thought those firewalls were gonna run. Fast forward two days. I'd caught wind of the plans and had charts, graphs, and comparisons written up detailing OpenBSD and Linux security. Since this GNU guy had a mullet and dressed like a slob, I got taken seriously. Not to mention my data, impenetrable by any hippy "logic." OpenBSD was the more secure, even to the beancounters and idtiot management. So thanks to me, our firewalls happily run OpenBSD and not Linux, which would have buffer-overflowed into no-man's land every other hour. The Open Source Mullet gives me a lot of dirty looks lately.
Since the Open Source Mullet had been canned, a new threat had arisen at my workplace: the Fat Perl Hacker had assumed most of the Open Source Mullet's system and network administration duties, and it was no mystery to anyone at my workplace that he had a hard-on for Linux tucked away under his enormous, cascading gut. Since he was a major suck-up and workaholic, he had a lot more credibility than the Open Source Mullet this would be a real challenge for once. Dealing with the Open Source Mullet had been cake.
That night, I went to work on my strategy. First, I would document the changes in Linux and OpenBSD since a year ago when we last went with a security plan. Linux was still at version 2.4, while OpenBSD had raced from version 2.8 to 3.1 a major revision! This was good so far, and I included the relevant diffs for each. I wondered what the Fat Perl Hacker was up to and pushed ahead with my preparations.
Tuesday morning, I went to talk with the VP of Operations, who had final say on the network project. I wouldn't leave anything to chance. But after chatting with him for a few minutes, I learned of a major monkey-wrench I hadn't expected: instead of a Unix firewall system, he was planning on installing a dedicated firewall box running Windows XP. Thankful for my fortuitous social engineering, I went back to my desk and began making over my strategy to deal with this new threat. Not only would I have to deal with Linux, I'd have to eschew the Windows option now.
Sitting in front of my iBook after work, I realized that taking on Windows XP in the same manner I was going to deal with Linux would be foolish if not wasteful. Obviously the Windows option was not about numbers, anecdotes, or experience. It was a bean-counting decision and all of the security statistics in the world wouldn't matter. Since I hadn't the foggiest about how our accountants viewed the whole operation and didn't have time to learn, I'd have implement a rapid-fire real-life assault on the Windows box, which was sitting on the VP's desk awaiting its place on the network. It was time to put on my Black Hat, and that night I stayed up until 02:00 researching Windows XP vulnerabilities. Linux would have to wait.
With just two days before the network changeover was to take place, I marched into work Wednesday morning knowing
"First they ignore you. Then they laugh at you. Then they fight you. Then you win." by M. Gandhi.
This phrase has often be used to describe the MS Windows - Gnu/Linux relationship.
It seems to mee some of the Linux zealots forgot there heritage.
Forgot that Linux is just a kernel without GNU.
Forgot that there could not have been there, where there are now, without the BSD licensed software.
Forgot what free software was all about.
I'll stick to my BSD's at least there is some real progress there without the attitude.
This article discusses FreeBSD's preference for sleep locks as versus the spin locks in Linux.
Anybody know why Linux went for the spin lock approach? What are the relative merits?
There's been seven BSD articles on slashdot since the beginning of the year.
;)
And apache? Nothing. Last year, just after Christmas, a bit about test mod_perl (and that's barely apache).
BSD is doing fine. Apache is dying.
>> Being able to read *other people's* source code is a nice thing, not a 'fundamental freedom'.
:)
> Unless that code is *running* on YOUR COMPUTER!
I don't think so. If the author of the software is ready to take the responsibility of what his software does, that's quite acceptable to me, since in case of a malicious behaviour of his software I can sue him.
Of course, having the source code is way better. But it's a desirable thing, not something absolutely necessary - let alone a "freedom".
Example: as a browser, I use both Firefox and Opera. The fact that Opera is proprietary doesn't bother me at all.
It's like with the food I eat: I need the ingredients (assurance on what the software *does*), not the recipe (source code). If I get the recipe as well, so much the better.
That's how I see it.
--
Being able to read *other people's* source code is a nice thing, not a 'fundamental freedom'.
"I'll stick to my BSD's at least there is some real progress there without the attitude."
Which BSD is that? From what I have seen BSD is not lacking in attitudes.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
It isn't even worth arguing whether or not this study is flawed. Until somebody at least claims to find that Firefox has more than a single-digit market share, any report that Firefox is "gaining ground" is just hype, and actually hurts the product.
I disagree with zealotry in any form, and that includes ignoring Linux as an alternative when it's actually pretty decent at a lot of things.
However, the 2.6 kernel has been a mess from day one. I'm used to new versions being a bit buggy, but the kernel developers keep adding new bugs.
First, there was that memory leak with burners. Now more recently they've been moving to libata, and that prevents SATA and PATA drives from being used at the same time on my system because libata does not yet support PATA drives, and all the ATA controllers are on the same chipset. I've had to install an old Promise ATA controller to have a CD drive on my system.
They say it's up to the distributions to stabalize their own kernels, but the distributions clearly don'thave the resources to do that.
Time to fork 2.7 guys!
I rarely criticize things I don't care about.
"Their" is a correct correction, "they" IMHO is not, that was a reference to a place/position. Fine example that you could read english, know the grammar but not understand wat it all ment.
IMHO the corrections were both right, but they were made just to draw the attention away from what you were saying. ;)
Don't fall for it..
--
Requiem for the FUD
The frequency of releases seems to be in inverse proportion to quality. Linux releases half-arsed 'stable' releases which may not even work very frequently. The three 'definitive' BSDs typically release twice a year (this is a hard-coded tradition for Open*) and, excusing the developmental nature of FreeBSD 5.x, these are very solid and already have a full package tree and ready documentation, etc. which Linux never has had.
DragonFly has made one major release and another is on the horizon (if you read the lists or talk in #dragonflybsd on efnet). The first had an installer bug, they fixed it and released a new one immediately. The next should be in much better shape as the system is getting much more contribution and testing now (heck, even I submitted a trivial patch in response to joerg's request for GMP->OpenSSL arbitrary precision math translation).
It's the difference between the intelligent man who sits quietly and the idiot who never shuts up. "Those who release the worst, release it the most often".
Sam ty sig.
What RAID cards are you having trouble supporting? As far as I've seen the gap between Linux supporting a device and Free/NetBSD (I don't track Open) supporting the same device is down to at most a month, and not necessarily with the BSDs behind (especially since they have full-featured releases and snapshots, whereas Linux /distributions/ have to catch up to support the new hardware out of the box).
Linux drivers: "it compiles and works well-enough on the architecture I tried it in, it's going in the stable tree"
FreeBSD drivers: "it works stably on the architectures it's possible to use in, and not too many PRs are filed about it; it's going in the stable tree"
NetBSD drivers: "it is abstracted to work properly regardless of architecture or topology, PRs aren't being filed, and it's had time to stew; it's going in the stable tree"
Me, I'm still waiting for the cdce driver to be MFC'd in netbsd-2 so I can consider using it in place of a Linux install working as a make-shift but must-work-well gateway I manage for a friend. I'm avoiding running -current because a lot of work is going to go in that might cause instability. None of this helps you but it's worth talking about.
Sam ty sig.
Why not run NetBSD/xen? In -current it even has initial support for Xen 2.
And if you follow the development you'll note it's a much better contender for making use of the platform anyway. NetBSD's simpler algorithms and amazingly good code work well where you have to minimize the raw overhead, which is useful for virtualization like Xen. FreeBSD's advantages are thinning out fast.
Sam ty sig.
Open isn't perfect. I had a problem where you could crash the machine by doing a ping flood on a Intel PRO/1000MT gigabit card. That was 3.5-stable. It's closer to NetBSD than FreeBSD though.
Of course, on Linux 2.6 it's a good day where there *isn't* some horrible flaw.
I rarely criticize things I don't care about.
What's your problem? I said initial support, which is true: http://www.feyrer.de/NetBSD/blog.html#20050121_142 7
And I was already aware of those 'problems', but if every time something like that came up the whole project was abandoned, do you think any of the projects would be where they are?
And it's not trolling to say FreeBSD is losing its lustre. That's actually entirely true. It's not dead yet, and it might recover, but in the mean time, there are much better alternatives to running FreeBSD 5. NetBSD 2 is one, DragonFly is another, hell even Linux has been more stable lately. I also said all of these things MUCH earlier than that benchmark was released, it just happens to support the argument.
Why do you have to call any observation which puts one project ahead of another a troll? It doesn't even look like you read what I said.
Sam ty sig.
What's wrong with the grammar? Try re-reading.
And no, Linux has never had a full package tree, because LINUX IS NOT AN OPERATING SYSTEM. It's a kernel. DISTRIBUTIONS have package trees, but they don't release at the same time new kernel versions do, so being able to install a distro from the latest kernel isn't always possible until the next release; this becomes important when your installation requires new drivers only found in the latest kernel.
FreeBSD's SMP is not substandard, by all rights it's one of the better free ones, its entire code base just needs a LOT more work before it's 'there'. And I doubt you'll find a definitive SMP 'standard' there too. What, Linux is the standard for everything? Looks like all the BSDs have super-standard security, quality assurance, release engineering, consistency, documentation and developer support. I'll also remind people that eth1394 (Linux ip-over-firewire driver) is less than half as fast as FreeBSD's fwe and fwip, and has not improved in this regard since 2.4 days. Hardly anyone even notices; but benchmark it on your home machines and just TRY to get netperf to report more than 116Mb/s throughput.
Sam ty sig.
OpenBSD basically needs a bigger contributing (at least PRing) user base. So does NetBSD of course. The number of developers is fine in both because they are talented and can work together (oppose thousands of Linux devs who still can't engineer for stability), but the user bases are too small to really test everything at once.
Shame isn't it? With Linux stealing the spotlight all the other more deserving projects are left lacking users.
Sam ty sig.
Not my point actually. My point is that you insist everything in Linux MUST be perfect, because it's Linux, and everything in BSD MUST be 'SUBSTANDARD', becuase it's in BSD.
I am well aware of all the failures in FreeBSD 5. But it's SMP design is not sub-standard. There is no standard. Let's say there are 5 major free OS players that just about everyone can name: Linux, FreeBSD, DragonFly BSD, NetBSD and OpenBSD. Linux and FreeBSD have (different but conceptually familiar) mutex SMP models, and while Linux' one clearly owns the FreeBSD one hard, the design of FreeBSD's one is not too terrible... if they coded it right. They didn't. It has sub-standard code, not sub-standard SMP design. DragonFly has a much better approach with much better code, so while it beats FreeBSD 5, it's not made the 'standard' just by that. Net and Open have the giant lock so they are the worst players, but in practice they still beat FreeBSD 5 so design isn't everything.
And why do you defend a driver being unpopular/irrelevant (not true if you realise not all machines in the world have GigE cards, or even the capacity to use them) as an excuse for it sucking? Why not just break support for all notamd64 architectures because they're not mainstream and modern enough? All those sparc, alpha, etc. guys should move up to amd64! Isn't that right? Same thing with firewire networking versus gige. Sure it's not even half the theoretical bandwidth, but that's no reason to ignore the possibilities and necessities it can have.
I'm tired of this, I've been swatting away you trolls (who call me a troll, by the way) since morning. If you think Linux is the final solution to every software problem, you are now commanded to touch a computer again.
Where's ulib? He can help here. Much more experience in troll squashing than I have.
Sam ty sig.
It is interesting to see how and when various operating system concepts get implemented. Interrupt threads are a pretty common technique in realtime systems, and have been around since the early 90's or so; they were the first driver technique that I learned.
(S(SKK)(SKK))(S(SKK)(SKK))
>Much more experience in troll squashing than I have. ;)
But I do it only when it's worth.
Anyway, regarding the SMP model, I think it would be wise to wait, in order to say which is the best approach. I don't think it can be inferred by the literature, and all the camps still have a lot of code to write.
And if I may suggest one thing, let's be more constructive in criticizing FreeBSD: it can have some regressions due to the new technology, but this hardly means anything regarding the validity of the design. FreeBSD's model might turn out the winner, in the light of BSD's reputation to ultimately do things the Right Way. We'll see
--
Being able to read *other people's* source code is a nice thing, not a 'fundamental freedom'.
That's assuming that your assumptions are correct--that infant Dragonfly is better than FreeBSD (better for whom? for a hobbyist, definitely--for a server? no. For someone running a desktop? no). NetBSD too? SMP? no. Cross-platform? yes.
FreeBSD, otoh, stil lhas far and away the biggest installed base and the biggest ports collection. It is the most known of the BSDs, etc etc. I've been running a 5x server since 5.1, and it's been perfectly stable, and fast. There are a lot of very compelling features in new releases.
The BSDs still have their own advantages. That hasn't changed.