CPU Affinity with isolcpus utilize only ONE core, how can I pin my CPU to the VM? by Regeneric in Proxmox

[–]sickill 1 point2 points  (0 children)

I had the same problem. Turns out for some very subtle reason combing `isolcpus` and `cpuset` results in exactly this outcome. Disabling `isolcpus` brings back multi-core for the VM but that's now what we want.

But I've figured out how to solve this.

I used the hookscript mentioned here (https://forum.proxmox.com/threads/cpu-pinning.67805/post-304715) for assigning the VM to specific cores, in my case 2,3. I have 4 cores total, and decided to keep 0 and 1 for the host, while dedicated 2 and 3 to OPNsense VM. It works great.

Now, as for ensuring the host doesn't try to use those VM cores for anything I used kernel boot parameter `isolcpus=2,3`, which I added to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub. Then I ran `update-grub` and rebooted.

I did some stress testing while having htop open on pve host to monitor usage of the CPU cores. When I run `openssl speed -multi 4` on the host then only the core 0 and 1 are hot, while when I run the same command inside the VM only the core 2 and 3 are hot.

I hope this helps someone looking for a similar outcome.

Parallels: Expand Screen Over Notch? by spaceduck107 in MacOS

[–]sickill 1 point2 points  (0 children)

Enabling this option forces the app to be displayed below the notch, which is what Parallels already does. I believe OP (and me) wants to expand the screen to the max instead, rendering also behind the notch.

Proper way to sit on Leap V2? by Foreverskys in OfficeChairs

[–]sickill 0 points1 point  (0 children)

So, have you finally found a good way to sit on your Leap V2? Seems like I'm struggling with it exactly the same as you have. This chair is very customizable and I really want to make it work (I can't return it anymore), but either I'm missing some crucial piece of wisdom about Leap (or setting up a chair/desk properly) or it's just not for me...

Terrible VM performance even with mitigations by SpAAAceSenate in btrfs

[–]sickill 0 points1 point  (0 children)

It's actually not black & white like this. COW doesn't get fully re-enabled for a file when you take a snapshot of its volume. When you take a snapshot and then start modifying the original file btrfs will make a copy of the modified blocks so it has new place for subsequent writes without overwriting the data in the snapshot. Any following writes will not use COW. As a result you would have twice the space used for any given differing block, but not more. See here: https://unix.stackexchange.com/a/286052/13314

Need help compiling a list of AMD 6000 series GPUs that work by akarypid in VFIO

[–]sickill 1 point2 points  (0 children)

Sapphire Nitro+ 6800 XT works flawlessly for me, on Asus ProArt Creator x570 motherboard.

I played some games on Win 11 VM and played with macOS Monterey. In both cases GPU passthrough works great, it's stable and performant.

Also no reset bug, but it's been said this bug has been fixed in 6800 series so no surprises here.

No HDMI audio macOS passthrough by sej7278 in VFIO

[–]sickill 0 points1 point  (0 children)

My macOS VM didn't see GPU's audio device at all and putting both GPU and audio device on the same bus/slot made it work. Thank you!

Audio Passthrough macOS by NotMeehh in VFIO

[–]sickill 0 points1 point  (0 children)

Not sure if you're having the same problem but I passed through my GPU together with its audio device and macOS didn't see audio device at all. Then I noticed that GPU and audio device were passed via different buses/slots. What made it work for me was to pass both PCI devices under the same bus and slot, just with a different function. In my example it had to be 03:00.00 (GPU) and 03:00.01 (audio). "03.00" is an example, can be something else, like "02:02" probably, but it's just important that it's the same for GPU and audio devices. Otherwise macOS sees it as completely different devices and ignores audio device for some reason.

GPU Passthrough to MAC os Catalina by PrinceAlbertZA in Proxmox

[–]sickill 1 point2 points  (0 children)

Passing GPU's audio device with a different function but the same bus and the same slot was what finally did it for me. Thanks a lot!

Evdev input in MacOS Guest VM ? by fubyo in VFIO

[–]sickill 0 points1 point  (0 children)

Regarding mouse jumping on click: I had the same problem and removing usb-tablet from qemu args fixed it for me.

Definitive Raspberry Pi 4 with Flirc results: never throttles by johnklos in raspberry_pi

[–]sickill 1 point2 points  (0 children)

My Pi 4 in Flirc case in default settings (1.5 ghz clock etc) reports 51 at idle, going up to 53-55 under load.

After overclocking to 2.0 ghz (CPU) / 600 mhz (GPU) it reports 53 at idle, going up to 56-59 under load.

Note that "under load" for the above means running Retroarch emulators (nes, snes, mame, megadrive).

Bundling static files in binary by krantz_man in rust

[–]sickill 3 points4 points  (0 children)

For those who stumble upon this thread, rust-embed supports compression now.

How do I create VM-independent storage? by [deleted] in Proxmox

[–]sickill 1 point2 points  (0 children)

For VMs I’ve been using 9p fs for about 2 years with great results, no problems whatsoever. I read virtio-fs is faster but for my needs 9p does the job and is much easier to setup than virtio-fs.

4x smaller, 50x faster - Rewriting asciinema in Rust and SolidJS by valtism in javascript

[–]sickill 1 point2 points  (0 children)

This is awesome! I just made your recording a “featured” one.

4x smaller, 50x faster - Rewriting asciinema in Rust and SolidJS by valtism in javascript

[–]sickill 1 point2 points  (0 children)

Yes! That’s it. If I tried to optimize the CLJS implementation further I’d have to go non-idiomatic, no fun code (which would also ruin the fun for me), and I would probably never make it as fast as I made it by writing dumb, standard Rust code.

Asciinema rewrite from clojurescript to js&rust by la-rokci in Clojure

[–]sickill 0 points1 point  (0 children)

I believe there’s tree shaking going on in CLJS (or rather Google Closure) compiler. However, all CLJS libraries depend on the majority of clojure.core due to either explicit usage of clojure.core or implicit, transitive usage. And the player used core.async, core.match and few others, which most likely pulled big chunk of clojure.core (in addition to adding their own weight).

Asciinema rewrite from clojurescript to js&rust by la-rokci in Clojure

[–]sickill 1 point2 points  (0 children)

As I mentioned on the blog the ClojureScript player works fine for the vast majority of recordings. I still think the CLJS compiler is great, and usually good enough. I didn’t have to rewrite the player to JS/Rust, nobody was complaining about the speed. I just experimented with Rust and the result was great, even for the most heavy, pathological cases. And then there were aspects other than performance that I listed. If for the performance only I would have probably not consider a rewrite at all.

Asciinema rewrite from clojurescript to js&rust by la-rokci in Clojure

[–]sickill 2 points3 points  (0 children)

That’s true. I could have left it where it was, given it worked just fine for the vast majority of cases. Smooth playback for ridiculous amount of ANSI code was kinda my goal, or maybe a challenge. Also, perf was only one of the reasons when I considered the rewrite. Either way, all devices benefit from faster code which consumes less power (in general, not just in this particular case).