LWN: Comments on "VMX virtualization runs afoul of split-lock detection" https://lwn.net/Articles/816918/ This is a special feed containing comments posted to the individual LWN article titled "VMX virtualization runs afoul of split-lock detection". en-us Mon, 20 Oct 2025 09:40:18 +0000 Mon, 20 Oct 2025 09:40:18 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817920/ https://lwn.net/Articles/817920/ robbe <div class="FormattedComment"> How it has worked before with VMware Workstation: the product ships a ton of pre-built kernel modules, but these are invariably not for my distribution, and even if they were, they get old pretty fast, if you are tracking Linus releases. You can fall back on compiling from the provided module sources, but if your kernel is 6-12 months newer than your release of Workstation, this will usually fail and needs manual fixing.<br> <p> So… the module breaking regularly is par for the course, at least when considering VMware. <br> </div> Sun, 19 Apr 2020 21:09:11 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817349/ https://lwn.net/Articles/817349/ hmh <div class="FormattedComment"> Not to mention the emulators... Yes, the kernel can, and does, have to emulate (a few instructions of) the running processor sometimes...<br> </div> Sun, 12 Apr 2020 21:48:07 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817310/ https://lwn.net/Articles/817310/ nix <div class="FormattedComment"> <font class="QuotedText">&gt; Given how many problems they have had with TSX (which includes some so bad that they had to completely disable TSX on the affected processors in a microcode update), it's a good thing they didn't do it that way.</font><br> <p> After a huge amount of effort to get TSX working for locks in glibc, actual benchmarking was done. TSX was only slightly faster than no-TSX, and algorithmic changes made no-TSX massively faster than TSX. Whoops. (TSX remains dead useful for attackers trying to trigger speculative attacks that then erase the evidence of their execution.)<br> </div> Sat, 11 Apr 2020 22:10:55 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817244/ https://lwn.net/Articles/817244/ cesarb <div class="FormattedComment"> <font class="QuotedText">&gt; This ought to be have been implemented using a TSX-like concept</font><br> <p> Given how many problems they have had with TSX (which includes some so bad that they had to completely disable TSX on the affected processors in a microcode update), it's a good thing they didn't do it that way.<br> <p> It makes sense that they chose the simplest possible implementation: other than legacy MS-DOS era software, no software should do atomic operations on values which are not naturally aligned in memory. Their mistake was to take so long to implement a trap on these misaligned atomic operations.<br> </div> Fri, 10 Apr 2020 15:44:52 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817204/ https://lwn.net/Articles/817204/ nix <blockquote> I have a question: does this essentially mean putting a disassembler in the kernel? </blockquote> There's been a disassembler in the kernel for ages (or actually many, for many architectures: used e.g. for kprobes and uprobes etc to analyze function prologues to drop probe points there). This is just one of many users. Fri, 10 Apr 2020 13:06:54 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817189/ https://lwn.net/Articles/817189/ jcm <div class="FormattedComment"> Intel. This ought to be have been implemented using a TSX-like concept by putting both cache lines into effectively a write set consisting of lines exclusively held by a single core at a time, not by locking the uncore of the chip.<br> </div> Fri, 10 Apr 2020 05:40:24 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817158/ https://lwn.net/Articles/817158/ kmweber <div class="FormattedComment"> As someone who knows nothing about this, I have a question: does this essentially mean putting a disassembler in the kernel? Because presumably that particular sequence of bytes that constitutes the opcode could appear in other contexts, right? E.g. as initialized data, as the end of one instruction opcode followed by the beginning of another, etc. Since x86 instructions are variable in length, is there a way to reliably determine this short of disassembling the entire thing from the beginning?<br> <p> Like I said, I know nothing about this, so this isn't meant as a commentary on whether it is a good solution or not, whether the benefits outweigh the costs, and so forth--I'm just teying to better understand what's going on.<br> </div> Thu, 09 Apr 2020 19:23:02 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817104/ https://lwn.net/Articles/817104/ jkingweb <div class="FormattedComment"> For clarity, who is "they"?<br> </div> Thu, 09 Apr 2020 13:42:28 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817093/ https://lwn.net/Articles/817093/ jcm <div class="FormattedComment"> What isn’t spelled out clearly anywhere is just how badly they screwed up the split cache line lock implementation. There isn’t one “memory bus” in a modern system, there are many cache coherent agents talking to one another and via home agents (contained within home nodes in Intel parlance) to external memory. There are so many nasty ways that you could implement “locking the bus”.<br> </div> Thu, 09 Apr 2020 04:08:08 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817077/ https://lwn.net/Articles/817077/ imMute <div class="FormattedComment"> It'll also completely screw over people who use out-of-tree modules and *up-to-date* kernels too.<br> </div> Wed, 08 Apr 2020 18:01:04 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817035/ https://lwn.net/Articles/817035/ Tov <div class="FormattedComment"> Which is essentially status quo...<br> </div> Wed, 08 Apr 2020 14:18:27 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817034/ https://lwn.net/Articles/817034/ dottedmag <div class="FormattedComment"> Well, it will cause these appliances to be stuck on ancient kernels with out-of-tree modules.<br> <p> </div> Wed, 08 Apr 2020 13:35:50 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817032/ https://lwn.net/Articles/817032/ amacater <div class="FormattedComment"> Or just kill out of tree modules as unfixable and blacklist them from linking ... that would kill off the unfixable cheap appliances that are always out of tree :)<br> </div> Wed, 08 Apr 2020 12:37:59 +0000 VMX virtualization runs afoul of split-lock detection https://lwn.net/Articles/817031/ https://lwn.net/Articles/817031/ cesarb <div class="FormattedComment"> <font class="QuotedText">&gt; but developers like Peter Zijlstra also see an opportunity to prevent the loading of modules that engage in other sorts of unwelcome behavior, such as directly manipulating the CPU's control registers.</font><br> <p> I wonder if the end game won't be something like requiring all out-of-tree modules to be compiled to WASM or similar.<br> </div> Wed, 08 Apr 2020 11:47:27 +0000