#Zinnia

1 messages · Page 33 of 1

autumn jasper
#

which is kind of like turnstiles but much more coarse grained

#

and removing the need for the turnstile block

storm bobcat
#

It's a ticket lock but more scalable because no cache line bounce

#

or less

autumn jasper
# autumn jasper which is kind of like turnstiles but much more coarse grained

like if two threads are contending for two different PTE locks but the addresses of those PTEs happen to collide in this hash table, then when one of them is unlocked itll signal that event flag and both threads will be awoken and one of them will just hav eto go back to sleep after finding the PTE still contended

#

is a risk

storm bobcat
#

The same idea can be used for mutices using mcs nodes

near tartan
#

i never implemented pte locks tbh

autumn jasper
#

they needed this bc they had like 1 available PTE bit to use lol

#

they could have used a spinlock but wanted to be fancy i suppose

near tartan
#

i think the ISAs i want to target have maybe 2 bits in common?

#

i want x86_64, aarch64, riscv64rva, and loongarch64

#

maybe powerpc

autumn jasper
#

powerpc doesnt even have multi level page tables

#

it has a hash table that people normally put a multi level table on top of and treat the hash table like an in-memory software refilled TLB

#

NT and Linux both do that on PPC

near tartan
#

i wanted to write generic paging logic

autumn jasper
#

the ppc hash table is particularly problematic though

#

bc you can get page faults due to a previous hash table collision that overwrote another PTE

#

and this overwriting loses information

near tartan
#

ew

autumn jasper
#

which is bad for certain vmm designs

#

NT and Linux both sometimes want to store info in PTEs that is not reflected anywhere else, for example the location in swap space of a private anonymous page that has been removed from memory

autumn jasper
#

contrast this however with mach derivative vmms like AIX's and XNU's

#

mach treats the page tables as like a cache for information in the memory objects

#

so theyre able to service these hash collision faults just by looking up a memory object and filling the PTE in with the info there

#

and its fine if they overwrite some other PTE in the process bc the info it stored is fully reflected in the memory object

#

so AIX and XNU (Mac OS X) do not simulate a multi level page table on PPC

#

weird instance of a thing where NT and Linux align with one another but not with like, AIX and XNU lol

#

is how page tables are treated by their vmms

near tartan
#

I'm not sure if i want to couple my VMM to the page tables

#

i mean i could

autumn jasper
#

its probably a bad idea to

#

current meta that the vmm heads in here have moved to is that the mach idea is the more correct one

#

disposable page tables are good

#

not just for portability but also for memory usage

#

basically you can throw away page tables for processes willy nilly at any time if you do page tracking like mach does, where the page tables hold no unique info

#

so that becomes a source of memory reclamation

#

the memory objects (or other container such as uvm amaps) are probably/usually more compact than the page tables so this is a win

#

under this scheme throwing away page tables is basically invalidating a cache, so it has a performance effect (causes page faults to repopulate said cache later), so youd only want to start doing that when memory is really low

near tartan
#

if it's less portable and uses more memory

autumn jasper
#

NT at least has a solution to the memory thing which is that it can swap out the page tables

#

linux has no solution the page tables are just wired

#

a page table holding the swap location of swapped out anonymous pages is just eternal on linux, you dont get to reclaim it after all the contained pages are gone, it only goes away when the process dies or the range is munmap()d which sucks

#

on NT the page table becomes swappable itself when all contained anon pages are out of memory

#

and then the page table's own swap location is stored in the upper level page table entry and so on

#

under NT the whole page table hierarchy for a process can get swapped out in this manner, from the bottom up

#

i believe

#

which is obviously more complicated than a scheme where you can just throw them away at any time without doing any writes to disk

#

at least it does SOMETHING about page table memory though unlike linux

#

linux is the only major kernel without a solution to this specific thing i think

#

i wonder if you could DoS linux by like allocating single pages of private anon memory spaced 2MB apart to allocate 1 page table each

#

and just keep doing this until the OOM killer has to run because it cant swap out or free those page tables

#

assuming u tiled all of userspace with pages spaced 2mb apart

#

with 4 level paging

#

u could cause it to allocate up to apparently 256GB of wired memory in the form of page tables

#

im sure youd hit quota limits long before that

#

but itd be fun to test

marble salmon
#

is the DS that stores swap locations swappable in NT?

autumn jasper
#

NT doesnt have disposable PTs so i dont get the relevance of the question

#

the data structure that stores swap locations on NT (and Linux) is the hardware PTE of the private anon page

#

which is eventually swappable on NT (after all contained pages have been fully removed from memory) and wired on Linux

marble salmon
#

the relevance is that disposable PTs does not necessarily mean that more memory is swapable

marble salmon
autumn jasper
#

planned scheme for mintia2 is that the data structures for this (memory objects for shared memory (like files and shared anon pages) and amaps (for private anon pages)) will tend to be much more compact than page tables

#

and will go in paged pool

#

and be swappable

#

a page of paged pool will have 1 pin for each active page tracking entry it contains though

#

the pin is removed when the tracked page is fully removed from memory and only exists in swap

#

this is to avoid deadlocks from having to allocate pages in order to free pages

#

(ie having to allocate a page to read a swapped-out paged pool page into, in order to read a tracking PTE to find a page to swap out)

#

(this is the same reason NT page tables are pinned until the last contained page is fully gone)

uncut jackal
#

it's iBoot2

#

it's been known before apple silicon macs became a thing

#

there's been Project Sandcastle and checkm8 and stuff u know

hard lark
autumn jasper
#

probably some 500 IQ synchronization thing

near tartan
#

the BSD larp is advancing

sick tangle
#

TIMESTAMP is a format that records the TB flush generation at which a mapping was removed, allowing to determine later whether a TB flush entry must be issued

hard lark
near tartan
#

i had a stupid idea

#

for a microkernel:

  • servers can register syscalls
  • during registration, it passes a set of descriptors for each argument that the handler expects
  • these descriptors can then specify things like "this argument is a pointer and its length is described by argument n" or "this argument is a handle"
#

or maybe some kind of bytecode can be used for this

#

ebpf trl

marsh holly
#

lua

near tartan
#

omfg i have an idea

#

printf string

#

eh nah

#

that's cancer

storm bobcat
near tartan
#

wdym

storm bobcat
#

i mean the idea behind this is security/validation, right?

near tartan
#

no

storm bobcat
#

what is it then

near tartan
#

this would be a form of IPC

#

the kernel would catch the syscall, check how it needs to transform the arguments, and call the handler in the other process

storm bobcat
#

oh yeah ok

#

i mean this is fairly common

near tartan
#

idk it's something dumb i thought of

#

is it?

storm bobcat
#

well u send a bunch of descriptors or something for handles and pointers

near tartan
#

i don't think i'm talking about the same thing here

#

i mean that when a server registers the syscall handler, it tells the kernel what to do with each argument

storm bobcat
#

same concept as doing it client-side idk

#

ig that makes sense

near tartan
#

not really

#

because the kernel needs to translate object handles between processes, right?

storm bobcat
#

yeah but i mean oftentimes it's just included in the request the client sends

near tartan
#

yeah i guess

storm bobcat
#

instead of done in the server

near tartan
#

my idea was to do this dynamically

storm bobcat
#

so you want to set up such schema for every kind of request or something?

near tartan
#

pretty much

#

(note that i won't probably do this, i'm just brainstorming new methods)

near tartan
#

i'll make an example

idle flower
#

how about you push all io through shared memory ring buffers? thats what i plan to do, that way you completely bypass the kernel (after ipc setup) and get async io basically for free on top

near tartan
#

that doesn't work

#

you still need to translate handles

#

well, in my proof of concept i already have all data-only IPC via shared memory

#

the problem is passing object handles along

#

i have a channel for this, similar to what Zircon does

#

where you have a handle buffer and a data buffer

autumn jasper
near tartan
#

okay i did some digging

#

kqueue is pretty cool

#

i will still expose epoll via mlibc, but internally route it as kqueue

near tartan
#

not so sure about signalfd

#

i don't want to lose my wayland ports

marsh holly
#

🥀

near tartan
#

wayland good tho

marsh holly
near tartan
near tartan
#

maybe i should drop the linux FDs and become a true BSD-like

#

XFCE is good enough

#

i MUST larp

near tartan
#

nahhhh this guy actually installed CDE

#

crazy

teal hawk
#

Extremely cool

jaunty bay
near tartan
#

okay it seems eventfd is actually a thing on BSDs too

#

timerfd as well

#

although no signalfd

#

which makes sense, since kqueue exists

near tartan
#

@hybrid island are you still working on lily

#

i have more macro soup soon

near tartan
#

i'm surprised with how simple the NetBSD schedulers are

#

both sched_4bsd and sched_m2

#

they're less than 500 eloc

storm bobcat
#

or runq

#

this

#

tho the netbsd schedulers kinda suck

near tartan
#

any recommendations

storm bobcat
#

freebsd is better

near tartan
#

ULE?

storm bobcat
#

yes

near tartan
#

will look into it tomorrow

storm bobcat
#

didnt you already have it

near tartan
#

in rust

storm bobcat
#

yea

near tartan
#

and also a bastardized version

storm bobcat
#

you should be able to translate

#

this is better than ULE in some ways

near tartan
#

from what i've seen UVM is also quite nice

#

but there's a lot of code

storm bobcat
#

not really on the same level tho

#

a scheduler is easy to reimplement

#

uvm is a whole ass subsystem

near tartan
#

yeah i saw

storm bobcat
#

there's a phd thesis on it

#

well it was made for a phd thesis

#

i should make netbsd's slab allocator better

marsh holly
near tartan
storm bobcat
#

fr? 😭

near tartan
#

only the parts that didn't work

#

i was too lazy to debug

#

but that's more or less why i even want to rewrite

#

if i slop things there's no point in doing it

#

no fun

storm bobcat
#

i used an llm to check over it and it did find a few errors i made

#

but it was mostly just me copy pasting code around and forgetting to adapt it

autumn jasper
storm bobcat
#

the load balancing stuff in particular

#

that's the only way

autumn jasper
autumn jasper
storm bobcat
#

eventually

#

but now i have j*b so I have less time

near tartan
#

i am free from my job for the rest of the week

storm bobcat
#

and it's draining blue collar work so I dont have much time at night to do a lot of stuff

near tartan
#

so i want to make it count

#

is nbsds turnstile impl useful

storm bobcat
#

afaik it's pretty similar to solaris's original code

#

so yea

#

they do the solaris lock pointer thing tho

near tartan
#
 * Turnstiles are described in detail in:
 *
 *    Solaris Internals: Core Kernel Architecture, Jim Mauro and
 *        Richard McDougall.
storm bobcat
#

yea i told you that

#

solaris book and freebsd book both go over it

#

tbh I'm not really sure what the XNU and freebsd impls do much more than solaris

#

XNU's is like 3k lines or something

#

uses pairing heaps

#

i decided against that because it wasnt really worth it i thought

marsh holly
#

NEETs of the world, unite! we have nothing to lose but our chains
chad🚬
🪰

near tartan
#

i will larp more and call my include dir sys/

storm bobcat
#

you should larp NT instead

#

much cooler

near tartan
#

nah

storm bobcat
#

NT directory structure i mean

#

/ layout

near tartan
#

KiLlingMySelf

#

idk how it looks

marsh holly
#

KeAcquireBitches

storm bobcat
#

i like ke_acquire_lock

#

dont have to be PascalCase

near tartan
#

i don't like the prefixes everywhere

storm bobcat
#

cool strict-ish layering though

#

it just gives order to the thing and forces you to separate subsystems which i like

near tartan
#

wtf is wrong with clang

autumn jasper
near tartan
storm bobcat
#

did DG/UX do layering

autumn jasper
#

Yes

#

Independently

near tartan
#

@brisk totem help what is clang smoking

storm bobcat
#

i remember i have the source code but never ended up really digging through it

autumn jasper
#

It also did prefixes on everything with 2-3 letter abbreviations but as snake case instead of pascal case

storm bobcat
#

I dont like the NT inconsistencies tho

#

like, Ki vs Exp

autumn jasper
#

then don't imitate them

#

i do Kep

#

and Exp

#

and -u for stuff exported to other subsystems but not to kernel modules

storm bobcat
#

lol i forgot it did this

storm bobcat
autumn jasper
#

isn't it awesome ..

storm bobcat
#

oh clanker finally responded

#

to the mintia thing

#

idk the mintia code enough to say

near tartan
#

this is my kernel

autumn jasper
#

I'm p sure the last one is wrong it just doesn't understand the reaping logic

storm bobcat
near tartan
storm bobcat
#

yea i see the prefix things in dgux but it's unclear what those prefixes all mean

autumn jasper
#

NT has a piss prefix

#

And a PlayStation Portable prefix

#

are those clear?

storm bobcat
#

clearer

#

I found the meaning of cm at least, it's "channel manager"

#

there was something in the late 80s/early 90s that lead people to name everything "X manager"

autumn jasper
#

Its configuration manager

marsh holly
storm bobcat
#

in dgux

autumn jasper
#

oh

#

thought u meant NT

storm bobcat
#

yea ik NT is cache manager, they just happen to share that prefix ig

marsh holly
# near tartan

this guy is larping so hard he even copied the copyright header

storm bobcat
#

they also share ps but idk what that's about yet in dgux

autumn jasper
storm bobcat
#

i think its just an assembly thing

autumn jasper
#

it's bc they were both the product of mainframe OS engineers who had been doing asm for like a decade, where that was basically mandatory to make giant kernel codebases in asm maintainable, doing C for the first time

#

and carrying over the habit

#

yeah

marsh holly
#

they had secret cia llm tech before it was public

autumn jasper
#

don't care about whatever joke ur about to make

#

blocked u preemptively

marsh holly
#

😭😭

storm bobcat
#

they always call it the "PS subsystem" and never say what it actually is 😭

near tartan
storm bobcat
#

it seems like ipc stuff

#

no in dgux again

autumn jasper
#

oh dgux

#

wow

storm bobcat
#

I kinda assumed PS meant process subsystem in NT, ig structure makes more sense though otherwise all other prefixes would have S

autumn jasper
#

I realized it meant process structure when i saw that phrase being used everywhere in like VMS and Mica writings

storm bobcat
#

I just call it proc because I'm a loser

#

the best i can figure out on PS is it's something like "process synchronization" since it seems to contain a bunch of IPC primitives

near tartan
#

struct lwp

storm bobcat
#

yeah lwp is weird terminology

#

i think only netbsd uses that

#

though dflybsd has lwkt

#

@autumn jasper there's also this

autumn jasper
#

I'll report back how many of these r substantial

#

@storm bobcat give it my turnstile impl...

storm bobcat
#

which file is it

near tartan
#

anyways

storm bobcat
#

ah KeTurnstile

near tartan
#

good night, please dont spam so much so i don't have to scroll far

storm bobcat
#

@autumn jasper

#

the only useful one is #1

sick tangle
sick tangle
magic charm
#

primarily existing because of a distinction drawn between userland threads and the substrate that they run on (M:N threading models)

autumn jasper
#

i fixed them

autumn jasper
# sick tangle Is its source code open?

not legally but its extremely unlikely anybody would come after you for studying a tape dump of an early version of its sources of DG/UX for the Nova architecture from 1989

#

considering its been gone since the 90s

#

i dont even know who owns it

autumn jasper
#

its intentional that it gets smothered underneath all real time / interactive threads and that only the priority of the former is used if any are in the waiter heap

hybrid island
#

Bring me the soupy macros

autumn jasper
#

the code was also generally cleaned up around there

near tartan
#

today I'm going to try to get an ELF loaded from memory

#

signalfd is stupid

#

the bsd epoll shim redefines read as a macro

nocturne rampart
near tartan
#

yes

#

but i want to move to kqueue

#

and kqueue has a signal filter

#

but signalfd is accessed with a read()

nocturne rampart
#

So now bsd larp-

near tartan
#

yes

#

literally

leaden stirrup
#

maybe it's already there, but I didn't get it

autumn jasper
#

its quite problematic to try to do

#

as a result ive just not been using shared locks

#

except for locks that are like at the very tippy top of the kernel's locking hierarchy AND which are only taken by threads that are probably not doing anything latency sensitive

#

such as a shared lock for the filesystem name cache

hard lark
#

and they have huge turnstile implementation

autumn jasper
#

solaris just keeps track of the first shared acquirer and does PI through him only

#

any additional ones are forgotten

#

i dont even bother with that lmfao

hard lark
#

one thing xnu does and oyu dont is WaiterPriorityChanged handling

#

they have turnstile_update_thread_priority_chain

dreamy scaffold
autumn jasper
#

I don't know if it's airtight though or if it can fail to track all shared holders sometimes

dreamy scaffold
#

maybe they're implementing it in a more selective and more expensive way

#

or maybe their design is just smarter to begin with... I don't know

dreamy scaffold
uncut jackal
#

so like it may not be idiomatic but there is an implementation in the source

near tartan
#

wait so nbsd's timerfd is fake?

uncut jackal
#

no idea

near tartan
#

i might leech off of the netbsd mlibc port

uncut jackal
#

which is in really early stages

#

it could be useful in the future

near tartan
#

ye

uncut jackal
#

the netbsd port will have the linux option unsupported (could change in the future)

near tartan
#

i don't support the linux option anyways

#

you could enable the epoll option tho

#

then copy the epoll shim to mlibc

uncut jackal
#

it will have the glibc option supported but I also want it to build without the glibc option

#

pure bsd+posix+ansi

uncut jackal
#

@near tartan

#

netbsd-mlibc is back to where it was

#

(it segfaults on flush i think)

near tartan
#

nice

#

hm

uncut jackal
#

yea i couldn't debug it last time

near tartan
#

because of time or you didn't know what it was?

uncut jackal
#

seemingly it flushes after the file descriptor is closed?

uncut jackal
near tartan
#

i mean if you build with debug symbols you should see where it dies

#

you have the coredump

uncut jackal
#

yea that's what I did

#

it dies somewhere in exit

near tartan
#

can you show the disasm?

uncut jackal
#

it seemingly calls flush once then closes then calls flush again

uncut jackal
#

I'm going off memory

near tartan
#

(probably move this to the mlibc channel too)

#

but thanks

storm bobcat
#

i love how there's a discussion about mintia and zag in a thread named zinnia, it was meant to be...

autumn jasper
#

By nature they will all get a turn Eventually

#

And are assumed not to require responsiveness

storm bobcat
#

yeah but the priority inheritance is so that they get the same turn

autumn jasper
#

So may as well save the cycles

storm bobcat
#

maybe idk

autumn jasper
#

actually there is a problem which is idle priority threads

#

you could get priority inversion if a timeshared thread blocks on an idle priority thread

#

bc idle priority threads never run until all timeshared threads have blocked

#

oopz

leaden stirrup
#

I'm also not sure what it does if the allocation of a head from the lookaside fails

near tartan
#

okay i need to find a way to deal with login1 bullshit so i can upstream plasma

#

i think i'm going to make a portable logind that poeple can use

#

my solution for now is quite simple, it just stubs the hell out of everything and sends static data over

#

i know i love changing my mind regarding rewrites

#

but for now it's still the most effective solution to just fix what i have

#

this means i have to redo:

  • the scheduler (i will adapt the design from Zag)
  • signal handling
  • VFS operations
#

the problem with VFS is that currently i separate between an open file and a vnode

#

this leaves me with two layers of file operations

#

i think for me it makes a bit more sense to just have FileOps be part of <NodeType>Ops

#

for the scheduler, i need to start respecting CPU affinity and i want it to be aware of CPU topology

#

i am also refactoring the arch:: abstraction so it's less confusing

#

maybe i can make it a public trait and pass it as a generic parameter to functions that call it 🤔

#

i saw that

#

but yeah, regarding chatgpt, i'm not using it anymore to do kernel code

#

while it did fix some issues, the code is a liability and i don't want it around anymore

#

lastly, i want to add support for direct EFI boot

#

this isn't some vendetta against the limine protocol, but it's something i've wanted to do for a long time

#

i'm still going to use limine as the bootloader

uncut jackal
near tartan
#

it's very simple

#

it's like 3 files

#

like, i already made it

#

i just need to wire it up to meson

silver birch
#

there are operations which are only appropriate for an inode and others for an open file

near tartan
silver birch
#

yeah

near tartan
#

so now I'm not sure if i want to keep that design, or just route everything through the inode

storm bobcat
#

werent you rewriting

near tartan
#

read above

marsh holly
storm bobcat
near tartan
near tartan
#

i spent my vacation working on managarm and now i have like no time left to work on my shit 😔

#

i just come home exhausted af

marsh holly
#

I have spent the past 5 days vibecoding late into the night/not sleeping

#

All I get is more chud rage

near tartan
#

soyboy website

marsh holly
#

For an event

marsh holly
marsh holly
#

Its been fun I could larp with 3 other people in a hotel lobby as SF founders

near tartan
#

btw @storm bobcat i ended up implementing the initgraph subtrees

#

these depend on the dt.parse-blob stage at the top of the screenshot

#

so they get all skipped

nocturne rampart
near tartan
#

yes

#

it's going to be a bit tricky with cargo but i'll figure something out

nocturne rampart
#

Zinnia UKI images confirmed

near tartan
#

💀

#

maybe i can also add Hyper support

#

can't hurt

uncut jackal
#

I'm going to be really honest

#

multiple boot protocol support is only really useful if the protocols are like genuinely limiting what platforms a kernel can get booted on

shy turret
uncut jackal
#

like multiboot2+limine+hyper wouldn't really be useful if you're only targeting x86

shy turret
uncut jackal
#

abstract it between more useful stuff then idk

near tartan
#

right now it's only x86_64, aarch64, riscv64

uncut jackal
#

cool

near tartan
#

but I'll probably be limited by what mlibc supports anyways

uncut jackal
#

if you want to support direct EFI boot then most of the bringup (e.g. SMP) will need to be done by your kernel right?

shy turret
uncut jackal
#

at that point I'd just do efi+linux boot protocol

near tartan
#

i think the linux boot protocol is legacy and quite shit

uncut jackal
#

linux boot protocol for risc isas*

near tartan
#

i use 0 features from limine that are limine specific

uncut jackal
#

that's literally just a jump and usually 1-2 registers

near tartan
#

yeah the x86 one not so much

near tartan
uncut jackal
#

so I go all out on limine features

uncut jackal
#

EFI probably covers enough

near tartan
#

ye

near tartan
#

doing smp startup is not really hard

uncut jackal
#

yea it's not

#

but supporting a much more barebones protocol and a much more fleshed out protocol together doesn't really make sense to me

#

the boundary of where the kernel's responsibilities start is vague then

#

like if limine will always be booted by EFI and you support EFI why add that extra jump in between

#

if limine is to be used as a boot manager then do efi chainload ig

near tartan
#

all i need from a boot protocol is:

  • RSDP or DTB address
  • memory map
  • hhdm mapping for bootstrap
  • initramfs
uncut jackal
#

now what I would get is something like

#

linux-risc+efi+iboot2 or other vendor specific

near tartan
#

even on apple i can use efi

#

the issue with pure efi boot will probably be loading an initramfs

uncut jackal
#

UKI is not actually that bad of an idea

near tartan
#

i don't like ukis even on Linux

uncut jackal
#

or you could take some ideas from the android world

#

dtb partition initrd partition etc

#

on disk

#

you'd need a disk driver but filesystem implementations (other than whatever you're using for your initramfs) can reside in modules or userspace or wherever

#

you can even a/b the initrd partition

#

for system upgrades

near tartan
uncut jackal
#

it is

near tartan
#

having a partition with just a big cpio archive xd

uncut jackal
#

it's not a partition with just a big cpio archive

#

it is a partition with no fs that is just a cpio archive

near tartan
#

yes?

#

that's the same sentence

uncut jackal
#

i thought you meant like

#

a partition with an fs with just 1 file

near tartan
#

nah

uncut jackal
#

that is the initrd

#

i think the reason android kinda does that is because the "disk" is emmc/ufs and the boot chain is not the only thing that reads those partitions

near tartan
#

my initramfs parsing is in kernel anyways, would be hard to load modules otherwise

uncut jackal
#

that are not read by the kernel usually

#

the other chips themselves read them

near tartan
#

yeah i have seen something like this on a few risc-v sbcs

uncut jackal
#

i found this online

#

real list of partitions from an android phone

#

there's arm trusted firmware stuff

#

there's modem stuff

near tartan
#

nice date

uncut jackal
#

there's dsp stuff

#

there's a logo partition ffs

#

I've modified that before btw

#

changing boot logos is fun

near tartan
#

honestly, i wonder what it would take to boot zinnia on a phone

uncut jackal
#

i will do osdev for a phone if I get a cheap second hand easily moddable phone

near tartan
#

an older one ofc

#

maybe a pixel?

uncut jackal
#

pixels are expensive and have never entered the market here

near tartan
#

pixels aren't expensive

uncut jackal
#

they are here

#

because they are officially not in this market

near tartan
uncut jackal
#

ok now find one in turkey

#

or better yet gift me one

near tartan
#

come to fosdem i might

uncut jackal
#

i actually might

#

i currently have a turkish special passport

#

gotta make use of it before it expires

#

i wonder if I can get my university to fund a 10-15 person trip to fosdem

#

they're already funding my trip to poland in september

#

lol

#

partially*

near tartan
#

lol

uncut jackal
#

I'll be in poland in september

#

for ERC

#

european rover competition

uncut jackal
#

special and personal i think?

#

we don't call them that so I might have remembered the english names wrong

#

we call them green and red

#

they're both regular people passports but red is for everyone and green is for state workers and family

#

green has visa-free entrance to pretty much everywhere

#

except the us and uk

#

i am not a state worker I am the child of one so mine is going to expire when I'm 25

#

i have not made use of it yet

#

i think android has some superpartition magic btw

#

"partition"s are kinda more like volumes

#

i think

#

i haven't looked too much into this

near tartan
#

ew

uncut jackal
#

i don't think they have a set size

near tartan
#

i should add apfs support KEKW

#

wonder how bad it is to impl

uncut jackal
#

but they're definitely not just one fs

#

so idk what they're doing to make that work

uncut jackal
near tartan
#

think so

uncut jackal
#

i don't think I succeeded in mounting macos in my friends asahi mac

near tartan
#

there seems to be a fuse driver

uncut jackal
#

fun fact

#

one of the SBCs in our rover

#

runs ubuntu 20.04 userspace with linux 7.1.4

#

the SBC got mainlined in like 6.18

near tartan
#

cursed

uncut jackal
#

but we needed 20.04

#

which is on like

#

5.8 or smth

near tartan
#

but i mean the kernel shouldn't break userspace anyways

uncut jackal
#

ye

uncut jackal
#

with debootstrap

#

the kernel is the latest nixpkgs aarch64 kernel

#

lol

near tartan
#

i should port nix to zinnia

#

for larp

#

oh man so many cool things i could be doing

#

i don't know where to start

#

well, i guess i should sort out my outstanding 80 file diff

uncut jackal
near tartan
#

port it to zinnia too chad

uncut jackal
#

i mean

near tartan
#

idk it should compile, it's just c++ right?

uncut jackal
#

nix assumes a lot of unix stuff

#

windows port is damn hard (idk if it has happened yet)

near tartan
#

zinnia is posix

uncut jackal
#

but

#

ports to bsds etc exist

#

it's doing great

#

will probably have some bugs in mlibc

#

then a-ok

near tartan
#

whatever fixes you get in mlibc will probably also help me

uncut jackal
#

I have lots of bugs to fix in mlibc fwiw

#

mlibc in nixpkgs can't get binutils to build

#

because I build with tests enabled

near tartan
#

huh

uncut jackal
#

even a single test in some random dependency failing makes the build not go thru

#

which i want

#

it finds a lot of bugs

#

nix runs the test suite of anything i attempt to build for mlibc

marsh holly
#

Mlibc can build binutils without the tests (done it for astral) but Ive never tried it with the tests

uncut jackal
#

the issue is not Binutils yet

#

the dependencies don't build with tests

tough thistle
#

They do some cool stuff in relation to prioritising cores close to the task during migration, aswell as cores without noisy neighbours and weighting SMT cores accordingly

#

Although I’d say it’s a lot more affinity / topology aware than the credit2, it doesn’t really handle load as well as the credit2, which replenishes credits differently (which was a source of performance degradation in credit1 due to them replenishing at fixed intervals of time) , doesn’t fall victim to the multiboost problem, and puts an upper bound on cpu utilisation using a deferrable server

#

credit2 is a lot smarter in how it decides what cores to push/pull from based on what migrations will do to the load of the runqueues involved

near tartan
#

actually, good news about running zinnia on a phone

#

my old phone is a oneplus 9

#

which has an open bootloader

nova tiger
#

random side quest

near tartan
#

only limitation is that it's going to be EL1 only

#

but that's fine

near tartan
#

apparently it's a really good target because i can sideload limine

#

they use a stripped down edk2 it seems

shy turret
#

Could be another good target PSP1G_pspTrollar

#

And it's funny

near tartan
#

cursed

#

i have other aarch sbcs

#

that i want to support as well

near tartan
#

if anyone cares

near tartan
#

i LOVE xonotics build system