memory-leaks

Still reachable: lots of words in many pages.
git clone https://git.kevinlegouguec.net/memory-leaks
Log | Files | Refs | README | LICENSE

maintenance.org (24315B)


      1 * Config
      2 ** Firefox
      3 *** distribution channel
      4 [[file:install.org::*Firefox][After installing the OS]], had opted for the [[https://support.mozilla.org/en-US/kb/install-firefox-linux#w_system-firefox-installation-for-advanced-users]["install Mozilla build
      5 systemwide"]] method.  That works, though I'm starting to find Wayland's
      6 generic app icon grating.
      7 
      8 Nowadays,
      9 
     10 - Mozilla hosts [[https://support.mozilla.org/en-US/kb/install-firefox-linux#w_install-firefox-deb-package-for-debian-based-distributions-recommended][an APT repository]],
     11 - Debian [[https://salsa.debian.org/extrepo-team/extrepo-data/-/merge_requests/266][includes that repository]] in the extrepo database.
     12 
     13 So the time seems ripe for switching to that?  OT1H this complicates
     14 upgrading to a new Debian release; OTOH reading [[https://www.debian.org/releases/trixie/release-notes/upgrading.en.html#unofficial-sources][between the lines]],
     15 since AFAICT Mozilla only hosts /one/ repo for all supported
     16 Debian-shaped distros, maybe the update will be transparent?
     17 
     18 Tentative steps to replace =/opt= installation with repo installation:
     19 
     20 1. [X] backup profile
     21 2. [X] ~extrepo enable mozilla~
     22 3. [X] (tune APT preferences to pin Mozilla repository?)
     23 4. [X] ~sudo apt update && sudo apt install firefox~
     24 5. [X] cleanup
     25    - [X] application desktop file
     26    - [X] x-www-browser etc alternative
     27    - [X] local bin symlink
     28    - [X] opt installation
     29 6. [X] assess state of profile; restore if necessary
     30    - defaulted to a new profile
     31    - just needed to reset old profile as default
     32    - removed new profile
     33 ** samba server
     34 - I want most of my music on my laptop.
     35 - I want to access it from my desktop.
     36 - I want anyone on my home network to access it too.
     37 - I am too lazy to remove the Windows partition from my laptop, so
     38   that partition sits mostly empty, eating 50% of the disk space.
     39 
     40 Therefore, the only sensible move is to run Samba on the laptop,
     41 serving a folder on my Linux partition with a symlink to the Windows
     42 partition.
     43 
     44 Chosen =/etc/smb.conf= excerpts:
     45 
     46 #+begin_src conf
     47 [global]
     48 allow insecure wide links = yes
     49 
     50 [sambo]
     51 comment = Files yours truly is sharing with you.
     52 path = /home/[…user…]/Public/smb
     53 browseable = yes
     54 read only = yes
     55 guest ok = yes
     56 wide links = yes
     57 #+end_src
     58 
     59 Then:
     60 
     61 #+begin_src sh
     62 # Mount Windows disk.
     63 udisksctl mount --block-device /dev/disk/by-label/OS
     64 # Symlink it from shared directory.
     65 ln -s /media/[…user…]/OS/Music ~/Public/smb/
     66 #+end_src
     67 
     68 On the desktop side:
     69 #+begin_src sh
     70 sudo mount.cifs //hirondell.local/sambo […somewhere…] \
     71      -o guest,uid=$(id -u),gid=$(id -g)
     72 #+end_src
     73 * Upgrades
     74 ** Bookworm
     75 *** Rubber…
     76 [[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#non-free-split][Release notes § Issues to be aware of]]
     77 **** Minutiae
     78 - ~sed s/non-free/non-free-firmware/~
     79 - =youtube-dl= ⇒ =yt-dlp=
     80 - clear =GRUB_DISABLE_OS_PROBER=
     81 **** System logs ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#changes-to-system-logging][ref]])
     82 1. ~apt-mark auto rsyslog ; apt autoremove~
     83 2. double-check that journalctl config saves to persistent storage
     84 3. finally learn ~journalctl~
     85 **** Reduced accessibility from GTK 3⇒4 transition ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#gnome-has-reduced-accessibility-support-for-screen-readers][ref]])
     86 Not a huge deal for me (though [[https://github.com/transmission/transmission/discussions/5065][other aspects]] of the transition are
     87 irksome), but [[https://tech.lgbt/@xogium/110507457689374019][dang]].
     88 **** "Externally-managed" Python installation ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#python3-pep-668][ref]])
     89 1. inventory & clear out stuff installed with ~pip install --user~
     90 2. upgrade
     91 3. install =pipx=
     92 4. reinstall
     93 **** VLC support for VA-API disabled ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#vlc-ffmpeg-5][ref]])
     94 - [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021601][Debian bug#1021601]] =vlc: VAAPI hardware acceleration no more available=
     95 - [[https://code.videolan.org/videolan/vlc/-/issues/26772][VLC#26772]] =VAAPI is disabled with ffmpeg5 on vlc-3x=
     96   - "we won't support full FFmpeg5 in 3.0" ([[https://code.videolan.org/videolan/vlc/-/issues/26772#note_316827][ref]])
     97 - [[https://code.videolan.org/videolan/vlc/-/merge_requests/1245][VLC!1245]] =[VLC3] Support FFmpeg 5.0 (except for VAAPI)=
     98   - "it seems that the VAAPI part is far from trivial and requires
     99     invasive changes (contrary to the other fixes)" ([[https://code.videolan.org/videolan/vlc/-/merge_requests/1245#note_302474][ref]])
    100 - user reports: [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021664][2022-10]], [[https://old.reddit.com/r/debian/comments/z5ectb/vlc_delaying_frames_on_a_fresh_debian_12_install/][2022-11]], [[https://old.reddit.com/r/debian/comments/119x7tr/debian_12_bookworm_no_hw_acceleration_in_vlc_h264/][2023-02]], [[https://old.reddit.com/r/debian/comments/14u38mm/video_choppy_in_vlc_but_not_totem/][2023-07]]
    101 
    102 No idea how much that will affect little =hirondell=.  If push comes
    103 to shove, I guess I can either
    104 - build VLC 4,
    105 - learn mpv.
    106 **** systemd naming for Xen network interfaces ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#xen-network][ref]])
    107 =eth0= changes to =enX0=.  No idea if my VPS is impacted or not; it
    108 does have an interface named =eth0=, and that name also shows up in
    109 =/etc/network/interfaces=.
    110 **** Known severe bugs ([[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#rc-bugs][ref]])
    111 - [[https://bugs.debian.org/1036041][bug#1036041]]: =upgrade-reports: Dell XPS 9550 fails to boot after
    112   bullseye to bookworm upgrade - grub/bios interaction bug?=
    113 *** … meet road
    114 **** ("Easy mode" rehearsal on VPS)
    115 ***** =/etc/cloud/cloud.cfg=
    116 My local version has these two lines:
    117 #+begin_src
    118 mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
    119 manage_etc_hosts: true
    120 #+end_src
    121 No idea if this is OVH-specific.  No idea if I want them.  Let's trust
    122 "the package maintainer" 😐
    123 ***** =/etc/ssh/sshd_config=
    124 OK, note to self: *never* choose "do a 3-way merge".  Thought that
    125 would be something along the lines of Emacs's Ediff; instead…
    126 #+begin_quote
    127 Merging changes into the new version
    128 #+end_quote
    129 /Mind giving a couple more details on that "merge" mate?/
    130 
    131 OK,
    132 
    133 - =/usr/share/openssh/sshd_config= has the new stock config,
    134 - =/etc/ssh/sshd_config.ucf-old= has the /previous/ *local* config
    135 - ~diff -u {/usr/shared/openssh,/etc/ssh}/sshd_config~ suggests that
    136   the ✨magic merge✨ did TRT; the only differences are
    137   - stuff I remember changing in (=PermitRootLogin=,
    138     =PasswordAtuhentication=)
    139   - a spurious whitespace-only hunk on =Subsystem sftp= (the
    140     =/usr/share= version uses tabs; the =/etc= version ended up with a
    141     single space)
    142 ***** Removing obsolete stuff
    143 Erm, why does ~apt purge '~c'~ says
    144 #+begin_quote
    145 The following packages were automatically installed and are no longer required:
    146 […] nginx-core nginx-full […]
    147 #+end_quote
    148 
    149 😨
    150 
    151 #+begin_src
    152 $ dpkg -S $(sudo which nginx)
    153 nginx: /usr/sbin/nginx
    154 $ apt depends nginx
    155 […]
    156   Replaces: nginx-core (<< 1.22.1-6~)
    157   Replaces: nginx-extras (<< 1.22.1-6~)
    158   Replaces: nginx-light (<< 1.22.1-6~)
    159 #+end_src
    160 
    161 Ah.
    162 ****** Rsyslog
    163 Refuses to disappear.  The doc says ~apt-mark auto~ followed by ~apt
    164 autoremove~ should remove it, but that does not seem to be happening
    165 (~autoremove~ does not find anything to remove).  The =rsyslog=
    166 service is still up & running, and watches =syslog.socket= to
    167 re-activate itself 😕
    168 
    169 Decided to explicitly ~apt remove~ it on the advice of [[https://blog.frehi.be/2023/06/04/upgrading-from-debian-11-bullseye-to-debian-12-bookworm/][this gentleman]].
    170 **** non-free & non-free-firmware
    171 #+begin_quote
    172 Assuming the =non-free= component was only added to the APT
    173 sources-list to install firmware,
    174 #+end_quote
    175 #+begin_example
    176 $ apt list '?narrow(?installed, ?section(non-free))'
    177 Listing... Done
    178 doc-rfc-experimental/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    179 doc-rfc-fyi-bcp/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    180 doc-rfc-informational/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    181 doc-rfc-misc/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    182 doc-rfc-old-std/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    183 doc-rfc-others/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    184 doc-rfc-std-proposed/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    185 doc-rfc-std/oldstable,oldstable,now 20201128-1 all [installed,automatic]
    186 doc-rfc/oldstable,oldstable,now 20201128-1 all [installed]
    187 firmware-iwlwifi/oldstable,oldstable,now 20210315-3 all [installed]
    188 firmware-misc-nonfree/oldstable,oldstable,now 20210315-3 all [installed]
    189 gcc-10-doc/oldstable,oldstable,now 10.2.0-1 all [installed,automatic]
    190 gdb-doc/oldstable,oldstable,now 10.1-1 all [installed]
    191 make-doc/oldstable,oldstable,now 4.3-2 all [installed]
    192 manpages-posix-dev/oldstable,oldstable,now 2017a-2 all [installed]
    193 manpages-posix/oldstable,oldstable,now 2017a-2 all [installed]
    194 tar-doc/oldstable,oldstable,now 1.34-1 all [installed]
    195 #+end_example
    196 Will be keeping =non-free= in addition to =non-free-firmware= then 🫣
    197 **** Fallout
    198 ***** GRUB
    199 #+begin_src sh
    200 sudo sed -i \
    201      s/'^#GRUB_DISABLE_OS_PROBER=false'/'GRUB_DISABLE_OS_PROBER=false'/ \
    202     /etc/default/grub
    203 sudo update-grub
    204 #+end_src
    205 
    206 ***** PEP 668
    207 #+begin_src sh
    208 # Before upgrade: keep calm…
    209 pip uninstall $(pip freeze --user | cut -d= -f1)
    210 # After upgrade: … carry on.
    211 sudo apt install pipx
    212 pipx install yt-dlp
    213 #+end_src
    214 
    215 ***** VLC
    216 +Seems fine?  No choppiness observed on a 2k@24FPS video from yt-dlp+
    217 
    218 Is choppy as all hell on /some/ videos, not sure which kind nor why;
    219 could not be bothered discerning the patterns.  Learned me an mpv for
    220 great good.
    221 **** Goodies
    222 - The [[#random-lag][random lag I had been observing since 5.8]] seems gone 🥳
    223 - =libtree-sitter-dev= is new enough for Emacs; can get rid of my
    224   =/usr/local= version.
    225 ** Trixie
    226 *** DONE Rubber…
    227 [[https://www.debian.org/releases/trixie/release-notes/issues.en.html#ch-information][Release notes § Issues to be aware of]]
    228 **** /Vu et s'en tape/
    229 § 5.1 "while upgrading":
    230 
    231 - interrupted remote upgrades: got 12.12
    232 - arch decommissions (i386, armel, MIPS): boring amd64 here
    233 - SSH decommissions (=~/.pam_environment=, DSA keys): unused
    234 - =last*= command decommissions: unused
    235 - filesystem encryption churn: unused
    236 - RabbitMQ, MariaDB churn: unused
    237 - =/etc/sysctl.conf= decommission: unused
    238 - network interface name churn: no load-bearing script using interface
    239   names
    240 - dovecot, libvirt, samba, OpenLDAP, Bacula churn: unused
    241 - skip-upgrades unsupported: got 12.12
    242 - WirePlumber, strongSwan churn: unused
    243 - sg3-utils: unused
    244 
    245 § 5.[2-4]: nothing of note.
    246 **** DONE Prepare =debian.sources= ([[https://www.debian.org/releases/trixie/release-notes/upgrading.en.html#preparing-apt-sources-files][ref]])
    247 1. [X] backup =/etc/apt/sources.list=
    248 2. [X] create =/etc/apt/sources.list.d/debian.sources= [[https://www.debian.org/releases/trixie/release-notes/upgrading.en.html#adding-apt-internet-sources][from example]]
    249    - =Components: main non-free-firmware non-free contrib=
    250    - =Types: deb deb-src=
    251 
    252 +Alternatively, just ~sed s/bookworm/trixie/g sources.list~, upgrade,
    253 /then/ ~apt modernize-sources~?+
    254 **** =/boot= free space ([[https://www.debian.org/releases/trixie/release-notes/issues.en.html#ensure-boot-has-enough-free-space][ref]])
    255 No worries, got the boring mono-partition setup?
    256 **** DONE =/tmp= switch to tmpfs ([[https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-temporary-files-directory-tmp-is-now-stored-in-a-tmpfs][ref]])
    257 IIUC, after the first restart, should
    258 1. [X] confirm syslog warnings about hidden leftover files
    259 2. [X] ~mount --bind / /mnt~
    260 3. [X] ~rm -rf /mnt/tmp/~
    261 4. [ ] +~umount /mnt~+ oops forgot
    262 5. [X] restart
    263 6. [X] confirm absence of syslog warnings
    264 **** DONE =ping= privileges ([[https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges][ref]])
    265 After installation, check:
    266 1. [X] =linux-sysctl-defaults= installed? yes
    267 2. [X] =net.ipv4.ping_group_range= sane? =0 2147483647= 👌
    268 3. [X] ~ping perdu.com~ works? yes
    269 **** DONE dpkg warnings about non-empty directories ([[https://www.debian.org/releases/trixie/release-notes/issues.en.html#dpkg-warning-unable-to-delete-old-directory][ref]])
    270 Double-check presence and content?
    271 **** DONE =tzdata-legacy= split ([[https://www.debian.org/releases/trixie/release-notes/issues.en.html#timezones-split-off-into-tzdata-legacy-package][ref]])
    272 Install, for kitschness?
    273 
    274 Actually, the update auto-intalled it.
    275 *** DONE … meet road
    276 **** DONE Plasma forgot application shortcuts
    277 As noted [[https://virtualdebris.co.uk/blog/039DA73E/project-zebra-upgrade-to-debian-13-and-switching-to-wayland][elsewhere]], still visible under "Custom Shortcuts Service",
    278 which does nothing.  Remove the category & add back "new" shortcuts.
    279 ** Windows
    280 *** 2025-03
    281 For [[file:../amdahl30/killing-time.org::*SSD?][reasons]], had to dust off my Windows installation.  Asked
    282 update-grub to [[https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#grub-os-prober][run os-prober]], booted, did "the thing"; then, out of
    283 due diligence (at first; quickly replaced by morbid fascination;
    284 sustained by existential ennui), attempted to push Windows Update as
    285 far as it would go.
    286 
    287 A lightly edited set of live notes follows; starting with the original
    288 boot following the os-prober restoration.
    289 **** Boot the Ⅰst
    290 - "let's finish setting up your PC" ??? [fn:winup-boot1-setup]
    291 - installed kingston manager thingy [fn:winup-boot1-kingston]
    292 - waiting for updates to finish
    293   - waiting…
    294   - "2023-10 Cumulative Update" stuck at "Downloading - 5%" 🤷
    295     - welp, does not seem to progress anymore, and there are updates
    296       pending restart, so let's
    297 
    298 [fn:winup-boot1-setup] This Windows installation was, AFAIR, pretty
    299 well "set up" when last I booted it.  Hence my surprise at this
    300 greeting.
    301 
    302 [fn:winup-boot1-kingston] The [[https://www.kingston.com/en/support/technical/ssdmanager][Kingston® SSD Manager]].  My main reason
    303 for turning on that Windows system, to be able to upgrade the firmware
    304 of amdahl30's primary SSD.
    305 **** Boot the Ⅱnd
    306 - "give us a minute" FFFFFUUUUUUUU
    307 - "we're updating Xbox Game Bar" WAT [fn:winup-boot2-xbox]
    308 - "your version of windows 11 has reached end of service"
    309   - "click here to download a newer version of windows 11 to stay
    310     supported"
    311   - ffs
    312   - Windows Update not doing anything; "download now" greyed out;
    313     "cumulative update" dropped down to /0%/
    314   - 100% CPU still burning 🤷
    315 - update running…
    316   - "antimalware service executable" taking 50% CPU during the update
    317 
    318 [fn:winup-boot2-xbox] I have never owned an Xbox, nor have I ever used
    319 this Windows installation for anything game-related (beside
    320 downloading & running [[https://www.pj64-emu.com/][Project64]] that one time, to evaluate how well
    321 that laptop could handle N64 emulation).
    322 **** Boot the Ⅲrd
    323 - "windows 11, version 23H2"
    324 - hope I don't have to go through =2{4H{1,2},5H1}= 😬
    325 - "need more disk space" are you kidding me
    326   - removing my music then…[fn:winup-boot3-space]
    327 - "almost ready"
    328   - "we need to do a few more things before you can update. we'll let
    329     you know when we're done and what to do next"
    330   - wtf
    331 
    332 [fn:winup-boot3-space] I, perhaps unwisely, split my 128 GB drive into
    333 two roughly equal-sized chunks, one for Windows, one for Debian.  The
    334 former sitting unused, I had dumped something like 5–10 gigs worth of
    335 media onto it.
    336 **** Boot the Ⅳth
    337 - "Your computer may restart a few times"
    338   - YOU DON'T SAY
    339 - 1h later it's still at 9%
    340 - I think I'm going to sleep tho; which means it will probably reboot
    341   to Debian without completing 🙄
    342 **** Boot the Ⅴth
    343 Mornin' Debian; no, actually I was installing Windows updates, you can
    344 go back to sleep mate.
    345 
    346 Windows is probably done with the external storage, right?  Detaching.
    347 **** Boot the Ⅵth
    348 - "❌ please reattach external storage"
    349   - /I freed 5 gigs of Music for you/
    350   - not even tumbleweed full-distro rebuilds are that big
    351 **** Boot the Ⅶth
    352 - "you're up to date (last checked: yesterday, 9:01 PM)"
    353   - first of all Windows Update: you just spent 15s loading; why is
    354     the last check yesterday evening?  What were you doing during this
    355     15s load?
    356   - second, isn't there, like, a 24H2 or something?
    357   - "check for updates" again please
    358 - "updates available" 🤪
    359 - some downloads later…
    360   - "you're up to date"
    361   - /also on the very same window/ "2025-02 Cumulative Update Preview
    362     for Windows 11 Version 23H2" to "Download & install"
    363   - 🎭
    364 - seriously though, is there not an option to climb to 24H2?  why go
    365   for the "preview" of [[https://en.wikipedia.org/wiki/Windows_11_version_history][a /maintenance/ release]]?
    366 - maybe a reboot will fix it 🙃
    367   - woah =⊞ restart=…
    368     - proposes (LLM-backed?) completion
    369     - says "restart apps after signing in" is the "best match"
    370   - woaaah, =⊞ reboot=… says the "best match" is a 2022 TV show 🤣
    371     - the right margin even autoplays the trailer
    372     - the right margin also shows "results ranked by relevance" and
    373       /the first one/ is a Microsoft Support link to "restart
    374       (reboot)" your PC
    375   - OK fine, that was "fun"; luckily =⊞-x u r= still works
    376 **** Boot the Ⅷth
    377 - well, no, I still must install this "oldstable preview"
    378 - OK then; do that
    379 **** Boot the Ⅸth
    380 - "check for updates"
    381   - {{{narrator(thinks a lot)}}}
    382   - "you're up to date (last checked: today, 9:02 AM)"
    383   - what are you talking about?  It's 9:42, you've just booted, and
    384     /spent thirty seconds checking for updates/ how can the last check
    385     be 40 minutes ago??
    386 - {{{narrator(thinks a lot /again/)}}}
    387   - "you're right 🤪"
    388     - "have a security intelligence update"
    389     - "also, 24H2 is available"
    390 - just to be on the safe side, start with the "intelligence update"
    391   then reboot
    392 **** Boot the Ⅹth
    393 - alright then, "download & install" 24H2
    394 - creeps up to 34%
    395 - "making sure you're ready to install (this may take a few minutes)
    396   (please wait)"
    397   - I assure you Windows /I/ am ready to install; please stop
    398     projecting
    399 - (wait hang on; why are you saying it's 10:26 AM Paris time; it's
    400   11:26 AM Paris time you goof)
    401   - "last successful time synchronization: 1/8/2022 7:01:49 PM" 🤣
    402 - "what needs your attention"
    403   - "this PC can't be upgraded to this version of Windows"
    404   - "your PC isn't supported yet on this version of Windows"
    405   - what have you spent the last 30 minutes doing?  how do you realize
    406     this /34% into the installation process??/
    407   - there's only a "refresh" button that does nothing
    408     - close
    409     - "are you sure you want to quit?" /you will literally not let me
    410       do anything else; why are you asking me??/
    411 - well then; perhaps disk size?
    412   - mmm only 6 GB free on =C:/=
    413   - ah, perhaps the 7 GB =C:/Windows.old= directory is a problem 🙄
    414   - let's install windirstat I guess
    415     - winget is neat!
    416   - I have basically 2 GB of personal files; everything else is
    417     Windows cruft
    418   - "System → Storage → Cleanup recommendations" agrees we can reclaim
    419     the 7 GB =Windows.old=
    420 **** Alas
    421 That was all the energy I could muster this week-end.  We might not
    422 have updated all the way to 24H2, and we might never succeed!  All the
    423 same, we laughed, we cried; quality entertainment.  Sort of.
    424 * Hiccups
    425 ** impromptu IBus
    426 Installing [[https://zoom.us/][Zoom]]'s Debian package somehow enabled IBus[fn:: AFAICT
    427 because ibus recommends im-config, and the latter autostarts the
    428 former by default], which unconditionally set my keyboard to English
    429 for some reason[fn:: Before properly running ~apt install
    430 ./zoom_amd64.deb~, I had mistakenly run ~dpkg -i zoom_amd64.deb~,
    431 which failed because of missing dependencies.  Perhaps apt omitted
    432 some post-installation configuration hooks because the first dpkg run
    433 had left an error marker somewhere?].  Remediation steps taken:
    434 
    435 1. Tweak IBus preferences, unset shortcuts (Emacs has a better
    436    interface for searching/inserting Unicode characters), check "use
    437    system defaults" for the keyboard layout.
    438 
    439 2. Go on a hunt for whoever spawns ibus-daemon(1); AFAICT it's
    440    im-launch(1), which can be told not to use IBus through im-config
    441    (which eventually just writes ~run_im none~ in =~/.xinputrc=).
    442 
    443 3. Eventually, maybe I should just uninstall im-config.
    444 ** random lag
    445 *** DONE diagnosing
    446 Since… a few days? weeks? one month? everything randomly becomes
    447 "choppy":
    448 
    449 - typing (Emacs, Terminator, Firefox): I can type in a bunch of words,
    450   sit back, wait a few seconds, then watch the words finally write
    451   themselves letter by letter.
    452 - launching programs: ~while time $aprogram ; do sleep 0.5 ; done~,
    453   where ~aprogram~ just starts then exits, shows wildly varying times.
    454 - scrolling a PDF with the touchpad (Evince): the pages stay stuck for
    455   a few seconds, then the reader jumps to the new location; the mouse
    456   pointer does change during this delay, as text and whitespace
    457   (invisibly) scroll by.
    458 
    459 I can't remember changing anything recently, nor seeing any scary
    460 update passing by.  journalctl, htop and dmesg do not show any obvious
    461 suspects.  Some things I considered:
    462 
    463 - Disabling some services e.g. tor or speech-dispatcher ⇒ no effect.
    464 - Uninstalling xserver-xorg-video-intel ⇒ no effect.
    465 - Upgrading systemd from backports ⇒ no effect.
    466 - htop sometimes shows pulseaudio acting up despite no application
    467   playing or recording sound?
    468 - Maybe I should try reinstalling Debian's stable kernel?
    469   - Luckily 5.7 was not uninstalled when upgrading to 5.8; booting on
    470     5.7 solves all of the "choppiness" issues listed above.
    471 
    472 Now to pinpoint what's wrong with 5.8…
    473 *** TODO fixing
    474 Found a way to "quantify" the problem; asked around on the
    475 debian-kernel mailing list, to no avail.
    476 
    477 - [[https://lists.debian.org/debian-kernel/2020/11/msg00084.html][2020-11]] - original report that 5.8 from backports triggers the
    478   issue: "wait for 5.9 to be available from backports or even 5.10"
    479   (LTS for the next Debian stable version)
    480 - [[https://lists.debian.org/debian-kernel/2020/12/msg00040.html][2020-12]] - quick report that 5.9 from backports does not improve
    481   things: 🦗
    482 - [[https://lists.debian.org/debian-kernel/2021/02/msg00231.html][2021-02]] - quick report that 5.10 from backports does not improve
    483   things *✨with scripts & numbers✨*: 🦗
    484 
    485 #+begin_quote
    486     for ((i=0; i<100; i++)); do
    487         time -p terminator -x 'bash -c exit'
    488     done &> time-$(uname -r)
    489 
    490     grep $mode time-$(uname -r) | sort -k2
    491 
    492 Where $mode is either real, user or sys.  Here are the extrema:
    493 
    494                         real            user            sys
    495                         min     max     min     max     min     max
    496 5.7                     0.44    0.48    0.29    0.35    0.02    0.08
    497 5.10                    0.47    3.30    0.31    2.87    0.02    0.30
    498 5.10-after-suspend      0.46    0.50    0.30    0.36    0.03    0.08
    499 
    500 Averages & standard deviations:
    501 
    502                         real            user            sys
    503 5.7                     0.454±0.006     0.322±0.013     0.046±0.013
    504 5.10                    0.961±0.607     0.559±0.518     0.074±0.052
    505 5.10-after-suspend      0.469±0.005     0.332±0.012     0.050±0.011
    506 
    507 These results feel consistent with the stutter I observe: 5.7 and
    508 5.10-after-suspend have roughly the same performance, while
    509 freshly-booted 5.10 is overall very jittery: terminator startup is twice
    510 as slow on average, with 100× more variance.
    511 
    512 
    513 Some more stats, eyeballed from /proc/cpuinfo and
    514 /sys/devices/system/cpu/cpufreq/policy*/scaling_governor:
    515 
    516                         idle frequency  CPU governor
    517 5.7                     <  800 MHz      powersave
    518 5.10                    > 1900 MHz      ondemand
    519 5.10 (after suspend)    <  900 MHz      ondemand
    520 #+end_quote
    521 
    522 - [[https://lists.debian.org/debian-kernel/2021/08/msg00278.html][2021-08]] - quick report that 5.10 from a fresh bullseye install does
    523   not improve things: 🦗
    524 - 2023-08 - bookworm upgrade to 6.1: problem solved 🤷