Posts
3460
Following
207
Followers
342
Linux kernel maintainer. Compilers and virtualization at Parity Technologies.
Edited 4 months ago
I am writing a book entitled The Linux Memory Manager.

It's intended to be a thorough overview of the memory management subsystem combining a walk through the code with a description of the key concepts as well as a chapter on practical kernel memory management.

EDIT: The first draft is complete :) Now editing the book.

It targets linux v6 with a target release date of mid-late 2024.

Check out https://linuxmemory.org/ and this account for details of my progress.
1
11
31

Jarkko Sakkinen

Uh oh, cannot sign tags because of expiration. Need dig my cert key from the vault and bump it up... #openpgp
1
0
1

Jarkko Sakkinen

Almost without noticing I’ve gradually migrated some of my passwords to pass:

❯ pass web
web
├── bitstamp.net
├── bitwig.com
├── element.kapsi.fi
├── fabfilter.com
│   ├── license
│   └── password
├── firefox.com
├── gitlab.com
├── google.com
├── icloud.com
│   ├── password
│   └── recovery
├── pypi.org
│   └── recovery
├── steampowered.com
├── storj.io
│   ├── password
│   ├── projects
│   │   └── my-cloud
│   └── recovery-codes
└── tuni.fi

Nice thing is that you can store hierarchically also other data than passwords to leaves. storj.io is a great example of this use.

0
0
1

I drew this 12 months ago, as LLM code assistants were just becoming available.

Has it held up?

9
22
3

Jarkko Sakkinen

Most #site’s ask #password + #FIDO2 but others satisfy with only FIDO2.

E.g. #Google #account opens up without password, if the #YubiKey is plugged in.

I’m just wondering why this difference exists…

2
0
1

Jarkko Sakkinen

Edited 4 months ago

I don’t really understand the cause and effect here but I finally got rid of “GPU HANG” issue with #i915, i.e.

Jul 02 21:20:50 suppilovahvero kernel: i915 0000:03:00.0: [drm] GPU HANG: ecode 12:1:84dfd7f7, in ChaosGate.exe >
Jul 02 21:20:50 suppilovahvero kernel: i915 0000:03:00.0: [drm] ChaosGate.exe[40919] context reset due to GPU ha>

I did the following:

  1. Teared my machine into parts.
  2. Cleaned up everything
  3. Put some new cooling paste.
  4. Bought and switched a new PSU.
  5. Created /etc/modprobe.d/i915.conf and run sudo dracut --force (in Fedora).

The contents of /etc/modprobe.d/i915.conf are the following:

options i915 enable_guc=3
options i915 enable_fbc=1

I put these there because I found multiple forum posts etc. where this was the suggested solution but obviously I have zero idea what they’re doing 🤷 I’ve played Chaos Gate as a test without hangs, and it used to hang within just few minutes.

It is still a bit weird that #Fedora 40 with its default settings gives such crap results on Intel Arc A770.

#linux #kernel #intel #graphics

2
1
0

Jarkko Sakkinen

Critical fixes for TPM2 authenticated sessions, which I still hope landing to 6.10:

https://lore.kernel.org/linux-integrity/20240703170815.1494625-1-jarkko@kernel.org/

#tpm #linux #kernel
1
1
2

Jarkko Sakkinen

Edited 4 months ago

I like to start a bug fix by:

$ git commit -a -s --allow-empty -m "Fixes: 1085b8276bb4 (\"tpm: Add the rest of the session HMAC API\")"
[auth-null d5d3411b52f7] Fixes: 1085b8276bb4 ("tpm: Add the rest of the session HMAC API")

$ git show
commit d5d3411b52f741cb16cfb7180d24f454e97b4570 (HEAD -> auth-null)
Author: Jarkko Sakkinen <jarkko@kernel.org>
Date:   Wed Jul 3 18:47:46 2024 +0300

    Fixes: 1085b8276bb4 ("tpm: Add the rest of the session HMAC API")
    
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>

So that I get the fixes-line backed up fast :-) Then I just amend the meat.

For generating the fixes line I have:

git-fixes() {
  git --no-pager log --format='Fixes: %h ("%s")' --abbrev=12 -1 $1;
}

#git #linux #kernel

0
1
0

Jarkko Sakkinen

I like this site: https://commit.style/
0
1
4

Sometimes while I'm digging around the bowels of PLs, I find websites straight out of the 90s for seemingly active projects:

https://unicon.sourceforge.io/

0
1
1

Jarkko Sakkinen

Edited 4 months ago

My initial ~/.vimrc for #vim after 3-4 years of using #neovim:

filetype plugin indent on
syntax enable

let g:mapleader = ","

set autoindent
set autoread
set formatoptions+=j
set guifont=MesloLGM\ Nerd\ Font\ Mono\ 12
set hidden
set history=500
set hlsearch
set listchars=tab:→\ ,trail:•,extends:›,precedes:‹,nbsp:␣,eol:↲
set nobackup
set nonumber
set noswapfile
set nowrap
set path+=**
set scrolloff=1
set showbreak=↪\
set showmatch
set sidescroll=1
set smarttab
set tags=./tags;/
set termguicolors

nnoremap <silent> <C-l> :nohl<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
nnoremap <silent> <leader>lcd :lcd %:p:h<CR>:pwd<CR>
nnoremap <silent> <leader>n :set number!<CR>

if !empty(globpath(&rtp, 'autoload/plug.vim'))
  call plug#begin()
  Plug 'ap/vim-buftabline', { 'as': 'buftabline' }
  Plug 'dracula/vim', { 'as': 'dracula' }
  Plug 'editorconfig/editorconfig-vim', { 'as': 'editorconfig' }
  Plug 'kaarmu/typst.vim', { 'as': 'typst' }
  Plug 'tpope/vim-commentary', { 'as': 'commentary' }
  Plug 'vim-scripts/git_patch_tags.vim', { 'as': 'git_patch_tags' }
  call plug#end()
endif

silent! colorscheme dracula

It’s quite short but does pretty much what I would ever want from a text editor:

$ wc -l .vimrc 
42 .vimrc
2
0
5

Pedro José Pereira Vieito

The OpenAI ChatGPT app on macOS is not sandboxed and stores all the conversations in **plain-text** in a non-protected location:

~/Library/Application\ Support/com.openai.chat/conversations-{uuid}/

So basically any other running app / process / malware can read all your ChatGPT conversations without any permission prompt:

0
5
0

Generally speaking, C is pretty straightforward. It takes about 20 days to learn 80% of it, and then no more than 20 years to cover the remaining 20%

2
7
1

Jarkko Sakkinen

This is still IMHO a strong merit in #GNOME #Evolution, when having multiple identities.

In my case, I use a sub-address (RFC 5233) for bouncing kernel.org but it shares the account with my personal email address. Identities map to envelope addresses, and based on that msmtp will pick the correct SMTP server.

msmtp also allows to share SMTP configuration with #Git. E.g. for a freshly cloned repository, I might for instance:

git config from "Jarkko Sakkinen <jarkko@kernel.org>"
git config sendemail.envelopeSender "jarkko@kernel.org"
git config sendemail.sendmailCmd "/usr/bin/env msmtp"

#email #smtp

1
0
0

Jarkko Sakkinen

track i did early winter. after that not much time for music but hopefully during my holiday i have some time to finish a few tracks :-) https://soundcloud.com/dopeda/robottien-siivouspaiva

0
0
1

Jarkko Sakkinen

Edited 5 months ago

Migrated from #neovim back to #vim after several years of use because:

  1. I neither need nor use LSP.
  2. I don’t need two scripting languages in a text editor.
  3. Neovim #plugin ecosystem is a dependency hell.
  4. Neovim #plugins are fancy but that results in also a fancy configuration to maintain.
  5. I don’t mind a slow release cycle. My vim workflow hasn’t changed for ages.
  6. When logging into remote machines, an off-the-shelf vim installation is almost guaranteed.
  7. Even if neovim is installed to a remote machine, it usually fails to load my configuration, given the rapidly changing upstream and plugins requiring always the bleeding edge.
  8. I learned #vimscript in 1998 before I had even heard about #lua, and it is more comfortable programming environment for me :-) Before 1998 I was using #qedit in MS-DOS.
  9. For local IPC with neovim, a Python package neovim-remote is required. Vim has full local IPC workflow builtin.
1
1
4
Edited 5 months ago

use chips for their "ghost extracting machine". That's for sure an ESP32 DevkitC board from on the movie!

I love these kind of details in pictures. Like for example in Tron Legacy when you can see the output from a Unix history command, or a guy using emacs.

Do you know about more examples like these?

1
2
1

Equality, respect, freedom are at the heart of our Union 💜💚💛 ❤️

This Saturday, will culminate with the Pride Parade in Thessaloniki 🇬🇷, marking the end of – a month of celebration and activism.

But our work to promote equality, inclusivity and respect for all, continues beyond this month.

Today and every day, let's build together a world where love knows no borders, and everyone can live freely and authentically.

Our LGBTIQ Equality Strategy: https://europa.eu/!y3Qk9m

0
2
1

Jarkko Sakkinen

Edited 5 months ago

I started my personal fork of NNN called ZZZ, i.e. i pushed the blocks 90 degress ;-)

https://codeberg.org/jarkko/zzz

I’m not a fan of forks but the upstream seems to be quite broken in terms of pragmatic decision making so it would take me probably literally years to get anything changed over there.

I pushed my sorting code for inverse selection over there too: https://codeberg.org/jarkko/zzz/commit/f6904ae23f4a785ceb6412b19575d690d1dcc191

Release plan:

  1. s/NNN_/ZZZ_/ (i.e. allow both to be installed)
  2. Replace the remaining “qsort” shenanigans and compilation options with heap sort (for inverse selection O(n) radix sort is the best possible option).
  3. Get rid of this junkyard of patches by going through them and either applying or deleting: https://codeberg.org/jarkko/zzz/src/branch/main/patches
  4. Get rid off as many compilation options as possible. Each should be evaluated and for the most part pick a single viable option.
  5. Create build.zig replacing Makefile but other than that zero Zig code.

I don’t even feel like that I’m actually making a fork here because the current upstream has forks as a features given patches/ ;-)

#nnn #zzz

0
0
1
Show older