Hacker Newsnew | past | comments | ask | show | jobs | submit | tarruda's commentslogin

Except for the fact that the developer has sabotaged the project into being removed from mainline?

That might be the best thing happened to the project since now development can happen at its own pace without the clicky bait influencers.

In fact they delivered the erasure coding for parity raid back in march this year.

The thing is that as soon as you seriously give a chance to Bcachefs you see how good it is. I can only tell you that mixing different device tiers and having a per-file/directory replication setting is a god send specially in these times where storage costs more than gold.


> The thing is that as soon as you seriously give a chance to Bcachefs you see how good it is.

I'm pretty sure Bcachefs is amazing and better than Btrfs. I also think Zfs is amazing and better than Btrfs. Even so, I still use Btrfs because I know it is guaranteed to always be present on any Linux without any effort on my part.

> That might be the best thing happened to the project since now development can happen at its own pace without the clicky bait influencers.

A better approach might have been to just paused mainline merging instead of forcing being kicked out?

Eg "Hey Linus, Bcachefs is still in early development and I need to merge changes in a pace that is not compatible with Linux development process. So I'm going to pause for a while now and once it reaches maintenance status I will focus on submitting patches in a healthy pace that you can digest".


> Even so, I still use Btrfs because I know it is guaranteed to always be present on any Linux without any effort on my part.

100%. My system is rock solid and the last thing I need is rolling the dice after every update on whether my system will boot. https://www.reddit.com/r/archlinux/comments/eywcp7/linux_551...

I'm impressed with bcachefs's accomplishments though, and if they ever reconcile with the kernel I'll surely give it a fair shake.


btrfs has one critical issue they don't fix: it blocks access to fs for minutes if you remove large files. I am not sure how this is acceptable for prod grade fs..

> it blocks access to fs for minutes if you remove large files.

How large is large? I've deleted files with sizes of tens to hundreds of GBs and not seen that, and can probably whip up a test with a single-digit TB file if motivated.

Do you perhaps have 'discard=sync' in your mount options, or are using a kernel earlier than 6.2, which is the version -according to the docs- where async discard became the default?


> How large is large? I've deleted files with sizes of tens to hundreds of GBs and not seen that, and can probably whip up a test with a single-digit TB file if motivated.

for 1TB compressed (probably 5tb uncompressed) it is reproducable 100% reliably for me.

Here is some discussion: https://www.reddit.com/r/btrfs/comments/1mok440/filesystem_l...


Thanks for the information.

I made a ~3TB btrfs FS and mounted it with 'force-compress', put 5TB of zeros on it (which compressed down to like 160GB), and did a delete along with some concurrent operations on that same FS. Based on what I saw, btrfs doesn't "block access for minutes" while a large delete is in progress, but access to the volume that has the delete in progress is dreadfully slow. I used vim to create a new file in the mountpoint and saw that write delays were between ten and twenty seconds. Really bad, but still functional. Not at all blocked.

Someone in that Reddit discussion that you linked to says that all btrfs filesystems hang during an extremely large delete. This is not what happens for me. The only btrfs FS made slow was the one that had the ongoing delete. I have four other btrfs filesystems mounted and they're all just fine, whether or not they're on the same physical disk that has the ongoing delete. space_cache is v2 on all of my btrfs filesystems.

On my system, it looks like an events_unbound kworker was eating 100% of a single CPU while the big delete was in progress. No other kernel threads seemed to be consistently occupied.

For fun, I re-ran the thing I document below when mounted without compression, and then with an uncompressable file when mounted with non-forced compression. I had to reduce the size of the file to 2TB for both scenarios, but omitting compression writes out like 10x the data to disk, so it still seems like a fair test.

I'm not going to the trouble to provide a transcript for those two runs, but both when mounted without compression enabled and when an uncompressable file was written to a compression-not-forced volume, I saw absolutely no delays in filesystem operations while I was deleting that 2TB file. FWIW, putting 2TB of /dev/zero on that compression-not-forced volume and deleting it behaved the same as it did on a 'force-compress' mount.

Whatever is causing the dreadful slowness is directly linked to transparent compression, rather than being something you get when you run btrfs in all configurations. "Why run btrfs if not for transparent compression?" you might ask. I would answer: "Snapshots and reflinks, and yes, I know that XFS has reflinks too.".

A lightly-edited terminal transcript follows for if you want to double-check my work up to the end of the 'force-compress' run.


The lightly-edited transcript, relocated to a second comment to maybe avoid folding up the report:

  # lvcreate --size 3T --name testlv --stripes=2 testvg
    Using default stripesize 64.00 KiB.
    Logical volume "testlv" created.
  # mkfs.btrfs /dev/mapper/testvg-testlv
  btrfs-progs v7.1
  See https://btrfs.readthedocs.io for more information.
  <extra crap removed>
  # mount -o compress-force /dev/mapper/testvg-testlv /mnt/test/
  # btrfs fi usage
      Device size:     3.00TiB
      Device allocated:     2.02GiB
      Device unallocated:     3.00TiB
      Device missing:       0.00B
      Device slack:       0.00B
      Used:    320.00KiB
      Free (estimated):     3.00TiB (min: 1.50TiB)
  <extra crap removed>
  # dd if=/dev/zero of=/mnt/test/5TBFile bs=4MiB count=5TiB
  1310720+0 records in
  1310720+0 records out
  5497558138880 bytes (5.5 TB, 5.0 TiB) copied, 2510.22 s, 2.2 GB/s
  # /usr/bin/time --format='** fi sync %e' btrfs fi sync /mnt/test
  ** fi sync 0.00
  # btrfs fi df /mnt/test/ | grep Data
  Data, single: total=160.00GiB, used=160.00GiB
  # /usr/bin/time --format='** totalTime %e' bash -c "
    /usr/bin/time --format='** 20gbTime %e' bash -c 'dd if=/dev/zero of=/mnt/test/20GBFile bs=4MiB count=20GiB status=none; du -h /mnt/test/20GBFile; rm /mnt/test/20GBFile'&
    /usr/bin/time --format='** 10gbTime %e' bash -c 'dd if=/dev/zero of=/mnt/test/10GBFile bs=4MiB count=10GiB status=none;  du -h /mnt/test/10GBFile; rm /mnt/test/10GBFile'&
    wait"
  10G /mnt/test/10GBFile
  ** 10gbTime 2.42
  20G /mnt/test/20GBFile
  ** 20gbTime 4.95
  ** totalTime 4.95
  # date
  Sun Sep 20 10:19:46 PM PDT 2026
  # /usr/bin/time --format='** totalTime %e' bash -c "
    /usr/bin/time --format='** 05tbTime %e' rm /mnt/test/5TBFile &
    sleep 5 # It takes a few seconds for the delete to start making things slow when the file has been compressed. The operations on the 10GB file will complete in a normal amount of time if this sleep isn't present.
    /usr/bin/time --format='** 20gbTime %e' bash -c 'dd if=/dev/zero of=/mnt/test/20GBFile bs=4MiB count=20GiB status=none; du -h /mnt/test/20GBFile; rm /mnt/test/20GBFile'&
    /usr/bin/time --format='** 10gbTime %e' bash -c 'dd if=/dev/zero of=/mnt/test/10GBFile bs=4MiB count=10GiB status=none;  du -h /mnt/test/10GBFile; rm /mnt/test/10GBFile'&
    wait"
  10G /mnt/test/10GBFile
  ** 10gbTime 183.64
  20G /mnt/test/20GBFile
  ** 20gbTime 259.47
  ** 05tbTime 1026.21
  ** totalTime 1026.22
  # date ; /usr/bin/time --format='** 20gbTime2 %e' bash -c 'dd if=/dev/zero of=/mnt/test/20GBFile bs=4MiB count=20GiB status=none; du -h /mnt/test/20GBFile; rm /mnt/test/20GBFile' ; date
  Sun Sep 20 10:36:52 PM PDT 2026
  20G /mnt/test/20GBFile
  ** 20gbTime2 23.04
  Sun Sep 20 10:37:15 PM PDT 2026

Thank you, its useful finding that only transparently compressed btrfs is affected.

> Do you perhaps have 'discard=sync'

I have 'discard=async'


Only if you have quotas enabled IIRC.

no quota enabled

bcachefs on Arch is a bit better supported, we have the distro package maintainer in the bcachefs IRC channel, and I've never lagged on mainline support like ZFS has.

Actual distro support, and doing it right with people actually communicating with each other, has always been a priority for the project.


> I still use Btrfs because I know it is guaranteed to always be present on any Linux without any effort on my part.

I used to think that about ReiserFS, too. It was in the mainline kernel, development was snappy, and it solved some performance problems. I used it all over the place.

Things then subsequently... changed. :-/


You had plenty of time to move away from reiserfs. Something like 15 years between the conviction and removal.

> I still use Btrfs because I know it is guaranteed to always be present on any Linux without any effort on my part.

Except RHEL. They don’t include it in their kernels.

Alma Linux started including it again though.

It can never be easy.


Came here to say this. Supposedly Fedora also considers giving up on it.

This sounds like FUD, do you have any references? Genuinely asking. I follow LWN reporting religiously, which in turn follows Fedora development (and associated drama) closely, and haven't seen anything said in this direction. Just had a quick look on LWN and Fedora development resources, and nothing came up.

This is what I read here and elsewhere bunch of times, which is why I said "supposedly". A quick search did not reveal any meaningful proof, though. I'll ask next time I hear someone say this.

unlikely. reference please. btrfs was the default filesystem on fedora installs last time i checked. to remove it they would have to first change that, then give it a few years before even considering removing it from the kernel. redhat could remove it because it was never default and never recommended.

This is what I read here and elsewhere bunch of times, which is why I said "supposedly". A quick search did not reveal any meaningful proof, though. I'll ask next time I hear someone say this.

I think in a perfect world they should had put someone in between to mediate and curate patches while providing DKMS for urgent patches.

As for BTRFS I think its also pretty good. Its just that I have the impression its development is guided by the needs of its sponsors and sadly for us META doesn't need RAID5.


Meta doesn't have anyone working on btrfs anymore, it appears to be two guys at SuSE and drive bys.

Not true, Boris Burkov from Meta works on btrfs. And two people from WDC.

Within the last year? I think bcachefs is going to be overtaking btrfs soon on active developers, from the trends I saw in the commit logs

I was very up front about where we were at.

A lot of things were tried, people did try to mediate.

The particularly galling thing though was when I finally started looking - post split - comparing bcachefs PRs to other subsystems and especially XFS - I was being more conservative with what I considered a critical bugfix.

There was never a clear statement on what the issue was. What you guys got in public was about as much as I got.

All I can say is - going fast when you're stabilizing and getting bugfixes out the door is what you can and should be doing when you've invested in test coverage, test automation, keeping the codebase clean and asserted, and building up a community that works well together on testing and shaking things out.

I genuinely do not know what they were thinking.


> There was never a clear statement on what the issue was. What you guys got in public was about as much as I got.

If you are referring to why bcachefs was removed from the Linux kernel, here's a discussion on bcachefs being removed from the Linux kernel.

https://news.ycombinator.com/item?id=44868868


I'd like to point out that HN user koverstreet was involved in those threads, here.

They already know what was discussed.

(Good? Bad? Indifferent? I don't know and I don't have a dog in this race. I'm just here connecting the dots.)


> I'd like to point out that HN user koverstreet was involved in those threads, here.

Yes, that's why those remarks on how it's a mystery how bcachefs was pulled from the kernel are perplexing. To me they sound like gaslighting.


Just pleases try to get it back into mainline.

bcachefs was already working at its own pace prior to being accepted in the kernel. It could have continued doing so for years until it was really "ready".

Instead it got kicked out because Kent constantly ignored the kernel's contribution rules and is unlikely it will ever be accepted back into the kernel.


That would be a shame since there is nothing else over there with the same set of features. Disregarding drama, I'm telling you it’s that good.

I'd really appreciate it if we could drop the FUD over contribution rules. There are no such rules, it is explicitly Linus's way or the highway, and I already replied to that elsewhere.

And it went in when it did because Redhat was pushing for it and claiming to be supportive - but that never materialized. They wanted to get something for free without investing, or putting in the absolute bare minimum.

A _lot_ of people were saying publicly and privately "dear god yes we need something better than btrfs" - but no one from the existing kernel community was interested in stepping up.

Community's still growing, though. A lot of people have gotten active in making sure bcachefs actually works well for people end to end, and there's a hell of a lot more to shipping a filesystem than just writing kernel code.


You can't let Reddit guide your technical decisions.

The FS was marked experimental, so there is no urgency in fixing bugs or providing features in a certain cycle. Everyone using it knows what they got themselves into. You can still provide the DKMS module for faster fixes and features for anyone who wants to use BCacheFS more seriously for the time that the upstreaming process takes, but eventually it would have all been on mainline.

Asahi is taking a similar approach where they have their downstream kernel and push things upstream once they are mature.

That means the upstream kernel is not useful for running on that hardware now, but things are moving there eventually.


No urgency over fixing bugs? What do you think this is, btrfs? :)

All this has been discussed to death, we don't need people armchair quarterbacking a year later. It's over, it's time to move on.


It's relatively easy to get it working as a kernel module at least. I got it set up on a NixOS box without too much trouble.

Not something I'd want to do with my filesystem though. ZFS is different story it it isn't on the root fs because it might be packaged by the distribution.

there are tricks to avoid needing distro support / kernel modules for ZFS: https://github.com/pirate/zfsbox

also tricks to make it easy to convert a root FS to ZFS now that Ubuntu Server 24.04 added native root-on-zfs support: https://github.com/pirate/zfsify


I hadn't heard of zfsify, but I think I'll check it out on yet another old laptop running ext4.

Fair, I still don’t use it on my main machine, just a shitty laptop that I keep around to play with.

that's not necessarily a sabotage.

Sabotage might not be the best word, but it hurt trust and adoption.

It's just been a lot less drama within the project since the split.

I do have a lot more pull requests to merge than I did before. I don't know if you want to count "Kent isn't reviewing PRs fast enough" as drama :)


At this size (~400 million parameters), does it become viable running directly on CPU?

Yep. Not instantly though. I am hacking away at these things over on https://github.com/rcarmo/go-pherence (I do SIMD versions of common inference algos) and trying to improve that.

The exception is if you use CoW filesystems.

Btrfs has a workaround: it can create a cow-disabled subvolume for the swapfile.

AFAIK you need a separate partition for Zfs.


200B of those 552B is PLE, which works more like a database that is read for each token, thus can be offloaded to a fast SSD.

Id love an ELI5 for PLE. Im trying to work it into my back of the napikin math for compute vs memory bandwidth limitations on tok/s in PP vs TG work.

My attempt at a simplification of this article on it https://sebastianraschka.com/llm-architecture-gallery/per-la... into a couple of sentences is that they are linear embeddings of the input token space projected per layer, which are then gated by the transformer outputs per layer.

This would mean that the only one set of weights for the ple path needs to be pumped across the memory bandwidth as they are the same linear weights for all layers?

Sheit, maybe im trying to simplify something that i need to look at in detail. but id love to leverage others understanding if possible


While he avoids using the actual PLE acronym, he does actually describe the concept quite well. I think you may enjoy this video. Specifically around 5 minutes into the video is the part you're looking for.

https://www.youtube.com/watch?v=1--PzaHafAU


>Id love an ELI5 for PLE.

PLE is, instead of mixture of experts, mixture of associations


Unfortunately no, it's 200B + 552B. It's not as bad as it sounds though, because most of 552B is in 4bit natively.

Darn, for a moment I thought it would be possible to run in 128G T.T


Awesome!

> It also includes additional 196B Engram memory which you can put on an SSD. I think

You can put Qwen 3.8 Flash Next engram on SSD, but prompt processing takes a good hit. On my mac studio, I get 300 pp and 33 tg with SSD offload, versus 550/40 with everything in RAM.

I will be very happy if 300 pp is achievable with this model though.


The engram stuff is great because RAM is often still cheaper (or at least expandable). My company does currently look into buying some hardware as we handle confidential data and code.

Qwen 3.8 Flash is viable on two Nvidia 6000 96GB with a wood quant because you can put the 50GB Engram into RAM and the hit should be below 10% performance. At least that is what I have seen so far. Correct me if I'm wrong.


I am running that on a single 6000 96GB with 4-bit quants for both weights and PLE table. Needs just 32GB RAM and fits snugly into the 96GB VRAM with KV cache equalling ~300k context tokens. Not sure if I quantized the KV

You can warm cache regularly used engram/n-gram if you're willing to merge PRs into a personal branch and build it yourself. I was trying this with qwen 3.8 flash next and the n-gram to get it to fit on my very average gaming desktop (it worked)

I would rather have just 3 levels: low, medium and high.

Hopefully it will be open weights and have the same architecture and size as the current v4 flash vision, which is probably the best LLM that can be run on 128G devices.

Interesting, I had assumed it'd be too large to fit. What quant and context size are you running?

IQ3_XXS (~3.2 BPW). For me this is an option because my Mac studio is only used for serving LLMs, so I can afford to dedicate most of its RAM to this. I can run with 256k context and only uses ~117G, with the remaining (up to 125G which I can allocate to VRAM) being used for prompt caching and context checkpoints.

I'm making my own quants, though the Vision-Exp version is outdated and won't work on llama.cpp master branch (I built it before llama added support):

- https://huggingface.co/tarruda/DeepSeek-V4-Flash-0731-GGUF

- https://huggingface.co/tarruda/DeepSeek-V4-Flash-Vision-Exp-...

For the Vision-exp version, I also ran perplexity + KLD against the original MXFP4. Seems quite OK: https://huggingface.co/tarruda/DeepSeek-V4-Flash-Vision-Exp-...


Thanks, I'll give that a try. I basically have the same use case, only on Strix Halo.

Don't use my Vision-Exp GGUF though. As I said I built those GGUFs before llama.cpp supported, and they can't be loaded on current master (require my own branch).

I already have new GGUFs but haven't uploaded yet. If you want Vision-Exp, maybe use bartowski or unsloth's GGUFs.

Side note:

As an alternative to deepseek v4, you might want to give it a shot at qwen 3.8 flash next. I have IQ4_NL GGUFs that can be loaded fully into 128G, or Q5_K GGUFs that can offload the PLE to disk (use --load-mode none --lazy-mode on for that): https://huggingface.co/tarruda/Qwen3.8-Flash-Next-GGUF.

llama.cpp master is still somewhat bad in Qwen 3.8 next performance, but I was able to achieve 40tps tg and 600 tps pp on my private branch.


Pls share info if you make it work

It didn't work. DeepSeek failed to load on LM Studio due to a tensor format error. I don't have the time to do deeper troubleshooting. Qwen 3.8 Next did work, but the performance was abysmal.

Hey there! I do the same but I use dwarfstar at a 2-bit quant: https://github.com/antirez/ds4

I'm curious if you've tried dwarfstar and decided to move to llama.cpp and 3 bit quants or what made you go that route instead? I've been using ds4 for months now and it's already got support for the new vision model, haven't tried it yet, still on 0731 but it's been very solid for me.


I tried dwarfstar when llama.cpp DSV4 support was still very weak, and while it worked, I didn't see anything that would make me want to stick with it vs llama.cpp. llama.cpp is simply better with its awesome built-in webui, router and server APIs and certainly support much more models and quantizations than dwarfstar.

Since then, I started maintaining my own vibe coded dsv4 branch with metal optimizations, so I actually get much better metal performance on my llama.cpp branch than on dwarfstar (plus all the extra llama.cpp features). Here it is in case you want to give it a shot: https://github.com/tarruda/llama.cpp/tree/qwen4exp-dsv4-opti...


Amazing project.

My only blocker for installing Asahi on my Mac Studio (M1 ultra) is that llama.cpp performance is very bad when compared to using the Metal backend on the same hardware.


Right!? Linux can be configured to idle at less than 500mb of ram - by contrast, with some aggressive shenanigans, MacOS can idle at 2-3gb.

When running inference, I would love to use all of my hardware please Apple.


It idles at 2-3GB but when your apps need the RAM, does it free up system memory so that it's closer to 500MB?


I use my Mac as a headless server to run LLMs, and never even start a desktop session so it always stays at pre-login state without any applications running. Even so, I never saw it using less than 2G in htop when logged via SSH.


I have similar issues with my ultra. Have put it on a laptop, but my desk Setup with my multiple desktop computers is usb-c video based ( kind of a poor man’s kvm) , and asahi doesn’t do usb-c video yet


I haven't tried any of these demos, but I'm not surprised they stop impressing once you go deep.

What got be mostly impressed were the demos of Astra doing computer use. At my job I do some RPA and can appreciate how challenging it can be. Yet they make it look extremely easy to operate a tool like Blender at super human speeds.


I've been using Blender via Astra (and Sol before they) without any UI automation at all - Blender supports writing and executing Python scripts, here's how I'm doing that: https://til.simonwillison.net/llms/blender-coding-agents-mac...

I'd be surprised if any of the impressive Blender demos doing the rounds at the moment were built by having an agent control the mouse and keyboard against the Blender application.


Interesting, thanks for sharing!

A scripting API makes the problem much more approachable, but what about those videos where Astra is drawing people from a photo? Here's one using canva: https://x.com/iam_zachi/status/2095992132620136677

Is that also using scripting to batch updates? It does look as if the mouse is moving.


Yeah that one looks like controlled mouse updates. I wonder if they sped up the video?


I'm certain the video is sped up. Still possible to script computer use, and I think this is what happens. One of the suggests this: https://x.com/DanielSMatthews/status/2096311244504572177

Could be hallucination, but I gave this to an LLM and this is what it suggested:

"

The workflow shown in the video—processing an image and then controlling a computer interface to draw it—is a combination of two well-established fields: Computer Vision and UI Automation.

You do not necessarily need a Large Language Model to perform the underlying image processing; standard algorithms can do this deterministically.

Step A: Image Processing (The "Brain")

You can write a script (using Python libraries like OpenCV or Pillow) to process the reference photo:

    - Edge Detection: Use filters (like Canny or Sobel) to find the "high spatial frequencies" (outlines).

    - Color Quantization: Use clustering algorithms (like K-Means) in the HSL space to group millions of pixels into a small palette of distinct colors.

    - Vectorization: Convert these processed shapes into a set of coordinates (SVG paths) that represent exactly where the mouse needs to move.


Step B: UI Automation (The "Hand")

Once the image is converted into a set of instructions (coordinates and color codes), you can use automation tools to physically control the computer and draw on Canva.

    - Browser Automation: Developers have already created projects that use Selenium (a web automation tool) combined with edge detection algorithms to draw images onto HTML canvases.

    - The script reads the pixel data, calculates the mouse coordinates, and executes the "click-and-drag" actions in the browser.

    - Computer Use APIs: In the case of GPT-6 Astra, the model uses a "Computer Use" interface. It effectively takes the processed image data (or generates it internally) and outputs high-level commands (e.g., "Move mouse to X,Y," "Click," "Select Hex Color #FF5733"), which the system then executes on the screen.
"

Seems plausible and easier to believe. Also, feels like a "magic trick" designed to fool the user into believing that the agent is drawing interactively by using its vision, since it could just have written a python script that takes the input image, and produces the exact same result without automating the screen.


X.com is full of unverified posts, but here's a few:

- https://x.com/MengTo/status/2096213835460084184?s=20

- https://x.com/birdabo/status/2096101381925114327?s=20

Seems really impressive at first glance, but there's no guarantee that they are real


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: