Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev2&y=23&m=9&d=16

Saturday, 16 September 2023

00:12:00 <netbsduser`> now that i have storport drivers operating it's high time i write a scsi stack
00:53:00 <heat> the fuck
00:53:00 <heat> greek philosophy in #osdev eh
07:52:00 <immibis> was the execute permission bit a mistake?
07:59:00 <sham1> Maybe you don't want to have everything be executable
08:00:00 <immibis> execute permission is only relevant to setuid/setgid executables
08:00:00 <immibis> otherwise you can run them through their interpreters
08:01:00 <immibis> (this includes dynamic ELF files, which are interpreted)
08:01:00 <sham1> But how do you know if somehting is meant to be executed
08:01:00 <immibis> idk, how do we know if it's meant to be opened in libreoffice?
08:01:00 <sham1> File associations
08:01:00 <immibis> there you go
08:02:00 <sham1> ...you want to add file associations for executing things
08:02:00 <sham1> First of all, how is that different from an executable bit
08:02:00 <immibis> why don't we have a libreoffice permission bit?
08:02:00 <sham1> Because libreoffice isn't fundamental to the system the same way executable are
08:03:00 <immibis> most executables are just data for interpreters
08:03:00 <zid> r and x very similar ngl
08:03:00 <sham1> A statically linked ELF file isn't, and that's a lot of the executables out there
08:03:00 <zid> if it's r I can copy it and chmod it +x, no matter what the other perms are
08:03:00 <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
08:03:00 <zid> only really matters for yea, setuid
08:04:00 <immibis> x is really "permission to use the setuid bit" - it doesn't stop anyone from executing anything
08:05:00 <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
08:05:00 <immibis> but that also seems unnecessary.
08:05:00 <sham1> I agree, it should be
08:05:00 <sham1> But that's not how it is, so we're stuck with the executable bit
08:06:00 <immibis> sir, this is the channel for talking about making new operating systems. We're not constrained by compatibility here.
08:07:00 <sham1> That's not very POSIX of you.
08:07:00 <sham1> And sure, you can make your own filesystems and such for this, but do you really want that effort
08:08:00 <sham1> There's a reason why so many people go with FAT32 or ext2 or whatever
08:09:00 <immibis> It's really funny you say that, because FAT32 doesn't have an executable bit.
08:09:00 <sham1> Indeed
08:09:00 <sham1> But ext2 certainly does
08:09:00 <froggey> posix delenda est
08:10:00 <froggey> I'm ignoring ext2's x bit (actually all the permissions bits entirely)
08:10:00 <immibis> you can also choose to misuse features, like, you could use the short name file extension to hold POSIX permissions in hexadecimal
08:11:00 <immibis> and that won't massively hinder your ability to use third party tools to manipulate the filesystem
08:11:00 <sham1> Like I'm not opposed to the disappearance of the executable bit, even though it might seem as such
08:12:00 <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.
08:12:00 <sham1> Although one of the nice things about UNIXoids is that I don't need to label my every executable as .exe or whatever
08:13:00 <sham1> .scr
08:13:00 <immibis> you just have to label every archive as .tar.gz. file extensions are used by convention on linux
08:14:00 <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
08:14:00 <immibis> I label my Linux executables .exe in cases where it's not obvious which one is the executable
08:15:00 <immibis> foo.c makes foo.exe
08:15:00 <immibis> I don't like calling the file foo sometimes. It's not THE foo, it's just a different file type for foo
08:15:00 <immibis> sometimes
08:16:00 <immibis> MIME types aren't a universal way to identify file formats either
08:16:00 <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
08:17:00 <sham1> So the .tar.gz would get something like `application/gzip` or maybe even application/vnd.tar+gzip
08:17:00 <immibis> however you could have something based on UUIDs. UUID/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/subtype
08:18:00 <sham1> Or I suppose `application/x-tar+gzip`
08:18:00 <sham1> For some reason there is no official media type for tape archives
08:19:00 <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 ...)
08:20:00 <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
08:21:00 <immibis> and gzip is a content-encoding rather than a file type
08:24:00 <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
08:57:00 <immibis> It didn't always. The X bit in RAM is defence in depth against exploits.
08:58:00 <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?
08:59:00 <immibis> it could be, but it's a defence in depth measure and not a fundamental part of the system
09:00:00 <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
09:00:00 <immibis> call*
09:02:00 <immibis> so it's a defence against CreateProcess calls with attacker controlled paths
09:03:00 <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
12:05:00 <heat> ITAANIUUUUUUUUM
12:05:00 <heat> you will be missed
12:05:00 <ChavGPT> [']
12:05:00 <ChavGPT> now i feel bad about talking shit about it
12:06:00 <gog`> pour one out for itanium
12:06:00 <ChavGPT> pour one for computer necrophiliacs
12:06:00 <ChavGPT> [not my description!]
12:06:00 <gog`> cracking open a cold one fora cold one
12:07:00 <ChavGPT> really though, who is left with itanium support
12:07:00 <ChavGPT> it's not netbsd
12:07:00 <ChavGPT> itanium might be the youngest arch to die off
12:07:00 <gog`> so sad
12:07:00 <ChavGPT> openbsd does not have the port either
12:07:00 <ChavGPT> at this point i geuninely wonder if anyone does
12:09:00 <heat> HP-UX
12:09:00 <ChavGPT> GO HP-U
12:09:00 <ChavGPT> X
12:09:00 <heat> i've always stanned enterprise UNIX
12:09:00 <heat> not like those lazy commie UNIXes with their ""open source""
12:10:00 <heat> netbsd people so lazy they couldn't finish their dang itanium port!
12:10:00 <gog`> gross
12:10:00 <gog`> open source
12:10:00 <heat> do not open things
12:10:00 <heat> most things should remain closed
12:13:00 <ChavGPT> do you intned to port onyx to itanium
12:13:00 <ChavGPT> come to think of it
12:13:00 <ChavGPT> why do you even support amd64
12:14:00 <zid> did the remove get picked up
12:14:00 <heat> i have thought about an itanium port and i have an ia64 toolchain installed
12:15:00 <zid> looks like the convo didn't go anywhere, not sure what happened to the actual patches later on
12:16:00 <ChavGPT> there was a guy who suggested freebsd gets first class sparc support
12:16:00 <zid> arch/ia64 still getting patches, so I guess it's still there
12:16:00 <heat> >Hugh Dickins
12:16:00 <heat> Dick Sites vibes
12:16:00 <ChavGPT> :)
12:16:00 <ChavGPT> maybe they are cousins
12:16:00 <zid> heat: I'm going to start brewing cidr
12:16:00 <zid> cider
12:16:00 <zid> I'm naming it Dickins Cider
12:17:00 <ChavGPT> bigus dickus innit
12:19:00 <heat> yay i don't think it has been merged yeah
12:19:00 <heat> yet*
12:19:00 <ChavGPT> you mean i started getting wasted prematurely?
12:19:00 <zid> YET, ominous
12:19:00 <zid> tbh the patch is from fucking march
12:20:00 <zid> doesn't look like anyone cares either way
12:20:00 <ChavGPT> that's probably not the one
12:20:00 <ChavGPT> march is about the time it first came up this year i think
12:20:00 <heat> https://lore.kernel.org/linux-ia64/6ae23c62-d2c6-4efa-a989-e04c01288dd7@app.fastmail.com/T/#m8d4252086af8db66841cd694777f6729b1bdc3a7
12:20:00 <bslsk05> ​lore.kernel.org: [GIT PULL] Remove Itanium support
12:20:00 <zid> nobody minds throwing the odd ia64 line in when they touch mm.c, in exchange for it not rotting
12:20:00 <heat> there's a PR, it just hasn't been merged
12:20:00 <zid> oh I'm not on the ia64.git
12:20:00 <heat> no nice "hey it has been merged" email nor is it in linus's tree
12:21:00 <zid> guess it makes sense it'd go through that tree
12:21:00 <zid> but the RFC on the main lkml was march, and it got "meh" responses
12:21:00 <heat> what tree?
12:21:00 <heat> linus wanted to keep it tbf
12:21:00 <heat> that soft hearted bastard
12:21:00 <netbsduser`> why the rush to delete ia64 anyway
12:22:00 <zid> well, it was a very soft keep, because it was so easily fixable
12:22:00 <netbsduser`> linux is called a portable kernel so it shouldn't be impacting anything else
12:22:00 <ChavGPT> it is unamaintained and peple clam it is getting in the way
12:22:00 <zid> but didn't have strong feelings about it going if it was deemed broken and unmaintained
12:23:00 <netbsduser`> incredible, popular support of mips, alpha, and parisc is clearly going to outlive itanium by far
12:23:00 <heat> linux is a portable kernel
12:24:00 <heat> but ia64 stands in the way of progress
12:24:00 <heat> and literally no one is testing that shit
12:24:00 <netbsduser`> what progress is it blocking?
12:24:00 <netbsduser`> not being sarky just curious what their rationale is
12:24:00 <heat> mm refactoring, etc
12:25:00 <heat> every function that is introduced needs to be supported on all architectures and tested on all architectures
12:26:00 <heat> the itanium build has been broken in some bits of the kernel for the past few months and no one said a word
12:27:00 <ChavGPT> so portable
12:27:00 <heat> i don't see how this speaks remotely about linux's portability
12:28:00 <ChavGPT> you ok there mate
12:29:00 <ChavGPT> i was building on 14:22 < netbsduser`> linux is called a portable kernel so it shouldn't be impacting anything else
12:29:00 <heat> yes im fine
12:30:00 <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
12:30:00 <heat> about what?
12:31:00 <ChavGPT> i don't recall phoronix being anything but a computer tabloid
12:31:00 <ChavGPT> at any point
12:31:00 <netbsduser`> the latest contentions and controversies in the linux kernel community
12:31:00 <ChavGPT> you should read lwn instead
12:32:00 <ChavGPT> like why is the name phoronix even popping up
12:32:00 <zid> phoronix is gaming on linux mag
12:32:00 <zid> you're thinking of the lkml blog thing
12:33:00 <heat> https://lwn.net/Articles/920259/
12:33:00 <bslsk05> ​lwn.net: Kernel code on the chopping block [LWN.net]
12:33:00 <zid> lwn, that's it, thanks
12:33:00 <heat> but this is old
12:33:00 <heat> also
12:33:00 <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:
12:33:00 <heat> this mateusz guy is a real obnoxious c-
12:33:00 <ChavGPT> tony luck is hte guy who called them "computer necrophiliacs"
12:34:00 <ChavGPT> ye that mg guy is a total twat
12:34:00 <heat> deleting our favourite architecture from our kernal!
12:34:00 <ChavGPT> why is itanium sees as a problem
12:34:00 <ChavGPT> netbsd has a port and is doing fine
12:34:00 <ChavGPT> amirite
12:34:00 <heat> >netbsd
12:34:00 <heat> >doing fine
12:34:00 <gog`> hi
12:35:00 <netbsduser`> i can understand wanting to drop a port from linux
12:35:00 <heat> hi gog`
12:35:00 * ChavGPT hugs gog` before there is a queue
12:35:00 <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
12:35:00 * gog` hug
12:36:00 <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"
12:36:00 <heat> yeah ifdef m68k sounds ripe for the deleting
12:37:00 <netbsduser`> it was just relaxing alignment requirements
12:37:00 <heat> what if you need those bottom bits for something
12:38:00 <heat> and the only blocker is m-sixty-eight-fucking-kay
12:38:00 <netbsduser`> this guy had gotten infuriated with gentoo for whatever reason and launched a crusade against them
12:38:00 <ChavGPT> gentoo?
12:38:00 <ChavGPT> lmao
12:38:00 <Ermine> at least getpid is in vdso on itanium
12:38:00 <ChavGPT> i thought gentoo is a meme distro at this point
12:38:00 <ChavGPT> Ermine: what/ :D
12:38:00 <heat> even gentoo users are infuriated with gentoo
12:38:00 <ChavGPT> how id that came to be
12:38:00 <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
12:39:00 <heat> "i really need to build my web browser???"
12:39:00 <netbsduser`> i think he misunderstood it as increasing alignment requirement
12:39:00 <ChavGPT> i would expect that from rust people
12:39:00 <heat> wait huh getpid in the vdso?
12:39:00 <ChavGPT> :X
12:39:00 <netbsduser`> i see it as a social phenomenon rather than a technical one
12:39:00 <Ermine> look at man vdso
12:40:00 <netbsduser`> the mailing list was full of railing against "hobbyists"
12:40:00 <ChavGPT> lmao
12:40:00 <ChavGPT> wait
12:40:00 <ChavGPT> getppid?
12:40:00 <ChavGPT> wtf
12:40:00 <Ermine> well, there's a thingie called fsys which is done through vdso
12:40:00 <ChavGPT> how did *that* happen
12:40:00 <ChavGPT> "fsys"
12:40:00 <ChavGPT> huh
12:41:00 <gog`> ppid
12:41:00 <Ermine> gog`: may I ppid you
12:41:00 <gog`> yes
12:41:00 * Ermine ppids gog`
12:41:00 <ChavGPT> is that a urine-related fetish
12:41:00 <heat> oh ok fsys is not the same thing
12:41:00 <ChavGPT> maybe keep it off channel
12:41:00 <gog`> lmao
12:47:00 <ChavGPT> Los Almaos
12:50:00 <heat> hello ChavGPT i have a conundrum for you
12:50:00 <ChavGPT> a geezer did it
12:51:00 <heat> lets say you want to drain pcpu data on your kernel allocator *without doing it remotely*, you need to do an smp call
12:51:00 <heat> problem is if the other cpus have irqs disabled waiting for a lock you hold, or something
12:51:00 <heat> this whole scheme sounds deadlock-prone?
12:52:00 <ChavGPT> it very much is a deadlock
12:52:00 <ChavGPT> how did you end up there
12:53:00 <heat> i didn't, yet
12:56:00 * ChavGPT is about to change his zsh fconfig for first time in a decade
12:56:00 <heat> >zsh
12:56:00 <heat> i need not say a word
12:57:00 <ChavGPT> lemme guess
12:57:00 <ChavGPT> you either roll with highly customized fish or stock bash
12:57:00 <ChavGPT> which is it
12:58:00 <heat> stock bash
12:58:00 <ChavGPT> lmao
12:58:00 <ChavGPT> anyway i'm changing default time(1) format
12:58:00 <heat> time(1)
12:58:00 <heat> are you in BSD circles atm?
12:58:00 <ChavGPT> i write it on purpose since you wre complaining about referring to stuff with man sections
12:58:00 <heat> good(3p)
12:59:00 <ChavGPT> so happens i'm patching up some bsd as we speak
12:59:00 <ChavGPT> i wrote some code which was less fast than it could have been
12:59:00 <ChavGPT> as in there were ez speed ups to get which i did not go for
12:59:00 <ChavGPT> and someone run into this not being fast enough
12:59:00 <ChavGPT> rna
12:59:00 <ChavGPT> ran
12:59:00 <heat> what code
13:00:00 <ChavGPT> freakin vnode reclamation
13:00:00 <ChavGPT> i was damage-controlling massive geezerisms
13:02:00 <ChavGPT> http://fxr.watson.org/fxr/source/kern/vfs_subr.c?v=FREEBSD-12-STABLE#L1451
13:02:00 <ChavGPT> chekc this out
13:02:00 <bslsk05> ​fxr.watson.org: fxr.watson.org: FREEBSD-12-STABLE sys/kern/vfs_subr.c
13:03:00 <heat> RACY
13:03:00 <ChavGPT> this code is so shite
13:04:00 <ChavGPT> i was angry patching it
13:04:00 <ChavGPT> anyhow it does the workload in about 160 seconds
13:04:00 <heat> td = curthread;
13:04:00 <heat> isn't this silly or is your curthread not properly tagged
13:04:00 <ChavGPT> my previous state was doing it in about 60, now it is 40
13:04:00 <ChavGPT> and i have extra work to bring it down to 30
13:05:00 <ChavGPT> it's a leftover from a belief that 'curthread' would always expand to an explicit load
13:05:00 <ChavGPT> which was very likely true at the time given how lol-quality these macros used to be
13:06:00 <ChavGPT> "the time" would be 15+ years ago
13:06:00 <ChavGPT> naywya with my extra patchen the main bottleneck is zfs itself
13:06:00 <ChavGPT> which suffers massive funny locks
13:06:00 <ChavGPT> so much for solaris scalability innit
13:06:00 <heat> i haven't fixed it yet on mine
13:06:00 <heat> ZFS LMAO XDXDXD
13:06:00 <kof13> well it is interesting that hobbyist is the professional or even enterprise of yesteryear
13:07:00 <netbsduser`> zfs is the last word in filesystems
13:07:00 <heat> use ext4
13:07:00 <heat> ext4 is the first and last word in filesystems
13:07:00 <heat> perfect in every way, unlike ZFS that buggy mess
13:07:00 <heat> my bug report never got a reply
13:08:00 <ChavGPT> funny you mention ext4
13:08:00 <ChavGPT> it has a PESSIMAL problem on file open
13:08:00 <ChavGPT> which artifically shafts scalability
13:08:00 <ChavGPT> i'm gonna fix it later
13:08:00 <heat> good
13:08:00 <heat> wait
13:08:00 <heat> it has a what problem
13:08:00 <ChavGPT> OH
13:08:00 <ChavGPT> it performs a lol check on parent dir
13:08:00 <ChavGPT> which comes with a ref and unref
13:09:00 <heat> that sounds PES-ungood
13:09:00 <ChavGPT> not the worst for sure!
13:09:00 <ChavGPT> really though there is a bunch of benches which should have about linear multiscore scalability
13:09:00 <ChavGPT> and they don't
13:09:00 <ChavGPT> and nobody seems to know
13:09:00 <ChavGPT> the intel machinery somehow does not publish full results, only notifies peoplew hen something changs
13:10:00 <ChavGPT> changes
13:10:00 <ChavGPT> for example, that entire fstat debacle would have been caught early
13:10:00 <ChavGPT> since fstat should scale perfectly
13:10:00 <ChavGPT> and the way it got temporarily reimpemented in glibc shafts it with lockref
13:15:00 <kof13> or, i should say, i thought python started out "academic" anyways...not bashing, just noting the marketing changes
13:15:00 <ChavGPT> languages which should not take off keep doing it
13:15:00 <ChavGPT> see perl
13:16:00 <ChavGPT> and javascript
13:16:00 <ChavGPT> and of course everyone's favourite: php
13:16:00 <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
13:16:00 <ChavGPT> he ran your exe? :D
13:16:00 <ChavGPT> lmao
13:16:00 <kof13> so you could use any language, so long as it was one executable to run
13:16:00 <kof13> well he was a cool guy
13:17:00 <netbsduser`> kof13: python was invented as a scripting language for Tenenbaum's 'AMOEBA' microkernel OS
13:17:00 <kof13> that too ^^^
13:17:00 <ChavGPT> joke which got way out of hand
13:17:00 <ChavGPT> nothing new here innit
13:17:00 <kof13> well it had to run on windows is what i mean .exe
13:17:00 <kof13> again, teacher wasn't a huge fan :D
13:18:00 <netbsduser`> perhaps the biggest merit of python is that it's so easy to outperform the official interpreter
13:18:00 <netbsduser`> it made me feel good about my smalltalk vm
13:19:00 <heat> netbsd has lua in the kernel lmao
13:19:00 <ChavGPT> it is a dead idea
13:19:00 <netbsduser`> lua has a very good interpreter, fast
13:19:00 <ChavGPT> how did that come up though
13:20:00 <heat> ey boss the linux people have a full new bytecode language which is extensible and does fucking everything
13:20:00 <heat> fuck it, add lua
13:20:00 <ChavGPT> i think that lua thing predates ebpf
13:20:00 <ChavGPT> it is *OLD* man
13:20:00 <netbsduser`> it was merged in 2013
13:21:00 <heat> ey boss the netbsd people have a full new bytecode language which is extensible and does nothing
13:21:00 <heat> fuck it, add bastardized BPF
13:22:00 <netbsduser`> i am not actually aware of anyone using it apart from some masters thesis written in brazilian portuguese about packet filtering with it
13:22:00 <heat> lol
13:23:00 <heat> bpf with extra steps
13:23:00 <heat> and slow
13:24:00 <ChavGPT> > talk abut bsd
13:24:00 <ChavGPT> > be surprised "slow" comes into play
13:24:00 <netbsduser`> i remember in 2019 the future was linux was going to be nothing but a runtime for eBPF virtual machines
13:24:00 <netbsduser`> then the linux people lost interest and now i don't know what the big thing is with linux anymore
13:24:00 <heat> the streets will never forget https://lwn.net/ml/linux-kernel/20230711011412.100319-1-tj@kernel.org/
13:24:00 <bslsk05> ​lwn.net: [PATCHSET v4] sched: Implement BPF extensible scheduler class [LWN.net]
13:24:00 <heat> eBPF is still mega popular
13:25:00 <netbsduser`> it's not the big thing anymore among the talking heads of linkedin
13:25:00 <netbsduser`> they moved to WebAssembly
13:26:00 <heat> talking heads of linkedin do not talk about webasm nor ebpf
13:26:00 <heat> they talk about vague corporate stuff and success
13:27:00 <ChavGPT> MICORKERNEL
13:27:00 <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)
13:27:00 <ChavGPT> https://lwn.net/ml/linux-kernel/20230726091752.GA3802077@hirez.programming.kicks-ass.net/
13:27:00 <bslsk05> ​lwn.net: Re: [PATCHSET v4] sched: Implement BPF extensible scheduler class [LWN.net]
13:27:00 <ChavGPT> this is my fav email
13:27:00 <netbsduser`> and rewriting them in rust without any rearchitecting, of course
13:29:00 <heat> ChavGPT, oh yeah btw new scheduler
13:30:00 <heat> they merged EEVDF
13:30:00 <ChavGPT> :O
13:37:00 <zid> EEVDF
13:37:00 <zid> could they not have asked the hacker scene for a better name
13:37:00 <zid> HEARTRENDER
13:38:00 <zid> it needs to be mistakable for a metal band
13:39:00 <heat> personally i find it silly that they keep merging really important stuff with lots of possible breakage *for LTS releases*
13:39:00 <heat> 6.1 had maple and MGLRU, 6.6 will have EEVDF
13:39:00 <zid> yea but
13:39:00 <zid> not in the default config though?
13:39:00 <zid> nobody's LTS anything will be broken with make oldconfig
13:40:00 <heat> they removed the old scheduler AFAIK
13:40:00 <zid> I don't believe you, they made them pluggable didn't they? Or was that only the disk one
13:40:00 <heat> at least that was the plan
13:42:00 <kof13> > mistakable HÜRTRENDER it is mostly a matter of umlaut
13:42:00 <heat> https://github.com/torvalds/linux/commit/b41bbb33cf75d251a816768580819aec17be718d
13:42:00 <bslsk05> ​github.com: Merge branch 'sched/eevdf' into sched/core · torvalds/linux@b41bbb3 · GitHub
13:42:00 <heat> seems to just be a bunch of changes on the core CFS stuff
14:24:00 <heat> ChavGPT, you made it onto lwn again btw
14:24:00 <ChavGPT> i'm aware
14:25:00 <ChavGPT> if anything i'm surprised you were not tlaking shit about it yesterday
14:25:00 <ChavGPT> were you busy playing elden ring
14:25:00 <heat> i don't have a lwn subscription anymore
14:25:00 <ChavGPT> then how do you know
14:25:00 <heat> i figured
14:26:00 <ChavGPT> oh from the title
14:26:00 <heat> yes, and your rants
14:26:00 <heat> then searched for the libc-alpha thread and lo-and-behold, the mjg man himself
14:26:00 <ChavGPT> the article says onyx has best fstat
14:26:00 <ChavGPT> quoting me
14:27:00 <heat> it does not
14:27:00 <heat> it has the exact same interface as linox
14:27:00 <heat> though i do have sys_fstat
14:31:00 <ChavGPT> your userspace rolls with fstatat?
14:32:00 <heat> i think musl does fstat
14:33:00 <heat> yeah
14:33:00 <heat> if (flag==AT_EMPTY_PATH && fd>=0 && !*path) {
14:33:00 <heat> ret = __syscall(SYS_fstat, fd, &kst);
14:48:00 <ChavGPT> ay lmao mon you know what's really pessimal
14:48:00 <gog`> me
14:49:00 <heat> gog` optimal
14:49:00 <gog`> no
14:49:00 <heat> yes
14:50:00 <ChavGPT> zfs has a lock array
14:51:00 <ChavGPT> #define ZFS_OBJ_MTX_SZ 64 kmutex_t z_hold_mtx[ZFS_OBJ_MTX_SZ]; /* znode hold locks */
14:51:00 <ChavGPT> so they take one of the locks
14:51:00 <ChavGPT> mess around
14:51:00 <ChavGPT> and then proceed to take a *global* lock while still holding this one
14:52:00 <ChavGPT> as a result they may as well have #define ZFS_OBJ_MTX_SZ 1
14:52:00 <heat> ok boss
14:52:00 <ChavGPT> much scalable
14:52:00 <ChavGPT> very solaris
14:52:00 <heat> EXT4 EXT4 EXT4 EXT4 EXT4 EXT4
14:52:00 <ChavGPT> you are really asking for it
14:52:00 <heat> you can stick zfs btrfs and xfs up your arse
14:52:00 <heat> ext4 for life
14:53:00 <gog`> i don't understand btrfs
14:53:00 <heat> imagine zfs, but linux
14:53:00 <gog`> i don't know what zfs is either
14:53:00 <gog`> what's wrong with mdadm and lvm i say
14:53:00 <heat> imagine batshit crazy ideas and complexity, in a filesystem
14:54:00 <ChavGPT> OH
14:54:00 <ChavGPT> gogs
14:54:00 <ChavGPT> have you been hanging out with openbsd flk
14:55:00 <heat> the fuck does mdadm and lvm have to do with openbsd
14:56:00 <ChavGPT> now that's very simple
14:56:00 <ChavGPT> openbsd are fundamentally opposed to zfs calling it a "layering violation"
14:56:00 <ChavGPT> and zfs is a filesystem and a volume manager and a raid innit
14:56:00 <ChavGPT> and gogs expressed their sentiment
14:57:00 <ChavGPT> innit it right gogs
14:57:00 <heat> i agree
14:57:00 <heat> zfs is a mess
14:57:00 <heat> and so is btrfs
14:57:00 <ChavGPT> :d
14:57:00 <ChavGPT> you are mentally in your 60s man
14:58:00 <heat> sorry
14:58:00 <gog`> i'm most familiar with mdadm and lvm
14:58:00 <gog`> that's all
14:58:00 <heat> zfs is great because zfs is great
14:58:00 <heat> zfs zfs zfs
14:58:00 <gog`> even ntfs doesn't have this stuff built into the fs tho
14:58:00 <heat> nothing does but zfs and zfs'
14:59:00 <gog`> even windows has LDM which is like if mdadm and lvm had a baby
14:59:00 <ChavGPT> i'm unorinically reocmmending bonwick's docs on zfs here
15:01:00 <heat> i can tolerate xfs because it's 1) still simpler than zfs 2) well documented
15:01:00 <heat> https://mirrors.edge.kernel.org/pub/linux/utils/fs/xfs/docs/xfs_filesystem_structure.pdf
15:01:00 <heat> look at this tasty doc
15:01:00 <zid> what happened to yfs
15:01:00 <zid> or is it like windows 9
15:02:00 <gog`> a to z
15:02:00 <gog`> 0 to 9
15:02:00 <zid> I shall make a yfs, it's exactly ext4 but it's yuffie themed from ff7
15:03:00 <zid> because she's very attractive
15:03:00 <ChavGPT> heat: what do you think about HAMMER
15:03:00 <heat> not much
15:03:00 <ChavGPT> anyhow the point of zfs was that the space should not need partitionoing by hand
15:03:00 <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
15:04:00 <ChavGPT> it's just there
15:04:00 <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"
15:04:00 <heat> i already hate it
15:05:00 <ChavGPT> do you implement ext4 in onyx?
15:05:00 <netbsduser`> everyone uses b/+ trees nowadays
15:06:00 <heat> i have a WIP for ext4 yeah
15:06:00 <zid> checksums don't deal with data corruption :(
15:06:00 <heat> i think ext4 has the ideal amount of stupid in a filesystem
15:07:00 <heat> it's simple enough while being performant as fuck if you so choose (and spend the time and complexity on your implementation)
15:07:00 * ChavGPT sticks to redseafs
15:07:00 <ChavGPT> fuck you
15:07:00 <netbsduser`> incredible that a direct descendent of a clone of the original Berkeley UFS has adapted itself to a lot of modern paradigms
15:07:00 <heat> i don't really need anything zfs or btrfs gives me, snapshots whatever, don't need em
15:08:00 <ChavGPT> who
15:08:00 <ChavGPT> ext4?
15:08:00 <heat> yes
15:08:00 <ChavGPT> cause i don't know if that counts
15:08:00 <zid> I want a hdd that has native reed-solomon
15:10:00 <netbsduser`> i really need to investigate how it is that filesystems other than ZFS implement snapshots
15:11:00 <netbsduser`> i experimented with designing an fs with snapshots and found it very difficult to square extents with snapshots
15:12:00 <netbsduser`> in zfs they instead compose files of blocks whose size is variable between files but not within files
15:12:00 <nortti> iirc zfs does not use extents
15:12:00 <netbsduser`> it doesn't
15:12:00 <nortti> I do think bcachefs has both though
15:12:00 <netbsduser`> they have block sizes variable between files but not within
15:38:00 <heat> haha look at this huge ass nop
15:38:00 <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)
15:38:00 <zid> ffffffff
15:40:00 <heat> the funny bit is that clang decided to gen this on its own
15:40:00 <heat> to align a loop that definitely isn't hot at all ever
16:56:00 <heat> ChavGPT, https://www.reddit.com/r/openbsd/comments/16j90zw/something_is_very_slow_how_to_debug/
16:56:00 <bslsk05> ​www.reddit.com: Reddit - Dive into anything
16:56:00 <heat> LMAO
17:00:00 <ChavGPT> heat: OpenBSD has conservative performance settings.
17:00:00 <ChavGPT> however, the guy is doing a lol comparison
17:01:00 <ChavGPT> i am positively surprised someone on the sub knows what big kenrel lock is, but they are worng about what they state there
17:01:00 <ChavGPT> that spin thing is for any lock afair
17:01:00 <ChavGPT> and of course nobody pointed out how to profile what's going on
17:02:00 <heat> doing spin% for any lock sounds expensive to gather?
17:02:00 <ChavGPT> i don't see why, could be a per-cpu stat
17:02:00 <ChavGPT> which you collect
17:02:00 <ChavGPT> but then again, not somethng i would expect them to do
17:02:00 <ChavGPT> the real q is what are you doing looking at the sub
17:02:00 <heat> i was curious
17:02:00 <ChavGPT> don't get me wrong, i appreciate the lulz
17:03:00 <ChavGPT> this is why i was lurking at their lists at times
17:03:00 <ChavGPT> but this is a rabbit hole worse than tik tok
17:03:00 <ChavGPT> better to now get started
17:03:00 <heat> i don't remember how i got there but i enjoyed seeing this post
17:03:00 <ChavGPT> s/now/not/
17:03:00 <heat> but anyway how would you do it per-cpu in a cheap way?
17:03:00 <heat> like you're not measuring time
17:03:00 <heat> right?
17:04:00 <heat> unless this is some sort of cheap sampling
17:04:00 <ChavGPT> "are you spinning right now mofer"
17:05:00 <ChavGPT> their bkl is a queued lock
17:05:00 <ChavGPT> which is pretty funny in kvm
17:05:00 <ChavGPT> since they don';t support paravirt locking
17:07:00 <heat> what kind of paravirt locking does kvm support?
17:07:00 <ChavGPT> you know what futexes do
17:07:00 <ChavGPT> it's an equivalent for vcpus
17:08:00 <ChavGPT> oh it's a *Ticket* lock
17:09:00 <ChavGPT> but same problem, point was the fairness of the primitive fucks them up on kvm
17:09:00 <ChavGPT> heat: there you go mofo:
17:09:00 <ChavGPT> __mp_lock_spin(struct __mp_lock *mpl, u_int me)
17:09:00 <ChavGPT> spc->spc_spinning++;
17:09:00 <ChavGPT> ..
17:09:00 <ChavGPT> spc->spc_spinning--;
17:10:00 <ChavGPT> then they check for the count during lock interrupt
17:10:00 <ChavGPT> totally fucked up that this even makes sense
17:10:00 <ChavGPT> :d
17:10:00 <ChavGPT> anyhow the magic primitive is used at least by the scheduler lock as well
17:11:00 <heat> why is fairness bad on kvm?
17:11:00 <ChavGPT> it is bad in their case because they don't tell kvm which vcpu to wake up
17:11:00 <heat> it sounds super expensive to go offcpu? only makes sense if your machine has more VMs in it
17:11:00 <ChavGPT> do you undersand what futexesare for or not mofo
17:11:00 <heat> i know what futexes are
17:12:00 <ChavGPT> there you go
17:12:00 <ChavGPT> practical kvm deployments tend to have more vcpus than cpus
17:12:00 <ChavGPT> and when the "wrong" vcpu gess the slice, it wastes it
17:13:00 <ChavGPT> anyhwo in the entire story i'm surprised obsd booted on powerpc
17:14:00 <heat> mofo installed openbsd on a 44-core 4-way-SMT powerpc
17:14:00 <ChavGPT> they had a tool to get flamegraphs, not surprised nobody knows about it
17:14:00 <ChavGPT> on the sub
17:14:00 <ChavGPT> fwiw any post of any sense should land on -tech
17:15:00 <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
17:15:00 <ChavGPT> (albeit that would increase signal to noise ratio
17:15:00 <ChavGPT> that's a stupid comparison
17:15:00 <heat> s/stupid/hilarious
17:15:00 <ChavGPT> should he run obsd in the same setting as the laptop the result would not be anywhere near as atrocious
17:16:00 <ChavGPT> but ofc, if things don't scale, not only you don't get a speed up, but you get a massive slowdown
17:16:00 <ChavGPT> big news in 2001
17:16:00 <ChavGPT> did you know obsd does not have unified buffer cach
17:16:00 <ChavGPT> e
17:16:00 <ChavGPT> :X
17:16:00 <ChavGPT> my fav thing about them
17:17:00 <ChavGPT> it's a early 90s kernel with some contemporary laptop drivers
17:18:00 <ChavGPT> an
17:18:00 <heat> does it map the page cache and fault pages in on read()?
17:19:00 <heat> or did they not pick that bit up from the glorious SVR4
17:19:00 <ChavGPT> i don't know what they specifically do
17:19:00 <ChavGPT> i do know they don't have coherency vs mmap
17:19:00 <heat> wdym?
17:19:00 <ChavGPT> and they claim it's not a big deal cause posix does not /require/ it
17:19:00 <heat> oh fuck off
17:19:00 <heat> write() doesn't have coherency with fucking mmap???
17:20:00 <ChavGPT> yes
17:20:00 <heat> holy shit
17:20:00 <heat> the heck are they mapping then?
17:20:00 <ChavGPT> they had someonew orking on it in early 2010s
17:20:00 <heat> you don't even need a buffer cache for this
17:20:00 <ChavGPT> but the person fucked off the project
17:20:00 <ChavGPT> do you know all the push for ubc mofo
17:20:00 <ChavGPT> they never made the leap
17:21:00 <heat> now im sad
17:23:00 <heat> how hard would it be to port UBC? would that even help with the mmap situation?
17:23:00 <ChavGPT> it is the primary ingredeient to making it work
17:23:00 <ChavGPT> but you can always fuck it up like netbsd did
17:23:00 <ChavGPT> :d
17:24:00 <ChavGPT> they *always* establish transient mappings on read(2)
17:24:00 <ChavGPT> and pay tlb shootdowns for it
17:24:00 <ChavGPT> including on amd64
17:24:00 <heat> i know
17:24:00 <ChavGPT> anyhow it is probably a significant undertaking
17:24:00 <heat> and that's funny but like
17:24:00 <heat> openbsd situation is much worse
17:24:00 <ChavGPT> it requires some careful coding to get right as is
17:25:00 <ChavGPT> and then you have to expect there is tons of latent bugs
17:25:00 <ChavGPT> which you are going to expose
17:25:00 <ChavGPT> making this a serious challenge
17:31:00 <ChavGPT> not only the codebase they started with is not very good
17:31:00 <ChavGPT> they are not making it better
17:31:00 <ChavGPT> :X
17:32:00 <heat> i'm not sure if they're not making it better
17:32:00 <heat> but rather they focus on the wrong things?
17:32:00 <ChavGPT> i ranted on numerous things they did wrong
17:33:00 <ChavGPT> i don't know if i can be arsed to repeat myself
17:33:00 <ChavGPT> s/on/about/
17:33:00 <heat> they can do many things wrong, still probably better than what they started with?
17:33:00 <ChavGPT> for funny definitions of better
17:38:00 <ChavGPT> heat: what made you defend obsd anyway, are you softening up
17:38:00 <ChavGPT> i definitely see you submitting some patches in the foreseeable future
17:38:00 <heat> i still don't like openbsd but im not a mindless hater
17:38:00 <heat> rather, i'm a *mindful* hater
17:39:00 <ChavGPT> they take a look at their copyin and copyout
17:39:00 <ChavGPT> for amd64
17:40:00 <heat> haha very nice
17:40:00 <heat> classic rep movsq/l/w/b
17:40:00 <ChavGPT> that's not classic
17:40:00 <ChavGPT> the classic is movsq -> movsb
17:41:00 <ChavGPT> they have movsl in the middle because retard
17:41:00 <ChavGPT> at some pointed they decided they want to do futexen and to that end wanted atomic stores of 4 bytes to userspace
17:41:00 <ChavGPT> and this is where movsl got slapped in
17:41:00 <ChavGPT> later someone got hit in the head and accidentally got an idea to have a dedicated routine doing 4 byte stores
17:42:00 <ChavGPT> but movsl remained
17:42:00 <ChavGPT> so there you go, as far as making the kernel better goes
17:42:00 <heat> that's weird
17:42:00 <ChavGPT> the kernel would be drastically faster single and multithreaded if someone clued spent a weekend on it
17:43:00 <heat> they have futexes?
17:43:00 <ChavGPT> they do
17:43:00 <ChavGPT> enough to have firefox running afair
17:43:00 <ChavGPT> otherwise it is unusable
17:43:00 <ChavGPT> spawns too many threads for fuck all reason
17:43:00 <heat> ohhh this is literally the linux stuff
17:43:00 <heat> cute
17:43:00 <ChavGPT> and all the threads are mostly busy wasting time
17:44:00 <heat> oh but futexes are new though?
17:44:00 <heat> 2017 it seems
17:45:00 <ChavGPT> check out their other string ops
17:45:00 <ChavGPT> utter geezer, mostly copied from netbsd
17:47:00 <ChavGPT> what irks me the most is their RB-tree namecache
17:47:00 <ChavGPT> which was also being sold as a win
17:50:00 <heat> win over what?
17:51:00 <ChavGPT> the hash
17:51:00 <netbsduser`> ChavGPT: did they take it from NetBSD?
17:51:00 <ChavGPT> i give them epsilon credit since what they had was the old bsd hash
17:51:00 <ChavGPT> withoug backpointers
17:51:00 <ChavGPT> netbsduser`: take what
17:51:00 <netbsduser`> their new namecache
17:51:00 <ChavGPT> rb tree in the nameache predates netbsd work in the area
17:51:00 <ChavGPT> by few years
17:52:00 <netbsduser`> i am not overly familiar with openbsd
17:52:00 <netbsduser`> i tried to submit a patch and they ghosted my message
17:52:00 <ChavGPT> well that can happen in any project
17:52:00 <heat> we could've had openbsduser
17:52:00 <ChavGPT> fair
17:52:00 <ChavGPT> netbsduser`: try again mate
17:53:00 <netbsduser`> i did try again
17:53:00 <netbsduser`> still no reply
17:53:00 <heat> openbsdandnetbsduser
17:53:00 <heat> dragonflybsduser
17:53:00 <ChavGPT> what's the patch
17:53:00 <netbsduser`> i am not bigoted against openbsd or anything like that but i am not sure on what its merit is over net
17:53:00 <heat> re-enables tmpfs?
17:53:00 <ChavGPT> supposed merit is focus on security
17:54:00 <heat> i'm not sure if there is any merit on any of these systems
17:54:00 <ChavGPT> whether they succeeded is another story
17:54:00 <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
17:54:00 <ChavGPT> this is an old massvie flramewar
17:55:00 <ChavGPT> they do more work to prevent kernel exploitation (can't tell whether it /does/ do it though)
17:55:00 <ChavGPT> the problem is that almost nobody is intellectually honest about it
17:55:00 <heat> freebsd is a worse liberally licensed linux, netbsd is a worse freebsd, openbsd is a worse netbsd, dragonflybsd do be chillin tho
17:55:00 <ChavGPT> OH
17:56:00 <ChavGPT> *plonk*
17:56:00 <heat> the fuck are you plonking me for
17:56:00 <heat> i praised the best bsd, dragonflybsd
17:56:00 <heat> dat dragon do be flying tho
17:56:00 <ChavGPT> funny you mention that
17:57:00 <ChavGPT> recently it turned out their kernel does not support avx512
17:57:00 <heat> good
17:57:00 <ChavGPT> someone ran a program which uses it (based on cpuflags) and bam, funzies
17:57:00 <heat> mine doesn't either, i think
17:57:00 <ChavGPT> well openbsd does not either
17:57:00 <netbsduser`> ChavGPT: undoubtably they are good in that respect but i think it's surprising they seem disinterested in anything like capsicum
17:57:00 <ChavGPT> you could perhaps write a patch
17:57:00 <heat> a patch for what?
17:57:00 <ChavGPT> avx512 for dfly
17:57:00 <heat> why
17:57:00 <ChavGPT> netbsduser`: they are interested in their own variant, pledge
17:58:00 <netbsduser`> i know pledge and i don't like it
17:59:00 <ChavGPT> nobody does
17:59:00 <ChavGPT> but it also means obsd is not for you
17:59:00 <ChavGPT> pledge is obsd in a nutshell
17:59:00 <netbsduser`> capsicum on the other hand i like because it's both a rigorous security architecture and also attuned to the unix tradition
18:00:00 <heat> don't forget unveil!
18:00:00 <heat> it's pledge AND unveil
18:00:00 <heat> there's a world where i like pledge and it's the one where it's implemented in the libc
18:01:00 <ChavGPT> ey heat have you considered being a more informed hater
18:01:00 <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
18:01:00 <ChavGPT> and getting a flamegraph from open
18:01:00 <heat> no
18:01:00 <heat> anyway my idea would be for the libc to dynamically generate seccomp BPF from pledge words
18:02:00 <heat> which would be a solid win for everyone
18:02:00 <netbsduser`> it's a shame that capsicum port to linux financed by a google organisation never took off
18:02:00 <netbsduser`> then the linuxers would have capabilities
18:02:00 <heat> you already have capabilities!!!
18:03:00 <netbsduser`> instead it looks like linux will be used as a runtime for WASM programs (and WASI is basically Capsicum)
18:04:00 <heat> i hope you realize WASM still kind of sucks
18:04:00 <ChavGPT> i'm done ranting about capsicum
18:04:00 <heat> the last I heard about it (a year ago), V8 was still much faster executing javascript vs WASM
18:04:00 <heat> therefore javascript is OPTIMAL, QED
18:05:00 <GeDaMo> What's Capsicum?
18:05:00 <netbsduser`> i could quite imagine that heat
18:06:00 <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
18:07:00 <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
18:08:00 <ChavGPT> heat: btw pledge is implemented in such a slow manner it is funny mate
18:08:00 <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
18:09:00 <ChavGPT> heat: spelunk through namei to get a glimpse
18:09:00 <heat> netbsduser`, JITting is JUTting
18:09:00 <GeDaMo> https://www.cl.cam.ac.uk/research/security/capsicum/
18:09:00 <bslsk05> ​www.cl.cam.ac.uk: Computer Laboratory: Capsicum: practical capabilities for UNIX
18:09:00 <heat> ChavGPT, you mean unveil?
18:09:00 <ChavGPT> check the timezone stuff for example
18:09:00 <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
18:09:00 <ChavGPT> if you "promise" some bullshit the kernel string-matches files
18:10:00 <heat> but i didn't look at it, just asked around
18:10:00 <heat> ChavGPT, oh ew
18:27:00 <zid> wasm had the super weird single exit/entry thing right?
18:27:00 <zid> where you had to serialize everything over a string string output
18:28:00 <zid> rather than just having syscalls
18:28:00 <zid> to manip the dom
19:55:00 <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
19:57:00 <heat> oh no
20:01:00 <heat> BOOLEAN StorPortAreYouSure (CONST _In_ ARE_YOU_SURE_DATA *Data);
20:03:00 <netbsduser`> the code style could certainly use with being less loud
21:18:00 <geist> netbsduser`: wow that's pretty neat
21:19:00 <geist> i mean i have no interest in doing that, but it is a pretty cool solution
21:19:00 <geist> how many hooks did you need to implement that it calls out into?
21:27:00 <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)
21:30:00 <heat> the fact that it does not use any proper kernel functions is kinda nuts
21:33:00 <heat> i guess it makes sense for them to provide a really stable ABI interface for drivers?
21:33:00 <heat> so it's as close as possible to ABI stable across nt versions
21:36:00 <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"
21:36:00 <netbsduser`> storport clearly makes a very big effort for abi stability
21:40:00 <heat> what imports does iaStorA need?
21:47:00 <CompanionCube> terrible idea: use *nix filesystems exclusively via windows implementations
21:48:00 <heat> wow that's horrendous, congrats
21:56:00 <zid> Write a fuse shim for the iastor interface
21:56:00 <zid> then run fuse-ntfs3g
21:57:00 <heat> i tried looking for iastor in my windows partition but it seems like i don't have it
21:57:00 <heat> WAIT
21:57:00 <heat> i have two iastor*
21:58:00 <heat> iaStorAVC.sys and iaStorV.sys
21:59:00 <heat> ah ok iaStorAVC needs a *lot* more stuff
22:00:00 <heat> https://gist.github.com/heatd/977bce7e6ebab5f132734d492852bdc4
22:00:00 <bslsk05> ​gist.github.com: iastor_deps.txt · GitHub
22:00:00 <zid> super very correct version
22:00:00 <heat> __C_specific_handler is for SEH btw
22:01:00 <heat> so that driver uses SEH, yay
22:01:00 <zid> I hope they compiled it with ICC
22:08:00 <gog`> HI
22:08:00 <heat> HI
22:20:00 <cloudowind> hi++
22:23:00 <heat> cloudowind: what are you doing here
22:28:00 <cloudowind> i don't really know heat , maybe old habit from 23-24 years ago , maybe sometimes to see what geist is doing
22:28:00 <cloudowind> sometimes maybe something that i can learn from you guys conversations
22:28:00 <geist> not much lately to be honest
22:28:00 <geist> mostly playing starfield and generally not doing much hobby stuff outside of work
22:31:00 <cloudowind> you're saving all those possible activies for your retirement then i assume
22:38:00 <geist> well, sometimes when work is busy i sort of chews up all your hacking energy there
22:39:00 <geist> and then you just want to mindlessly do something else when off time
22:44:00 <cloudowind> no children geist ?i remember you had a partner years ago
22:44:00 <geist> nope
22:44:00 <geist> i have a cat though
22:44:00 <heat> adopt me
22:44:00 <heat> lets write a kernal
22:44:00 * cloudowind hides
22:54:00 <cloudowind> a kernel that will change the whole civilization
23:10:00 <netbsduser`> zid: i do have a fuse implementation so it might well be doable
23:11:00 <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?
23:21:00 <gog`> i'm mostly playing factorio and crying
23:22:00 <zid> does that make your best better
23:22:00 <zid> I could try mixing it in
23:23:00 <zid> best? base.
23:23:00 * heat gog hug
23:23:00 <gog`> no
23:24:00 <gog`> i'm building a 75spm base
23:24:00 <gog`> the crying is for another reason
23:24:00 * kazinsal hugs gog
23:24:00 * gog` hug heat, kazinsal
23:25:00 <kazinsal> gog sandwich
23:26:00 <heat> most feminist #osdev user
23:27:00 <gog`> no he's a catboy twink
23:32:00 <gog> mwow
23:47:00 <heat> i wrote a bunch of page reclamation bullshit that's completely untested
23:47:00 <heat> it does nothing but shrink caches and percpu stuff