[jay.scot]
[005]


--[ Why I dropped freebsd after a month


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.


AMDGPU, 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.


* I love ports
* I had set up Bhyve running Poudriere building my own packages.
* Setting up the GPU driver was really simple (if it worked on my card)
* Audio setup was such a breeze.
* I had no issue installing ports/packages I needed, pkg is a wonderful tool.
* Jails are so handy, I didn't think I would need them but man they are
great!


EOF