FreeBSD 4 Bug may be present in Playstation 4/5(wololo.net) |
FreeBSD 4 Bug may be present in Playstation 4/5(wololo.net) |
Mainly because there were 11 point releases of fixes and enhancements (4.11), as opposed to today where FreeBSD major version only have 3-4 point releases.
Unfortunately for FreeBSD, the launch of the Intel Pentium 4 with hyper-threading in 2003, then of the AMD dual-core CPUs in 2005 have made quickly FreeBSD 4 completely obsolete.
The smaller FreeBSD team has required many years until achieving a decent implementation for multi-threaded CPUs and during that time they have remained long behind Linux and other operating systems.
Besides perfect stability (it was normal to not reboot FreeBSD 4 for years) and great networking performance, it also had a much more reliable file system than the competition.
Despite the fact that Windows XP used NTFS and Linux had at least 3 file systems with journaling at that time, where journaling was supposed to make the file systems crash-resistant, I have seen at that time (around 1999-2003) many cases of file system corruptions after power outages, on computers without UPSes which used NTFS or Linux file systems with journaling (on Linux EXT2 without journaling any power outage was very likely to require a complete reinstallation).
During the same power outages, the computers with FreeBSD that used the UFS file system with "soft updates" never experienced any file system corruption, despite the fact that UFS with "soft updates" was not a journaling file system, but only one where the disk write operations were carefully ordered in such a way as to prevent unrecoverable file system corruption in the case of a crash.
Many OSes at the time had hitches with SMP. BSD was one of them. FreeBSD had SMP in 4.x but almost everything in the kernel was single-threaded and the kernel thread was a major bottleneck.
FreeBSD wasn't alone in this. Linux suffered from a similar problem at the time, also because of the driver architecture. (The infamous "big kernel lock" wasn't fully eliminated until 2011: https://kernelnewbies.org/BigKernelLock)
This is an area where NT was much better, or VMS, or Solaris. And yes, the SMP issue, in hindsight, does partly explain why both Linux and BSD weren't as historically attractive as they otherwise looked, for large systems.
20 years ago it was unfortunately not unusual to experience the Linux "nuclear fsck" where it scrolls by so fast and for so long you know it's toast.
FreeBSD 4 wasn't too bad on dual cpu systems, as I recall. Fine grained locking gets more important as cpu counts grow, of course, but at 2, the single Giant lock isn't unreasonable.
If it is single threaded, how does this relates to PS4 and PS5 ?
Mostly because 5.x took so long to be released.
IIRC, shortly after this experience the FreeBSD folks went from a feature-based release cycle to a time-based release cycle: everyone wanted feature X (and X and Y) in Next Release, and things got pushed and pushed.
So by having a steady cadence, a feature could be integrated regularly into HEAD, and folks didn't have to wait too long before a STABLE release was cut with all the latest and greatest stuff (that couldn't otherwise be backported because of compatibility guarantees).
5.x wasn't just the removal of Giant Lock, but also:
- GEOM - Kernel Scheduled Entities
There weren't any reasons to switch from 4.x to 5.x until 5.x got stable. Even with Giant Lock given the hardware at the time (Pentium with hyper threading) it wasn't that bad.
FreeBSD is great on its own, and that amount of attention also meant every single bit of performance would be extracted no matter what it takes, and any scaling or stability issues would be hammered out pretty quick.
Until they moved to redhat...
Does anybody know why they switched to RedHat ?
> Early tests seem to indicate that a crash is indeed present in PS4 up to 11.00 included, and PS5 8.20 included. (Which would put the patch for this issue at firmwares PS5 8.40 and PS4 11.02)
wololo has been reporting in it, and mvg made a video about current state of things
The SPARCcenter 2000 was able to have 20 CPUs/sockets in 1993:
https://news.ycombinator.com/item?id=10558288
> I think the justifications were better support for running on Linux (storage drivers, Java, MySQL, oracle), better support for virtualization (although bsd jails are better than virtualization in my opinion, and a better fit for Y!), and it would be easier to support one os instead of two and acquisitions (including inktomi) really wanted to run on Linux.
> Also, the FreeBSD license was more relaxed and commercial products (like NetAPP) could include and extend FreeBSD without disclosing their modifications.
and then (same comment):
> Our frustration with lack of support for FreeBSD moved us to choose Linux and Windows
I think these two things are strongly correlated: the bsd license allow companies to avoid contributing back improvements, and this prevents the main FreeBSD codebase from getting better.
I think that in the long run this is detrimental to projects.
And that's with a radically smaller # of developers working on it.
https://www.phoronix.com/review/corei9-freebsd13-dfly6/4
--
Yes, I know the common complaint is benchmarks are flawed and how Phoronix could do more meaningful test.
But the reality is, nearly no one even does comprehensive OS benchmarking anymore - so there isn't really a good alternative source to use.
It was a long time ago, but freebsd5 felt more like a new OS than just a 4.11->5.0 bump, particularly with the removal of the giant lock and all the witness(4) work, took a while to figure out how to finetune it as a lot of systems were giant free but not all, and also of course moving one lock to many small locks means a lot of spinning and certain patterns of workloads are slower than before. It took until 7.0 to get amazing, and then in 8 or so I think it was super solid.
Dragonfly went with kernel messaging and one scheduler per core, and FreeBSD spent a lot of time into making a preemptive scheduler (sched_ule (4) : http://fxr.watson.org/fxr/source/kern/sched_ule.c?v=FREEBSD-...)
Weird times, but I am super grateful that both the FreeBSD team and the DragonflyBSD team did what they think is right.
Mad respect to the people who are just coding what they think is right.
Imho benchmarks only get you so far.
If yu are any kind of serious about performance you should do your own testing and benchmarking. Benchmarks from other people should only help you selecting candidates platforms on which to run your own benchmarks.
Had a wicked issue where a firewall was inspecting DNS requests and causing them to take almost 10 seconds to complete. Was hell on the SIP phones, and browsing the Internet was... Interesting.
Why not the TLS implementation? The video drivers and their kernel interfaces? The OS' process scheduling? A dozen other things that might be responsible for the perceived performance difference to one degree or another?
It feels like gamers who blame 90% of multiplayer issues on "the netcode".
It'd be different with data looking specifically at TCP connection establishment timing without a bunch of other stuff involved.
The "soft updates" option must be chosen when the disk is formatted for good reliability.
As I have said, 20 years ago "soft updates" in UFS worked better than journaling in the other contemporaneous file systems.
Nowadays it is likely that this is no longer true. I am still using FreeBSD in servers, but unlike 20 years ago I can afford UPSes so I no longer see often crashes due to power outages, even if I had one incident some time ago with a battery that had not been replaced yet after the UPS had warned that this is necessary, and when a power outage happened, the UPS worked for less than a minute and the power was cut before system shutdown. Even in this case there was no file system corruption on UFS.
Even with this good recent experience, today I would no longer trust UFS like 20 years ago, because it is said the current FreeBSD maintainers no longer understand the convoluted code that implements "soft updates" in UFS, and in any case most of their file system maintenance and development work is directed at ZFS now.
* https://www.youtube.com/watch?v=_NuhRkiInvA (BSDCan)
* https://www.mckusick.com/softdep/suj.pdf
Which also allows snapshots:
* https://freebsdfoundation.org/project/snapshots-on-filesyste...
See also "Journaling versus Soft Updates: Asynchronous Meta-data Protection in File Systems":
* https://www.seltzer.com/assets/publications/Journaling-versu...
When Windows XP has been launched, NTFS was certainly much less reliable. Even without being affected by any crashes or other anomalies, the free space on the NTFS partitions of early Windows XP computers would shrink steadily, without any apparent cause, requiring a reformatting/reinstallation after some time.
Early Windows XP was very buggy. While a computer with Windows XP did not require one or more reboots per day like one with Windows 98, failing to reboot it for more than a few days guaranteed a crash.
Only after installing several massive service packs in the following years, Windows XP has become reasonably stable.
Well, i stayed away from NTFS in the Win2000 era because crashes would make your system unusable.
Log message: Make softdep mounts a no-op
Softdep is a significant impediment to progressing in the vfs layer so we plan to get it out of the way. It is too clever for us to continue maintaining as it is.
Windows XP was more stable than 98SE, but it did crash more, because it was a general purpose OS used by people playing games. Still can't recall any major NTFS issues with it.
Windows 2000 with XP drivers (edit the INI file to allow it to install) was the way to go ;)