klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
[itchyjunk] has quit [Ping timeout: 240 seconds]
[itchyjunk] has joined #osdev
gog has joined #osdev
<netbsduser`> now that i have storport drivers operating it's high time i write a scsi stack
Burgundy has quit [Ping timeout: 240 seconds]
duderonomy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
grumbler has quit [Quit: It's time]
<heat> the fuck
<heat> greek philosophy in #osdev eh
vdamewood has quit [Quit: Life beckons]
duderonomy has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
blockhead has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
agent314 has quit [Ping timeout: 244 seconds]
agent314 has joined #osdev
agent314 has quit [Ping timeout: 244 seconds]
heat has quit [Remote host closed the connection]
goliath has quit [Quit: SIGSEGV]
heat has joined #osdev
netbsduser` has quit [Ping timeout: 240 seconds]
heat has quit [Ping timeout: 245 seconds]
valshaped742488 has quit [Quit: Gone]
valshaped742488 has joined #osdev
netbsduser` has joined #osdev
CaCode has joined #osdev
netbsduser` has quit [Ping timeout: 240 seconds]
gog has quit [Ping timeout: 264 seconds]
stolen has joined #osdev
Arthuria has joined #osdev
netbsduser` has joined #osdev
CaCode has quit [Quit: Leaving]
netbsduser` has quit [Ping timeout: 244 seconds]
zxrom has quit [Ping timeout: 252 seconds]
Arthuria has quit [Ping timeout: 240 seconds]
netbsduser` has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
netbsduser` has quit [Ping timeout: 264 seconds]
rustyy has quit [Quit: leaving]
ThinkT510 has quit [Quit: WeeChat 4.0.4]
ThinkT510 has joined #osdev
rustyy has joined #osdev
netbsduser` has joined #osdev
elastic_dog has quit [Ping timeout: 245 seconds]
elastic_dog has joined #osdev
netbsduser` has quit [Ping timeout: 264 seconds]
zxrom has joined #osdev
GeDaMo has joined #osdev
<immibis> was the execute permission bit a mistake?
zxrom has quit [Ping timeout: 240 seconds]
<sham1> Maybe you don't want to have everything be executable
<immibis> execute permission is only relevant to setuid/setgid executables
<immibis> otherwise you can run them through their interpreters
<immibis> (this includes dynamic ELF files, which are interpreted)
<sham1> But how do you know if somehting is meant to be executed
<immibis> idk, how do we know if it's meant to be opened in libreoffice?
<sham1> File associations
<immibis> there you go
<sham1> ...you want to add file associations for executing things
<sham1> First of all, how is that different from an executable bit
<immibis> why don't we have a libreoffice permission bit?
<sham1> Because libreoffice isn't fundamental to the system the same way executable are
<immibis> most executables are just data for interpreters
<zid> r and x very similar ngl
<sham1> A statically linked ELF file isn't, and that's a lot of the executables out there
<zid> if it's r I can copy it and chmod it +x, no matter what the other perms are
<immibis> x is only relevant in a few niche cases where you want to deny read to something that can be executed, or it's setuid
<zid> only really matters for yea, setuid
<immibis> x is really "permission to use the setuid bit" - it doesn't stop anyone from executing anything
<immibis> sham1: maybe if executable is so fundamental, it should be a file type, not a permission bit. You know: device file, symlink, directory, data file, executable
<immibis> but that also seems unnecessary.
<sham1> I agree, it should be
<sham1> But that's not how it is, so we're stuck with the executable bit
<immibis> sir, this is the channel for talking about making new operating systems. We're not constrained by compatibility here.
<sham1> That's not very POSIX of you.
<sham1> And sure, you can make your own filesystems and such for this, but do you really want that effort
<sham1> There's a reason why so many people go with FAT32 or ext2 or whatever
<immibis> It's really funny you say that, because FAT32 doesn't have an executable bit.
<sham1> Indeed
<sham1> But ext2 certainly does
<froggey> posix delenda est
<froggey> I'm ignoring ext2's x bit (actually all the permissions bits entirely)
<immibis> you can also choose to misuse features, like, you could use the short name file extension to hold POSIX permissions in hexadecimal
<immibis> and that won't massively hinder your ability to use third party tools to manipulate the filesystem
<sham1> Like I'm not opposed to the disappearance of the executable bit, even though it might seem as such
<immibis> it certainly does seem as such. Remember, I'm not working with Linus Torvalds to phase it out from Linux. You don't have to defend it based on the fact that removing it would break all your systems.
<sham1> Although one of the nice things about UNIXoids is that I don't need to label my every executable as .exe or whatever
<sham1> .scr
<immibis> you just have to label every archive as .tar.gz. file extensions are used by convention on linux
<sham1> Honestly in this kind of a system I might just go off the deep end and tag every file with the content MIME type
<immibis> I label my Linux executables .exe in cases where it's not obvious which one is the executable
<immibis> foo.c makes foo.exe
<immibis> I don't like calling the file foo sometimes. It's not THE foo, it's just a different file type for foo
<immibis> sometimes
<immibis> MIME types aren't a universal way to identify file formats either
<immibis> like I remember there isn't one for .exe so it defaults to application/octet-stream because Microsoft has no need to allocate one
<sham1> So the .tar.gz would get something like `application/gzip` or maybe even application/vnd.tar+gzip
<immibis> however you could have something based on UUIDs. UUID/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/subtype
<sham1> Or I suppose `application/x-tar+gzip`
<sham1> For some reason there is no official media type for tape archives
<immibis> in the multimedia world a lot of files are tagged with multiple types, e.g. a HEIC can be tagged as a valid HEIC, a HEVC (with one frame), and more specific profiles indicating how it can be decoded (like baseline profile or one requiring advanced features to decode) and it could be something else as well (maybe like a valid MRI imaging data file or something, or an Unreal Engine texture file, or ...)
<immibis> sham1: I think that's because browsers and email clients are the main users of MIME types. They don't need one for anything that's downloaded to disk
<immibis> and gzip is a content-encoding rather than a file type
<kof13> hmm....i will just say there is a +x or not on ram as well...this is not to say anything except someone looking there might come up with different ideas than someone looking at disk/file systems. i do not mean to equate them either
gog has joined #osdev
zxrom has joined #osdev
gog` has joined #osdev
gog has quit [Ping timeout: 240 seconds]
<immibis> It didn't always. The X bit in RAM is defence in depth against exploits.
<immibis> You could argue the filesystem needs a similar defence to prevent an attacker who gained control of a program from writing other programs to disk as data files, then executing them. Is this useful?
<immibis> it could be, but it's a defence in depth measure and not a fundamental part of the system
<immibis> In some programs it wouldn't be hard to make them write a temp file that is also a valid program. Then you need a CreateProcess control with an attacker-controlled path
<immibis> call*
janemba has quit [Ping timeout: 255 seconds]
<immibis> so it's a defence against CreateProcess calls with attacker controlled paths
<immibis> Maybe it should be called a mitigation rather than a defence. It makes it harder for the attacker to find a path they can use
Burgundy has joined #osdev
janemba has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
zaquest has joined #osdev
netbsduser` has joined #osdev
dinkelhacker has quit [Server closed connection]
dinkelhacker has joined #osdev
bauen1 has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
stolen has joined #osdev
goliath has joined #osdev
orccoin has joined #osdev
merry has quit [Server closed connection]
merry has joined #osdev
heat has joined #osdev
vdamewood has joined #osdev
grumbler has joined #osdev
<heat> you will be missed
<ChavGPT> [']
<ChavGPT> now i feel bad about talking shit about it
<gog`> pour one out for itanium
<ChavGPT> pour one for computer necrophiliacs
<ChavGPT> [not my description!]
<gog`> cracking open a cold one fora cold one
<ChavGPT> really though, who is left with itanium support
<ChavGPT> it's not netbsd
<ChavGPT> itanium might be the youngest arch to die off
<gog`> so sad
<ChavGPT> openbsd does not have the port either
<ChavGPT> at this point i geuninely wonder if anyone does
<heat> HP-UX
<ChavGPT> X
<heat> i've always stanned enterprise UNIX
<heat> not like those lazy commie UNIXes with their ""open source""
<heat> netbsd people so lazy they couldn't finish their dang itanium port!
<gog`> gross
<gog`> open source
<heat> do not open things
<heat> most things should remain closed
<ChavGPT> do you intned to port onyx to itanium
<ChavGPT> come to think of it
<ChavGPT> why do you even support amd64
<zid> did the remove get picked up
<heat> i have thought about an itanium port and i have an ia64 toolchain installed
<zid> looks like the convo didn't go anywhere, not sure what happened to the actual patches later on
<ChavGPT> there was a guy who suggested freebsd gets first class sparc support
<zid> arch/ia64 still getting patches, so I guess it's still there
<heat> >Hugh Dickins
<heat> Dick Sites vibes
<ChavGPT> :)
<ChavGPT> maybe they are cousins
<zid> heat: I'm going to start brewing cidr
<zid> cider
<zid> I'm naming it Dickins Cider
<ChavGPT> bigus dickus innit
<heat> yay i don't think it has been merged yeah
<heat> yet*
<ChavGPT> you mean i started getting wasted prematurely?
<zid> YET, ominous
<zid> tbh the patch is from fucking march
<zid> doesn't look like anyone cares either way
<ChavGPT> that's probably not the one
<ChavGPT> march is about the time it first came up this year i think
<bslsk05> ​lore.kernel.org: [GIT PULL] Remove Itanium support
<zid> nobody minds throwing the odd ia64 line in when they touch mm.c, in exchange for it not rotting
<heat> there's a PR, it just hasn't been merged
<zid> oh I'm not on the ia64.git
<heat> no nice "hey it has been merged" email nor is it in linus's tree
<zid> guess it makes sense it'd go through that tree
<zid> but the RFC on the main lkml was march, and it got "meh" responses
<heat> what tree?
<heat> linus wanted to keep it tbf
<heat> that soft hearted bastard
<netbsduser`> why the rush to delete ia64 anyway
<zid> well, it was a very soft keep, because it was so easily fixable
<netbsduser`> linux is called a portable kernel so it shouldn't be impacting anything else
<ChavGPT> it is unamaintained and peple clam it is getting in the way
<zid> but didn't have strong feelings about it going if it was deemed broken and unmaintained
<netbsduser`> incredible, popular support of mips, alpha, and parisc is clearly going to outlive itanium by far
<heat> linux is a portable kernel
<heat> but ia64 stands in the way of progress
<heat> and literally no one is testing that shit
<netbsduser`> what progress is it blocking?
<netbsduser`> not being sarky just curious what their rationale is
<heat> mm refactoring, etc
<heat> every function that is introduced needs to be supported on all architectures and tested on all architectures
<heat> the itanium build has been broken in some bits of the kernel for the past few months and no one said a word
<ChavGPT> so portable
<heat> i don't see how this speaks remotely about linux's portability
<ChavGPT> you ok there mate
<ChavGPT> i was building on 14:22 < netbsduser`> linux is called a portable kernel so it shouldn't be impacting anything else
<heat> yes im fine
<netbsduser`> there was once a time when you might read articles about this in the open source news sites, but i just checked phoronix and they would rather discuss the new black-and-orange colour mode for gnome's performance heatgraph
warlock has quit [Quit: Lost terminal]
<heat> about what?
<ChavGPT> i don't recall phoronix being anything but a computer tabloid
<ChavGPT> at any point
<netbsduser`> the latest contentions and controversies in the linux kernel community
<ChavGPT> you should read lwn instead
<ChavGPT> like why is the name phoronix even popping up
<zid> phoronix is gaming on linux mag
<zid> you're thinking of the lkml blog thing
<bslsk05> ​lwn.net: Kernel code on the chopping block [LWN.net]
<zid> lwn, that's it, thanks
<heat> but this is old
<heat> also
<heat> >The most recent discussion about its future happened as a result of this patch from Mateusz Guzik, who had tracked down a locking performance problem that, seemingly, originated in a cpu_relax() call that is only needed by the Itanium architecture. That led Tony Luck, once a maintainer of that architecture in the kernel, to ask:
<heat> this mateusz guy is a real obnoxious c-
<ChavGPT> tony luck is hte guy who called them "computer necrophiliacs"
<ChavGPT> ye that mg guy is a total twat
<heat> deleting our favourite architecture from our kernal!
<ChavGPT> why is itanium sees as a problem
<ChavGPT> netbsd has a port and is doing fine
<ChavGPT> amirite
<heat> >netbsd
<heat> >doing fine
<gog`> hi
<netbsduser`> i can understand wanting to drop a port from linux
<heat> hi gog`
* ChavGPT hugs gog` before there is a queue
<netbsduser`> what was truly unforgivable was when a python guy had a fit of pique and issued a barrage of "Improvement Requests" aiming to delete numerous ports from Python
* gog` hug
<netbsduser`> when he saw an #ifdef __m68k__ that would reduce the alignment requirement for pointers from 4 to 2 bytes on the platform, he flipped his lid and called it "technical debt"
<heat> yeah ifdef m68k sounds ripe for the deleting
<netbsduser`> it was just relaxing alignment requirements
<heat> what if you need those bottom bits for something
<heat> and the only blocker is m-sixty-eight-fucking-kay
<netbsduser`> this guy had gotten infuriated with gentoo for whatever reason and launched a crusade against them
<ChavGPT> gentoo?
<ChavGPT> lmao
<Ermine> at least getpid is in vdso on itanium
<ChavGPT> i thought gentoo is a meme distro at this point
<ChavGPT> Ermine: what/ :D
<heat> even gentoo users are infuriated with gentoo
<ChavGPT> how id that came to be
<netbsduser`> well, that's just the problem, they didn't need them and he thought it was imposing requirements rather than reducing them so to speak
<heat> "i really need to build my web browser???"
<netbsduser`> i think he misunderstood it as increasing alignment requirement
<ChavGPT> i would expect that from rust people
<heat> wait huh getpid in the vdso?
<ChavGPT> :X
<netbsduser`> i see it as a social phenomenon rather than a technical one
<Ermine> look at man vdso
<netbsduser`> the mailing list was full of railing against "hobbyists"
<ChavGPT> lmao
<ChavGPT> wait
<ChavGPT> getppid?
<ChavGPT> wtf
<Ermine> well, there's a thingie called fsys which is done through vdso
<ChavGPT> how did *that* happen
<ChavGPT> "fsys"
<ChavGPT> huh
<gog`> ppid
<Ermine> gog`: may I ppid you
<gog`> yes
* Ermine ppids gog`
<ChavGPT> is that a urine-related fetish
<heat> oh ok fsys is not the same thing
<ChavGPT> maybe keep it off channel
<gog`> lmao
<ChavGPT> Los Almaos
<heat> hello ChavGPT i have a conundrum for you
<ChavGPT> a geezer did it
<heat> lets say you want to drain pcpu data on your kernel allocator *without doing it remotely*, you need to do an smp call
<heat> problem is if the other cpus have irqs disabled waiting for a lock you hold, or something
<heat> this whole scheme sounds deadlock-prone?
LambdaComplex has quit [Server closed connection]
<ChavGPT> it very much is a deadlock
<ChavGPT> how did you end up there
LambdaComplex has joined #osdev
rorx has quit [Ping timeout: 245 seconds]
<heat> i didn't, yet
* ChavGPT is about to change his zsh fconfig for first time in a decade
<heat> >zsh
<heat> i need not say a word
<ChavGPT> lemme guess
<ChavGPT> you either roll with highly customized fish or stock bash
<ChavGPT> which is it
<heat> stock bash
<ChavGPT> lmao
<ChavGPT> anyway i'm changing default time(1) format
<heat> time(1)
<heat> are you in BSD circles atm?
<ChavGPT> i write it on purpose since you wre complaining about referring to stuff with man sections
<heat> good(3p)
<ChavGPT> so happens i'm patching up some bsd as we speak
<ChavGPT> i wrote some code which was less fast than it could have been
<ChavGPT> as in there were ez speed ups to get which i did not go for
<ChavGPT> and someone run into this not being fast enough
<ChavGPT> rna
<ChavGPT> ran
<heat> what code
<ChavGPT> freakin vnode reclamation
<ChavGPT> i was damage-controlling massive geezerisms
<ChavGPT> chekc this out
<bslsk05> ​fxr.watson.org: fxr.watson.org: FREEBSD-12-STABLE sys/kern/vfs_subr.c
<heat> RACY
<ChavGPT> this code is so shite
<ChavGPT> i was angry patching it
<ChavGPT> anyhow it does the workload in about 160 seconds
<heat> td = curthread;
<heat> isn't this silly or is your curthread not properly tagged
<ChavGPT> my previous state was doing it in about 60, now it is 40
<ChavGPT> and i have extra work to bring it down to 30
<ChavGPT> it's a leftover from a belief that 'curthread' would always expand to an explicit load
doppler has joined #osdev
<ChavGPT> which was very likely true at the time given how lol-quality these macros used to be
<ChavGPT> "the time" would be 15+ years ago
<ChavGPT> naywya with my extra patchen the main bottleneck is zfs itself
doppler2 has quit [Quit: doppler2]
<ChavGPT> which suffers massive funny locks
<ChavGPT> so much for solaris scalability innit
<heat> i haven't fixed it yet on mine
<kof13> well it is interesting that hobbyist is the professional or even enterprise of yesteryear
<netbsduser`> zfs is the last word in filesystems
<heat> use ext4
<heat> ext4 is the first and last word in filesystems
<heat> perfect in every way, unlike ZFS that buggy mess
<heat> my bug report never got a reply
stolen has quit [Quit: Connection closed for inactivity]
<ChavGPT> funny you mention ext4
<ChavGPT> it has a PESSIMAL problem on file open
<ChavGPT> which artifically shafts scalability
<ChavGPT> i'm gonna fix it later
<heat> good
<heat> wait
<heat> it has a what problem
<ChavGPT> OH
<ChavGPT> it performs a lol check on parent dir
<ChavGPT> which comes with a ref and unref
<heat> that sounds PES-ungood
<ChavGPT> not the worst for sure!
<ChavGPT> really though there is a bunch of benches which should have about linear multiscore scalability
<ChavGPT> and they don't
<ChavGPT> and nobody seems to know
<ChavGPT> the intel machinery somehow does not publish full results, only notifies peoplew hen something changs
<ChavGPT> changes
<ChavGPT> for example, that entire fstat debacle would have been caught early
<ChavGPT> since fstat should scale perfectly
<ChavGPT> and the way it got temporarily reimpemented in glibc shafts it with lockref
[itchyjunk] has joined #osdev
<kof13> or, i should say, i thought python started out "academic" anyways...not bashing, just noting the marketing changes
<ChavGPT> languages which should not take off keep doing it
<ChavGPT> see perl
<ChavGPT> and javascript
<ChavGPT> and of course everyone's favourite: php
<kof13> i used python for a school assignment a long time ago. it wasn't in schools. i could only use it because i could compile to an .exe that the teacher could run without installing anything
<ChavGPT> he ran your exe? :D
<ChavGPT> lmao
<kof13> so you could use any language, so long as it was one executable to run
<kof13> well he was a cool guy
<netbsduser`> kof13: python was invented as a scripting language for Tenenbaum's 'AMOEBA' microkernel OS
<kof13> that too ^^^
<ChavGPT> joke which got way out of hand
<ChavGPT> nothing new here innit
<kof13> well it had to run on windows is what i mean .exe
<kof13> again, teacher wasn't a huge fan :D
<netbsduser`> perhaps the biggest merit of python is that it's so easy to outperform the official interpreter
<netbsduser`> it made me feel good about my smalltalk vm
<heat> netbsd has lua in the kernel lmao
blockhead has quit []
<ChavGPT> it is a dead idea
<netbsduser`> lua has a very good interpreter, fast
<ChavGPT> how did that come up though
<heat> ey boss the linux people have a full new bytecode language which is extensible and does fucking everything
<heat> fuck it, add lua
<ChavGPT> i think that lua thing predates ebpf
<ChavGPT> it is *OLD* man
<netbsduser`> it was merged in 2013
<heat> ey boss the netbsd people have a full new bytecode language which is extensible and does nothing
<heat> fuck it, add bastardized BPF
<netbsduser`> i am not actually aware of anyone using it apart from some masters thesis written in brazilian portuguese about packet filtering with it
<heat> lol
<heat> bpf with extra steps
<heat> and slow
<ChavGPT> > talk abut bsd
<ChavGPT> > be surprised "slow" comes into play
<netbsduser`> i remember in 2019 the future was linux was going to be nothing but a runtime for eBPF virtual machines
<netbsduser`> then the linux people lost interest and now i don't know what the big thing is with linux anymore
<bslsk05> ​lwn.net: [PATCHSET v4] sched: Implement BPF extensible scheduler class [LWN.net]
<heat> eBPF is still mega popular
<netbsduser`> it's not the big thing anymore among the talking heads of linkedin
<netbsduser`> they moved to WebAssembly
<heat> talking heads of linkedin do not talk about webasm nor ebpf
<heat> they talk about vague corporate stuff and success
<netbsduser`> they do and did, nowadays they are really keen on running generic unix apps under webassembly for whatever reason (at least it's nicer than in dockr)
<bslsk05> ​lwn.net: Re: [PATCHSET v4] sched: Implement BPF extensible scheduler class [LWN.net]
<ChavGPT> this is my fav email
<netbsduser`> and rewriting them in rust without any rearchitecting, of course
<heat> ChavGPT, oh yeah btw new scheduler
<heat> they merged EEVDF
<ChavGPT> :O
<zid> EEVDF
<zid> could they not have asked the hacker scene for a better name
<zid> it needs to be mistakable for a metal band
<heat> personally i find it silly that they keep merging really important stuff with lots of possible breakage *for LTS releases*
<heat> 6.1 had maple and MGLRU, 6.6 will have EEVDF
<zid> yea but
<zid> not in the default config though?
<zid> nobody's LTS anything will be broken with make oldconfig
<heat> they removed the old scheduler AFAIK
<zid> I don't believe you, they made them pluggable didn't they? Or was that only the disk one
<heat> at least that was the plan
<kof13> > mistakable HÜRTRENDER it is mostly a matter of umlaut
<bslsk05> ​github.com: Merge branch 'sched/eevdf' into sched/core · torvalds/linux@b41bbb3 · GitHub
<heat> seems to just be a bunch of changes on the core CFS stuff
Arthuria has joined #osdev
goliath has quit [Quit: SIGSEGV]
orccoin has quit [Ping timeout: 244 seconds]
flom84 has joined #osdev
<heat> ChavGPT, you made it onto lwn again btw
<ChavGPT> i'm aware
<ChavGPT> if anything i'm surprised you were not tlaking shit about it yesterday
<ChavGPT> were you busy playing elden ring
<heat> i don't have a lwn subscription anymore
<ChavGPT> then how do you know
<heat> i figured
<ChavGPT> oh from the title
<heat> yes, and your rants
<heat> then searched for the libc-alpha thread and lo-and-behold, the mjg man himself
<ChavGPT> the article says onyx has best fstat
<ChavGPT> quoting me
<heat> it does not
<heat> it has the exact same interface as linox
<heat> though i do have sys_fstat
<ChavGPT> your userspace rolls with fstatat?
<heat> i think musl does fstat
<heat> yeah
<heat> if (flag==AT_EMPTY_PATH && fd>=0 && !*path) {
<heat> ret = __syscall(SYS_fstat, fd, &kst);
ecs has quit [Server closed connection]
ecs has joined #osdev
stolen has joined #osdev
<ChavGPT> ay lmao mon you know what's really pessimal
<gog`> me
<heat> gog` optimal
<gog`> no
<heat> yes
<ChavGPT> zfs has a lock array
<ChavGPT> #define ZFS_OBJ_MTX_SZ 64 kmutex_t z_hold_mtx[ZFS_OBJ_MTX_SZ]; /* znode hold locks */
<ChavGPT> so they take one of the locks
<ChavGPT> mess around
<ChavGPT> and then proceed to take a *global* lock while still holding this one
<ChavGPT> as a result they may as well have #define ZFS_OBJ_MTX_SZ 1
<heat> ok boss
<ChavGPT> much scalable
<ChavGPT> very solaris
<heat> EXT4 EXT4 EXT4 EXT4 EXT4 EXT4
<ChavGPT> you are really asking for it
<heat> you can stick zfs btrfs and xfs up your arse
<heat> ext4 for life
<gog`> i don't understand btrfs
<heat> imagine zfs, but linux
<gog`> i don't know what zfs is either
<gog`> what's wrong with mdadm and lvm i say
<heat> imagine batshit crazy ideas and complexity, in a filesystem
<ChavGPT> OH
<ChavGPT> gogs
<ChavGPT> have you been hanging out with openbsd flk
<heat> the fuck does mdadm and lvm have to do with openbsd
<ChavGPT> now that's very simple
<ChavGPT> openbsd are fundamentally opposed to zfs calling it a "layering violation"
<ChavGPT> and zfs is a filesystem and a volume manager and a raid innit
<ChavGPT> and gogs expressed their sentiment
Arthuria has quit [Ping timeout: 255 seconds]
<ChavGPT> innit it right gogs
<heat> i agree
<heat> zfs is a mess
<heat> and so is btrfs
<ChavGPT> :d
<ChavGPT> you are mentally in your 60s man
<heat> sorry
<gog`> i'm most familiar with mdadm and lvm
<gog`> that's all
<heat> zfs is great because zfs is great
<heat> zfs zfs zfs
<gog`> even ntfs doesn't have this stuff built into the fs tho
<heat> nothing does but zfs and zfs'
<gog`> even windows has LDM which is like if mdadm and lvm had a baby
<ChavGPT> i'm unorinically reocmmending bonwick's docs on zfs here
GreaseMonkey has quit [Server closed connection]
<heat> i can tolerate xfs because it's 1) still simpler than zfs 2) well documented
<heat> look at this tasty doc
<zid> what happened to yfs
<zid> or is it like windows 9
<gog`> a to z
<gog`> 0 to 9
<zid> I shall make a yfs, it's exactly ext4 but it's yuffie themed from ff7
<zid> because she's very attractive
<ChavGPT> heat: what do you think about HAMMER
<heat> not much
<ChavGPT> anyhow the point of zfs was that the space should not need partitionoing by hand
<ChavGPT> borrowing from bonwick's analogy, you when you add ram to your machine you don't have to pre-select who can use how many megabates
<ChavGPT> it's just there
osdever has joined #osdev
<heat> "using B+ trees. Its major features include infinite NFS-exportable snapshots, master–multislave operation, configurable history retention, fsckless-mount, and checksums to deal with data corruption"
<heat> i already hate it
<ChavGPT> do you implement ext4 in onyx?
<netbsduser`> everyone uses b/+ trees nowadays
<heat> i have a WIP for ext4 yeah
<zid> checksums don't deal with data corruption :(
<heat> i think ext4 has the ideal amount of stupid in a filesystem
<heat> it's simple enough while being performant as fuck if you so choose (and spend the time and complexity on your implementation)
* ChavGPT sticks to redseafs
<ChavGPT> fuck you
<netbsduser`> incredible that a direct descendent of a clone of the original Berkeley UFS has adapted itself to a lot of modern paradigms
<heat> i don't really need anything zfs or btrfs gives me, snapshots whatever, don't need em
<ChavGPT> who
<ChavGPT> ext4?
flom84 has quit [Ping timeout: 244 seconds]
<heat> yes
<ChavGPT> cause i don't know if that counts
<zid> I want a hdd that has native reed-solomon
<netbsduser`> i really need to investigate how it is that filesystems other than ZFS implement snapshots
<netbsduser`> i experimented with designing an fs with snapshots and found it very difficult to square extents with snapshots
<netbsduser`> in zfs they instead compose files of blocks whose size is variable between files but not within files
<nortti> iirc zfs does not use extents
<netbsduser`> it doesn't
<nortti> I do think bcachefs has both though
<netbsduser`> they have block sizes variable between files but not within
frkzoid has quit [Ping timeout: 246 seconds]
osdever has quit [Quit: osdever]
<heat> haha look at this huge ass nop
<heat> 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopw 0x0(%rax,%rax,1)
<zid> ffffffff
<heat> the funny bit is that clang decided to gen this on its own
<heat> to align a loop that definitely isn't hot at all ever
blop_ has quit [Remote host closed the connection]
blop_ has joined #osdev
TheCatCollective has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
Cindy has quit [Ping timeout: 246 seconds]
TheCatCollective has joined #osdev
bnchs has joined #osdev
Hammdist has joined #osdev
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<heat> LMAO
xenos1984 has quit [Ping timeout: 240 seconds]
xenos1984 has joined #osdev
<ChavGPT> heat: OpenBSD has conservative performance settings.
Arthuria has joined #osdev
<ChavGPT> however, the guy is doing a lol comparison
<ChavGPT> i am positively surprised someone on the sub knows what big kenrel lock is, but they are worng about what they state there
<ChavGPT> that spin thing is for any lock afair
<ChavGPT> and of course nobody pointed out how to profile what's going on
<heat> doing spin% for any lock sounds expensive to gather?
<ChavGPT> i don't see why, could be a per-cpu stat
<ChavGPT> which you collect
<ChavGPT> but then again, not somethng i would expect them to do
<ChavGPT> the real q is what are you doing looking at the sub
<heat> i was curious
<ChavGPT> don't get me wrong, i appreciate the lulz
<ChavGPT> this is why i was lurking at their lists at times
<ChavGPT> but this is a rabbit hole worse than tik tok
<ChavGPT> better to now get started
<heat> i don't remember how i got there but i enjoyed seeing this post
<ChavGPT> s/now/not/
<heat> but anyway how would you do it per-cpu in a cheap way?
<heat> like you're not measuring time
<heat> right?
<heat> unless this is some sort of cheap sampling
<ChavGPT> "are you spinning right now mofer"
<ChavGPT> their bkl is a queued lock
<ChavGPT> which is pretty funny in kvm
<ChavGPT> since they don';t support paravirt locking
<heat> what kind of paravirt locking does kvm support?
<ChavGPT> you know what futexes do
<ChavGPT> it's an equivalent for vcpus
<ChavGPT> oh it's a *Ticket* lock
<ChavGPT> but same problem, point was the fairness of the primitive fucks them up on kvm
<ChavGPT> heat: there you go mofo:
<ChavGPT> __mp_lock_spin(struct __mp_lock *mpl, u_int me)
bauen1 has quit [Ping timeout: 244 seconds]
<ChavGPT> spc->spc_spinning++;
<ChavGPT> ..
<ChavGPT> spc->spc_spinning--;
<ChavGPT> then they check for the count during lock interrupt
<ChavGPT> totally fucked up that this even makes sense
<ChavGPT> :d
<ChavGPT> anyhow the magic primitive is used at least by the scheduler lock as well
<heat> why is fairness bad on kvm?
<ChavGPT> it is bad in their case because they don't tell kvm which vcpu to wake up
<heat> it sounds super expensive to go offcpu? only makes sense if your machine has more VMs in it
<ChavGPT> do you undersand what futexesare for or not mofo
<heat> i know what futexes are
<ChavGPT> there you go
<ChavGPT> practical kvm deployments tend to have more vcpus than cpus
<ChavGPT> and when the "wrong" vcpu gess the slice, it wastes it
<ChavGPT> anyhwo in the entire story i'm surprised obsd booted on powerpc
<heat> mofo installed openbsd on a 44-core 4-way-SMT powerpc
<ChavGPT> they had a tool to get flamegraphs, not surprised nobody knows about it
<ChavGPT> on the sub
<ChavGPT> fwiw any post of any sense should land on -tech
<heat> real: 16m45.44s, user: 16m07.56s, sys: 210m35.97s on 44-cores vs real: 0m42,551s, user: 5m52,249s, sys: 2m58,904s on a 2-way 8-core laptop CPU lol
<ChavGPT> (albeit that would increase signal to noise ratio
<ChavGPT> that's a stupid comparison
<heat> s/stupid/hilarious
<ChavGPT> should he run obsd in the same setting as the laptop the result would not be anywhere near as atrocious
<ChavGPT> but ofc, if things don't scale, not only you don't get a speed up, but you get a massive slowdown
<ChavGPT> big news in 2001
<ChavGPT> did you know obsd does not have unified buffer cach
<ChavGPT> e
<ChavGPT> :X
<ChavGPT> my fav thing about them
<ChavGPT> it's a early 90s kernel with some contemporary laptop drivers
<ChavGPT> an
<heat> does it map the page cache and fault pages in on read()?
<heat> or did they not pick that bit up from the glorious SVR4
<ChavGPT> i don't know what they specifically do
<ChavGPT> i do know they don't have coherency vs mmap
<heat> wdym?
<ChavGPT> and they claim it's not a big deal cause posix does not /require/ it
<heat> oh fuck off
<heat> write() doesn't have coherency with fucking mmap???
<ChavGPT> yes
<heat> holy shit
<heat> the heck are they mapping then?
<ChavGPT> they had someonew orking on it in early 2010s
<heat> you don't even need a buffer cache for this
<ChavGPT> but the person fucked off the project
<ChavGPT> do you know all the push for ubc mofo
<ChavGPT> they never made the leap
<heat> now im sad
grumbler_ has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
grumbler_ has quit [Max SendQ exceeded]
<heat> how hard would it be to port UBC? would that even help with the mmap situation?
<ChavGPT> it is the primary ingredeient to making it work
<ChavGPT> but you can always fuck it up like netbsd did
<ChavGPT> :d
<ChavGPT> they *always* establish transient mappings on read(2)
<ChavGPT> and pay tlb shootdowns for it
<ChavGPT> including on amd64
<heat> i know
<ChavGPT> anyhow it is probably a significant undertaking
<heat> and that's funny but like
<heat> openbsd situation is much worse
<ChavGPT> it requires some careful coding to get right as is
<ChavGPT> and then you have to expect there is tons of latent bugs
grumbler has quit [Read error: Connection reset by peer]
<ChavGPT> which you are going to expose
<ChavGPT> making this a serious challenge
goliath has joined #osdev
grumbler has joined #osdev
<ChavGPT> not only the codebase they started with is not very good
<ChavGPT> they are not making it better
<ChavGPT> :X
<heat> i'm not sure if they're not making it better
<heat> but rather they focus on the wrong things?
<ChavGPT> i ranted on numerous things they did wrong
<ChavGPT> i don't know if i can be arsed to repeat myself
<ChavGPT> s/on/about/
<heat> they can do many things wrong, still probably better than what they started with?
<ChavGPT> for funny definitions of better
Vercas has quit [Ping timeout: 246 seconds]
grumbler has quit [Client Quit]
grumbler has joined #osdev
<ChavGPT> heat: what made you defend obsd anyway, are you softening up
<ChavGPT> i definitely see you submitting some patches in the foreseeable future
<heat> i still don't like openbsd but im not a mindless hater
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<heat> rather, i'm a *mindful* hater
<ChavGPT> they take a look at their copyin and copyout
<ChavGPT> for amd64
<heat> haha very nice
<heat> classic rep movsq/l/w/b
<ChavGPT> that's not classic
<ChavGPT> the classic is movsq -> movsb
<ChavGPT> they have movsl in the middle because retard
<ChavGPT> at some pointed they decided they want to do futexen and to that end wanted atomic stores of 4 bytes to userspace
<ChavGPT> and this is where movsl got slapped in
<ChavGPT> later someone got hit in the head and accidentally got an idea to have a dedicated routine doing 4 byte stores
<ChavGPT> but movsl remained
<ChavGPT> so there you go, as far as making the kernel better goes
<heat> that's weird
<ChavGPT> the kernel would be drastically faster single and multithreaded if someone clued spent a weekend on it
<heat> they have futexes?
<ChavGPT> they do
<ChavGPT> enough to have firefox running afair
<ChavGPT> otherwise it is unusable
<ChavGPT> spawns too many threads for fuck all reason
<heat> ohhh this is literally the linux stuff
<heat> cute
xenos1984 has quit [Ping timeout: 245 seconds]
<ChavGPT> and all the threads are mostly busy wasting time
<heat> oh but futexes are new though?
<heat> 2017 it seems
<ChavGPT> check out their other string ops
<ChavGPT> utter geezer, mostly copied from netbsd
<ChavGPT> what irks me the most is their RB-tree namecache
<ChavGPT> which was also being sold as a win
grumbler has quit [Ping timeout: 244 seconds]
Arthuria has quit [Read error: Connection reset by peer]
<heat> win over what?
<ChavGPT> the hash
<netbsduser`> ChavGPT: did they take it from NetBSD?
<ChavGPT> i give them epsilon credit since what they had was the old bsd hash
<ChavGPT> withoug backpointers
<ChavGPT> netbsduser`: take what
<netbsduser`> their new namecache
<ChavGPT> rb tree in the nameache predates netbsd work in the area
<ChavGPT> by few years
<netbsduser`> i am not overly familiar with openbsd
<netbsduser`> i tried to submit a patch and they ghosted my message
<ChavGPT> well that can happen in any project
<heat> we could've had openbsduser
<ChavGPT> fair
<ChavGPT> netbsduser`: try again mate
<netbsduser`> i did try again
<netbsduser`> still no reply
<heat> openbsdandnetbsduser
<heat> dragonflybsduser
<ChavGPT> what's the patch
<netbsduser`> i am not bigoted against openbsd or anything like that but i am not sure on what its merit is over net
<heat> re-enables tmpfs?
<ChavGPT> supposed merit is focus on security
<heat> i'm not sure if there is any merit on any of these systems
<ChavGPT> whether they succeeded is another story
<netbsduser`> they talk about security but i think freebsd has advanced considerably better in that regard with Capsicum, which implements an actual rigorous security architecture
grumbler has joined #osdev
<ChavGPT> this is an old massvie flramewar
<ChavGPT> they do more work to prevent kernel exploitation (can't tell whether it /does/ do it though)
<ChavGPT> the problem is that almost nobody is intellectually honest about it
<heat> freebsd is a worse liberally licensed linux, netbsd is a worse freebsd, openbsd is a worse netbsd, dragonflybsd do be chillin tho
<ChavGPT> OH
<ChavGPT> *plonk*
<heat> the fuck are you plonking me for
<heat> i praised the best bsd, dragonflybsd
<heat> dat dragon do be flying tho
<ChavGPT> funny you mention that
<ChavGPT> recently it turned out their kernel does not support avx512
<heat> good
<ChavGPT> someone ran a program which uses it (based on cpuflags) and bam, funzies
<heat> mine doesn't either, i think
<ChavGPT> well openbsd does not either
<netbsduser`> ChavGPT: undoubtably they are good in that respect but i think it's surprising they seem disinterested in anything like capsicum
<ChavGPT> you could perhaps write a patch
<heat> a patch for what?
<ChavGPT> avx512 for dfly
<heat> why
<ChavGPT> netbsduser`: they are interested in their own variant, pledge
<netbsduser`> i know pledge and i don't like it
<ChavGPT> nobody does
<ChavGPT> but it also means obsd is not for you
<ChavGPT> pledge is obsd in a nutshell
<netbsduser`> capsicum on the other hand i like because it's both a rigorous security architecture and also attuned to the unix tradition
<heat> don't forget unveil!
<heat> it's pledge AND unveil
xenos1984 has joined #osdev
<heat> there's a world where i like pledge and it's the one where it's implemented in the libc
<ChavGPT> ey heat have you considered being a more informed hater
<heat> writing BPF for seccomp is way too hard and finnecky and if pledge is in the kernel, the kernel needs to know so much about the libc
<ChavGPT> and getting a flamegraph from open
<heat> no
<heat> anyway my idea would be for the libc to dynamically generate seccomp BPF from pledge words
<heat> which would be a solid win for everyone
<netbsduser`> it's a shame that capsicum port to linux financed by a google organisation never took off
<netbsduser`> then the linuxers would have capabilities
<heat> you already have capabilities!!!
<netbsduser`> instead it looks like linux will be used as a runtime for WASM programs (and WASI is basically Capsicum)
<heat> i hope you realize WASM still kind of sucks
<ChavGPT> i'm done ranting about capsicum
<heat> the last I heard about it (a year ago), V8 was still much faster executing javascript vs WASM
<heat> therefore javascript is OPTIMAL, QED
<GeDaMo> What's Capsicum?
<netbsduser`> i could quite imagine that heat
<netbsduser`> the v8 people are the leading experts on optimising dynamic languages (the original v8 team was composed of the original Animorphic Smalltalk team!) while wasm is not amenable to these techniques
<netbsduser`> GeDaMo: purification of unix: instead of having namespaces willy-nilly you have your file descriptors and can operate on them alone, and file descriptors are upgraded to be capability-secure
<ChavGPT> heat: btw pledge is implemented in such a slow manner it is funny mate
<netbsduser`> so it's probably the easiest security architecture in the world: if you have a file descriptor representing a resource with the appropriate flags, you can use it
<ChavGPT> heat: spelunk through namei to get a glimpse
<heat> netbsduser`, JITting is JUTting
<bslsk05> ​www.cl.cam.ac.uk: Computer Laboratory: Capsicum: practical capabilities for UNIX
<heat> ChavGPT, you mean unveil?
<ChavGPT> check the timezone stuff for example
<heat> netbsduser`, IIRC the problem is with how many times you need to get out of the V8 isolate, WASM did that a *lot* more than javascript
<ChavGPT> if you "promise" some bullshit the kernel string-matches files
<heat> but i didn't look at it, just asked around
<heat> ChavGPT, oh ew
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<zid> wasm had the super weird single exit/entry thing right?
<zid> where you had to serialize everything over a string string output
<zid> rather than just having syscalls
<zid> to manip the dom
frkazoid333 has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
PapaFrog has quit [Ping timeout: 252 seconds]
PapaFrog has joined #osdev
bnchs is now known as Cindy
rorx has joined #osdev
<netbsduser`> i'm feeling quite satisfied with this storport shim, enough that i think i might call it the ""official"" scsi and disk controller interface for my kernel
<heat> oh no
<heat> BOOLEAN StorPortAreYouSure (CONST _In_ ARE_YOU_SURE_DATA *Data);
<netbsduser`> the code style could certainly use with being less loud
goliath has quit [Quit: SIGSEGV]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
zhiayang has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
Arthuria has quit [Ping timeout: 246 seconds]
Left_Turn has joined #osdev
<geist> netbsduser`: wow that's pretty neat
<geist> i mean i have no interest in doing that, but it is a pretty cool solution
<geist> how many hooks did you need to implement that it calls out into?
terminalpusher has joined #osdev
<netbsduser`> geist: about 20 functions: some of which trivial like "debug log", "read/write register". others included generating storport's scatter-gather list format, timer and dpc manipulation, memory allocation (contiguous and uncached options)
<heat> the fact that it does not use any proper kernel functions is kinda nuts
<heat> i guess it makes sense for them to provide a really stable ABI interface for drivers?
<heat> so it's as close as possible to ABI stable across nt versions
gbowne1 has joined #osdev
cloudowind has joined #osdev
goliath has joined #osdev
gbowne1 has quit [Remote host closed the connection]
<netbsduser`> my original plan had been to implement UDI for a lark, because it sounded fun and byzantine, but it was too byzantine, and the payoff is "you don't get any more drivers"
gbowne1 has joined #osdev
<netbsduser`> storport clearly makes a very big effort for abi stability
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<heat> what imports does iaStorA need?
<CompanionCube> terrible idea: use *nix filesystems exclusively via windows implementations
<heat> wow that's horrendous, congrats
blockhead has joined #osdev
terminalpusher has quit [Remote host closed the connection]
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
<zid> Write a fuse shim for the iastor interface
<zid> then run fuse-ntfs3g
<heat> i tried looking for iastor in my windows partition but it seems like i don't have it
<heat> WAIT
<heat> i have two iastor*
<heat> iaStorAVC.sys and iaStorV.sys
<heat> ah ok iaStorAVC needs a *lot* more stuff
<bslsk05> ​gist.github.com: iastor_deps.txt · GitHub
<zid> super very correct version
<heat> __C_specific_handler is for SEH btw
<heat> so that driver uses SEH, yay
<zid> I hope they compiled it with ICC
<gog`> HI
xenos1984 has quit [Read error: Connection reset by peer]
<heat> HI
<cloudowind> hi++
<heat> cloudowind: what are you doing here
xenos1984 has joined #osdev
Burgundy has quit [Ping timeout: 240 seconds]
<cloudowind> i don't really know heat , maybe old habit from 23-24 years ago , maybe sometimes to see what geist is doing
<cloudowind> sometimes maybe something that i can learn from you guys conversations
<geist> not much lately to be honest
<geist> mostly playing starfield and generally not doing much hobby stuff outside of work
wblue has joined #osdev
<cloudowind> you're saving all those possible activies for your retirement then i assume
<geist> well, sometimes when work is busy i sort of chews up all your hacking energy there
<geist> and then you just want to mindlessly do something else when off time
<cloudowind> no children geist ?i remember you had a partner years ago
<geist> nope
<geist> i have a cat though
<heat> adopt me
<heat> lets write a kernal
* cloudowind hides
SGautam has joined #osdev
<cloudowind> a kernel that will change the whole civilization
<netbsduser`> zid: i do have a fuse implementation so it might well be doable
<netbsduser`> heat: those dirty bastards, don't they know you're supposed to use a big variadic function to deal with timers, DPCs, and many other things instead of making calls to the kernel?
sebonirc has left #osdev [#osdev]
<gog`> i'm mostly playing factorio and crying
<zid> does that make your best better
<zid> I could try mixing it in
<zid> best? base.
* heat gog hug
<gog`> no
<gog`> i'm building a 75spm base
<gog`> the crying is for another reason
* kazinsal hugs gog
* gog` hug heat, kazinsal
<kazinsal> gog sandwich
<heat> most feminist #osdev user
<gog`> no he's a catboy twink
gog has joined #osdev
<gog> mwow
gog` has quit [Ping timeout: 240 seconds]
Left_Turn has quit [Read error: Connection reset by peer]
<heat> i wrote a bunch of page reclamation bullshit that's completely untested
bauen1 has joined #osdev
<heat> it does nothing but shrink caches and percpu stuff
froggey has quit [Server closed connection]
froggey has joined #osdev