Re: [PATCH 0/3] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2
Linus Torvalds <[email protected]>
| Newsgroups | org.kernel.vger.linux-api,dev.linux.lists.patches,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kvack.linux-mm |
|---|---|
| Message-ID | <CAHk-=wh5bFj1a7eaGp9sixDg3UXu7xUGfU=YJo+ckpGxGAyhXQ@mail.gmail.com> |
On Wed, 3 Jun 2026 at 15:23, Andy Lutomirski <[email protected]> wrote: > > So I'm suspicious that you've possibly make bugs much (MUCH) harder to > exploit, but the underlying awful code and opportunity for bugs is > still there. MSG_SPLICE_PAGES is still around, and there is still > (AFAICS) no actual coherent description of what it means. I don't disagree. I've only looked at the filesystem side. The networking side does some odd stuff too (and I did look at some of that, and had to be edumacated by Jakub on some of the subtler rules for what skb data sharing is ok and when it's not - really not my area). But at least MSG_SPLICE_PAGES should be kernel-internal only interface, and once you don't share page cache pages with networking code I think that kneecaps a lot of the attacks. So that's really the aim here for me - at least _attempting_ to go "maybe we can just limit splice enough that it doesn't even *matter* when networking does something odd and questionable". And it's entirely possible that the current zero-copy "networking gets direct access to the page cache folios" is a huge and insurmountable performance requirement for some loads. So the vmsplice patch - and _particularly_ my suggested "let's try always copying" patch - may simply be doomed. But I'd rather try to simplify the splice code by removing complexity - and possibly then failing and having to revert it and rethink things - than not even trying. Because I think splice() is a *cool* feature. It was always *clever*. I just don't think it's worth the pain it has cause. And it's been around for a long long time, and after more than two decades it's still most definitely not _widely_ used. So that makes it a failure in my book. Sometimes "clever" just isn't the right thing. Linus