2,110 karma · joined January 29, 2020
Bugs are a fact of life. Bug fixes are a fact of life. Sometimes those bugs will cause data loss. Adding code in and -rc to support data recovery when a bug caused data loss to occur is a good thing for users. Portraying it as a bad thing is the worst kind of bike shedding.
Building FTTP networks is not expensive. It's the bullshit surrounding obtaining permission to install the fibre that is expensive.
That said, all software developers have a choice as to what they work on by the employer and teams that they sign up with. Just because you're employed to do something does not mean that you're obligated to go ahead with breaking the law.
Real engineers are required to take ethics courses in university, and they cannot willfully ignore actions that are unethical without risking the loss of their license. I think that software developers need ethical training more than ever given the direction of the industry.
Take image generation trained on a bunch of copyrighted photographs and artwork. What is the intent behind creating such a tool?
Yes, there is a stage where the software developer is building the software to do this purely operating on a "this is a cool hack" kind of mentality, but the point at which you make it available to other people, especially for payment, is when the liability becomes real.
Having worked on open source software for most of my life, I have always had to be aware of the issues surrounding copyright. That other software developers will write software and use copyright to proect it while ignoring the copyrights of others is deeply concerning. Copyright of software is no more or less important than copyrights applied to images and artwork.
Engineers are liable for their mistakes. At some point the same mechanisms may well need to be applied to software.
Maintaining a piece of code that needs to run in both user space and the kernel is messy and time consuming. You end up running into issues where dependencies require the porting of gobs of infrastructure from the kernel into userspace. That's easy for some thing, very hard for others. There's a better place to spend those resource: by stabilizing bcachefs in the kernel where it belongs.
Other people have tried and failed at this before, and I'm sure that someone will try the same thing again in the future and relearn the same lesson. I know as business requirements for a former employer resulted in such a beast. Other people thought they could just run their userspace code in the kernel, but they didn't know about limits on kernel stack size, they didn't know about contexts where blocking vs non-blocking behaviour is required or how that interacted with softirqs. Please, just don't do this or advocate for it.
Rule 1: don't assume malice.
Over the long term the number of cases where such a response is needed will decrease as expected.
Do you really want to live in a world where data losses in stable releases is considered Okay?
Ephemeral ads are not a good thing.
Hyperthreading was much less of a concern given that threading of software was only ramping up for mainstream x86.
The bigger issue over the last 5 years in the area where my company operates is the number of dump trucks that leave the bed up. Given the weight of dump truck it is easy for them to pull down multiple poles when they catch the cables, although perhaps they are drunk drivers...
But oh how much workload the 6002x course was... I needed 10-15 hours per week for all the reading, problems and labs, and doing that while working full time and commuting 2 hours a day was a grueling pace to survive!
Pull btrfs fixes from David Sterba:
"Several zoned mode fixes, mount option printing fixups, folio state
handling fixes and one log replay fix.
- zoned mode:
- zone activation and finish fixes
- block group reservation fixes
- mount option fixes:
- bring back printing of mount options with key=value that got
accidentally dropped during mount option parsing in 6.8
- fix inverse logic or typos when printing nodatasum/nodatacow
- folio status fixes:
- writeback fixes in zoned mode
- properly reset dirty/writeback if submission fails
- properly handle TOWRITE xarray mark/tag
- do not set mtime/ctime to current time when unlinking for log
replay"
Sounds like they added a feature back in that was removed 10 major releases ago. Why is that not considered a feature? By this logic that btrfs merge request should have been rejected.The "feature" label is messy. If the "feature" means that a user doesn't lose their data in a filesystem, is it really a "feature" or is it a bug fix? It's very much shades of grey.
What a lot of people are missing here is that bcachefs has a lot of test cases for regressions that are run as part of Kent's continuous integration infrastructure. A lot of Linux filesystems do not have this kind of easy regression testing, in part because this kind of testing is easiest when you do it as part of development, but very difficult to achieve any scale of coverage if it's done after the fact. The older the code is in Linux, the more likely it is that it tends to get coverage via the stress tests and intregration tests that various folks run on kernel releases. But such tests are not regression tests for data structures, I/O failures, corrupted data...
So much of what is going on is bikeshedding the process of submitting changes. It would be far more productive for people to look at the process Kent follows during development, and to then make educated comments about the code that arises from that process.
Good developers know the value of tests. Great developers know that improving your test coverage with every bit of new development means you can develop faster over the long run by not getting bogged down by silent regressions.
Edit: I do have to shout out to the XFS folks. xfstests is a huge contributor to the improvement of Linux filesystems over the last few decades.