💾 Archived View for jay.scot › rants › 005.gmi captured on 2021-12-17 at 13:26:06. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
I switched over to using FreeBSD as my main desktop around 1 month ago. Last night I had enough of some core issues I was having and ended up switching back to Linux. My 2-year-old graphics card, an AMD RX 5700XT, does not work with the current stable release 12.2, so I had no choice but to use -CURRENT, ALPHA-2 then BETA-1.
My setup is minimal; I don't use any GUI applications apart from the rare occasion I need to use a browser; I do use mpv often. Even with this setup, there was a performance issue that caused Xorg to micro stutter, causing a system pause for around 1 second.
When using just a console things seemed to work fine, so my first thought was the problem must lie with Xorg. Over a few days I tried tweaking various Xorg options such as Tearfree, SWCursor, etc. This made zero improvement, my next port of call was the AMDGPU driver, drm-kmod.
A trip to the GitHub project page for this project did indeed show 4 out of 17 issues open are for the exact model of graphics card I have. Though none of the issues seemed related to the problem I was having.
During my research, though, I also found posts on /r/freebsd and the official FreeBSD forums with similar issues, Sadly, none of them had any actual solutions. I decided to build the kernel module from the latest git master, this seemed to improve the stuttering, progress!
Around this time I also found out that -CURRENT, -ALPHA and -BETA builds have a lot of debugging enabled in the kernel by default, which can cause degraded system performance.
I found GENERIC-NODEBUG kernel config; I stripped out a lot of modules I wouldn't need to help the build times. This was so simple to do, and before I knew it I had a custom kernel built with all debugging removed. Booting into the new kernel I noticed an improvement right away.
Playing a video still caused a little stuttering, as long as I did little else. I was happy with this for the time being, thinking that maybe when BETA-1 or RC came around things would be better.
Woo-hoo, BETA-1 snapshot was released, time to give it a whirl. BAM, right back to square one. So I went through the same steps again with building the AMDGPU module from git and building a custom kernel with no debugging enabled.
The same day as BETA-1 released, I got a reply on one post I made about the issue. Just run this, the poster says, All processes are tied to the first CCX0. This will reduce the usable cores to 4, however.
sh -c 'ps -aux | cut -w -f2 | xargs -I foo \
cpuset -l 0,2,4,6 -p foo > /dev/null 2>&1'
No way this can be the solution, can it? Well yes it was, suddenly I had nearly ZERO issues. All the lag had disappeared! The only cost? I had to gimp the potential of my system.
At this point I had enough, I spent so long on such a trivial matter I decided just to go back to Linux until 13.0 is released, then I will revisit it. I liked FreeBSD. There is so much to it that I loved and would go back in a heartbeat if I could get my hardware working without having to jump over so many hurdles.
great!