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
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Oranos has quit [Quit: Oranos]
spikeheron has quit [Quit: WeeChat 3.7]
Oranos has joined #osdev
dutch has joined #osdev
<geist> hmm, kinda want to put in an order for a visionfive 2 board
<geist> may ship in january!
<geist> i'm a bit unexcited in the fact that the starfive page doesn't have docs for the JH7110 soc
<geist> hmm, only a datasheet for the previous one, no real software dev guide around
<geist> this is a no-go
<heat> aw
<geist> sigh, come on assholes. release the damn docs
<heat> i did look at it briefly after someone mentioned it in the fuchsia discord
<heat> but it seemed too unobtanium here
<geist> yeah i had even preordered the visionfive and cancelled the preorder when it went on for like 6 months
<geist> so not going to get snookered again
<geist> this time it looks like the visionfive 2 is gonna really ship soon, but no docs, no play
<heat> if you look at GPLv2 code for documentation is it a license violation? :)
<geist> maybe not, but it's no fun anyway
<geist> and that assumes there's full support for it in linux, etc
<heat> "VisionFive 2 supports mainstream Linux distributions"
<geist> i mean i'm sure the basics could be made to go, the datasheet has at least the memory map and there is a DTC, etc
<geist> but bleh
<geist> yeah but that doesn't mean it has full support for everything. it may hjust have the gpios jammed into place, no proper clock driver, etc
gog has quit [Ping timeout: 252 seconds]
<geist> from what i can grok the starfive folks dont seem to be scammy or anything, i suspect they're just a handful of devs and no doc writers. or the docs are in chinese, or there are no internal docs (actually kinda common)
<heat> doc writing is herd :(
<geist> but they have a repo with some uboot and whatnot stuff on it: https://github.com/starfive-tech/VisionFive2
<heat> i kinda want to set up a sphinx thingy for my OS with docs
<heat> with pretty html and shit that I can then just host
<kaichiuchi> hi
<heat> kai
<kaichiuchi> hai
gog has joined #osdev
FreeFull has quit []
<geist> hmm, people have been asking, but there is a pretty good forum and whatnot for visionfive 2 stuff
<geist> so probably worth pulling the trigger on this and at least getting some hardware to fiddle with
<bslsk05> ​forum.rvspace.org: JH7110 Software Developer Guide ETA? - VisionFive 2 (English Forum) - RVspace Forum
<gog> hi
<zid> what's a visionfive
<zid> sounds like an ossc competitor, by name, but I doubt it
MiningMarsh has quit [Read error: Connection reset by peer]
<heat> it's an """AI""" riscv board maker
<zid> oh so we should put it in the bin with the rest of the casio watches
<geist> no it's just a riscv 64bit based dev board
<geist> seems okayish if it'll ever ship
<heat> yeah but these boards are all supposedly for AI
<heat> hence vision
<geist> well sure. i mean you have to have some sort of point to making a whole soc
<zid> heat: I want a datapath visionRGB
<geist> most socs i know if have some sort of role they're designed to fit
invalidopcode has quit [Read error: Connection reset by peer]
invalidopcode has joined #osdev
lucartc has quit [Remote host closed the connection]
dutch has quit [Quit: WeeChat 3.7]
dutch has joined #osdev
MiningMarsh has joined #osdev
Oranos has quit [Ping timeout: 260 seconds]
Oranos has joined #osdev
MelMalik is now known as Reinhilde
Oranos has quit [Ping timeout: 260 seconds]
zid has quit [Ping timeout: 252 seconds]
zid has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
ornx has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
SGautam has joined #osdev
ThinkT510 has quit [Ping timeout: 272 seconds]
ThinkT510 has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 265 seconds]
<epony> four double-quotes are for multi-file quotation ;-) that Pythoŋ
<epony> five for multi-decade imports and six for string-theory overloads
<epony> quotation start from 2, nestiŋ is for birds
<epony> "The quick twin peaks hat ate the lazy blue elephant." --22/7
Oranos has joined #osdev
emoney has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
Oranos has quit [Quit: Oranos]
bgs has joined #osdev
scoobydoo has quit [Ping timeout: 272 seconds]
scoobydoo has joined #osdev
gxt has quit [Ping timeout: 255 seconds]
gxt has joined #osdev
notdzwdz has quit [Ping timeout: 255 seconds]
heat has quit [Ping timeout: 246 seconds]
notdzwdz has joined #osdev
notdzwdz has quit [Ping timeout: 255 seconds]
notdzwdz has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
bgs has quit [Remote host closed the connection]
gog has quit [Ping timeout: 268 seconds]
gog has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
eroux has quit [Quit: Textual IRC Client: www.textualapp.com]
[itchyjunk] has joined #osdev
gog has quit [Ping timeout: 256 seconds]
danilogondolfo has joined #osdev
gog has joined #osdev
gog has quit [Client Quit]
SGautam has quit [Quit: Connection closed for inactivity]
[itchyjunk] has quit [Remote host closed the connection]
LostFrog has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
PapaFrog has quit [Ping timeout: 272 seconds]
foudfou has quit [Remote host closed the connection]
pog has joined #osdev
nyah has joined #osdev
<pog> mew
<ddevault> looks like I'm going to get a slot at FOSDEM :)
<ddevault> microkernel track
<theWeaver> ddevault: poggers
* moon-child gets pog
<ddevault> have to totally overhaul my talk to fit that room though
<pog> nice!
<FireFly> vewy vewy smow kewnel
GeDaMo has joined #osdev
<FireFly> a mildly amusing switcheroo would be to offer an OS talk at fosdem and then give a talk about knightos :p
<ddevault> hah
<ddevault> would be *very* impressive if I could connect KnightOS to a projector to drive the slide deck
<kazinsal> new kernel design classification unlocked: uwukernel
<FireFly> "I'm sorry my calculator doesn't have a VGA port"
<Mutabah> bitbang VGA?
<ddevault> would probably involve the USB port
<ddevault> and a little board to do some heavy lifting
<FireFly> might make the surprise "turns out I was driving the presentation from within the OS" a bit less subtle if it's rendered at TI-calc screen resolutions and in monochrome though
<ddevault> who says I would send the internal display to the projector?
<FireFly> ..true
<ddevault> please wait 5 minutes while my... laptop... renders the next slide
<Mutabah> also, that's klange's trick
<ddevault> maybe so, but I'll selfishly one-up him by also writing the language my kernel is written in
<epony> VGA is an analogue signal
<epony> so much confusion in so little words
<FireFly> feels like a reasonable way to stretch the term
<FireFly> I don't think 'bit' is the main distinguishing feature of bitbanging
<clever> you can also bit-bang a 24bit parallel digital signal, then just slap a 3 channel DAC on it
<epony> mhm, the hole in the floor has space for more han solos
<clever> or even just a resistor dac
<Mutabah> epony: You can bit-bang 8-colour VGA :)
<Mutabah> Or more with a resistor ladder DAC
<epony> well, it's not just one signal and has sync too
<Mutabah> five
<epony> check out the VGA spec and you'll see composite and VGA are not the same thing, and even composite is infeasible
<Mutabah> two sync lines and three colour lines (iirc)
<Mutabah> bangable with a few passive components'
<epony> you also need some bandwidth
<Mutabah> Oh yep, definitely
<bslsk05> ​'The world's worst video card?' by Ben Eater (00:32:47)
<epony> let's not talk about voodoo ;-)
<Mutabah> That's not a voodoo, it's a custom one :)
<Mutabah> But seriously, I mentioned big-banging a video signal - voodoo is entirely on the table
<epony> yeah, the voodoo in the first apple had traces drawn with chicken legs
<epony> it's not, forget it ;-)
nyah has quit [Ping timeout: 246 seconds]
<ddevault> done: https://l.sr.ht/qJBQ.pdf
<ddevault> ah I should shout out #osdev at the end too
<ddevault> back to teaching a raspberry pi how to display this slide deck
<epony> that's their primary use case, signage and kiosk / presentation
<epony> smart-vga ;-)
nyah has joined #osdev
theWeaver is now known as NotInventedHere
Left_Turn has joined #osdev
<kaichiuchi> pog: may i pog you
<Ermine> ddevault: congrats on approval? Will it be streamed this year?
<pog> kaichiuchi lewd
<Ermine> wiki page on gog output protocol when
Turn_Left has quit [Ping timeout: 260 seconds]
<kaichiuchi> waiting for packages suck
<ddevault> Ermine: I think so
<ddevault> still not finalized, though, too early to celebrate
<zid> I thought they already fired you
<kaichiuchi> i'd fire you
<kaichiuchi> (not really, but i would probably have to leave the office every now and again)
<kaichiuchi> <3
<pog> fire me
<zid> out of a canon into the sun?
<pog> yes
<zid> or a cannon
<zid> firing you out of a kodak, pew
<pog> nikon pls
<zid> I'm not that rich
* pog flashes her cash at zid
<zid> :(
<pog> aww sorry
<pog> i'm not rich either
<zid> I need $4.95 so I can pirate some ebooks for myself
<pog> ok
<zid> stick has gone afk and not posted blacksmith collecting tomboys v5, and honzuki is out tonight
<zid> worry
<pog> aw
<zid> I want a collection of tomboys, but idk how to get it started
<pog> am i too femme to count as a tomboy
<zid> if you were a tomboy I think you'd just end up being a boy?
<zid> idk how all this works
<pog>  ¯\_(ツ)_/¯
<ddevault> time to play "can I read ARMARM today"
<ddevault> yes!
<ddevault> I bet I can be in userspace by this afternoon
<ddevault> evening*
<ddevault> syscalls too if I'm lucky
Turn_Left has joined #osdev
<ddevault> just finished setting up the init loader, just have to drop from EL1=>EL0
<ddevault> then, uh, do some other stuff
Left_Turn has quit [Ping timeout: 246 seconds]
lucartc has joined #osdev
<kaichiuchi> it's incredible how getting the size of a file in C is somehow ridiculous
foudfou has joined #osdev
<sham1> Well that's just because C doesn't really have a way to do it
<zid> yea that's not really a C thing
<sham1> Well, unless you're talking about ftell and rewind
<kaichiuchi> I know it isn't a *C thing*
<zid> C just barely manges streams, sorta
<kaichiuchi> SEEK_END isn't portable
<zid> sham1: not valid
<sham1> Right
<kaichiuchi> and in win32 land, it's even worse
<kaichiuchi> because you NEED a HANDLE
<kaichiuchi> GetFileSize doesn't take a FILE
<zid> SEEK_END is UB on binary streams
<kaichiuchi> right
<zid> it won't ever actually fail but, technically not allowed
<sham1> But why
<kaichiuchi> also I'm really trying to use vim
<kaichiuchi> but god
<kaichiuchi> it's annoying
<zid> cus C supports filesystems that only deal in blocks not chars
<sham1> Oh
<sham1> That... is gross
<zid> which in the modern era is a dumb thing, but was important
<zid> back in the 70s
<sham1> I'm clearly stuck in a POSIX realism
<zid> So now we just use POSIX
<sham1> Everything-is-POSIX. I try to write portably and I fail. F
<zid> which also relaxes some other semantics like interleaving
<zid> It's fun watching people port linux utils to windows then wondering why the fuck they blow up
<zid> msvcrt is *not* using the posix interleaving behavior, it's using the C one
<kaichiuchi> in short though, there's no 100% portable way to get the size of a file
<zid> Which is fine, tbh
<sham1> Eh, not all devices have files
<zid> all the file apis are different anyway
<zid> MapViewOfFile etc
<zid> mmap, C has.. nothing
<kaichiuchi> yeah but at least I could just use std::filesystem::file_size and be done with it
<kaichiuchi> but this is a lie
<sham1> I wouldn't mind having an optional C API for filesystems akin to std::filesystem
<sham1> Yeah
<sham1> C3x when
<sham1> C38
* sham1 pities the fools that are still using 32-bit time_t
<zid> all fs apis suck
<zid> let's make a new, even suckier one
<sham1> This time over the network
<sham1> No, I'm totally not reinventing 9p
<zid> is that nineplan
<sham1> That is indeed the file system communication protocol of plan9 which allowed for neat things like exposing the Acme editor's stuff as files
<zid> but can it do
<zid> cat /dev/cpu/0/cpuid | hexdump -C
<sham1> Probably somehow, I'm not an expert in Plan9
<sham1> But yeah, 9p is neat and in Plan9 allowed things like mounting the (logical) state of applications into the filesystem, making it so that external processes could be used to do $STUFF
<sham1> So kinda similar like exposing a UNIX protocol socket or other such things for UNIX applications
<sham1> With a tad more structure, with it being a filesystem as opposed to just a singular file descriptor
* kof123 pets gog <-- useful use of cat
<kof123> surely that is a useless use of cat hexdump -C < ... ?
<pog> shouldn't you be using stat() to get file size on posix?
<zid> ye
isaacwoods has joined #osdev
<zid> fstat stat stat64
<zid> take your pick
<pog> the stat family
<sham1> Probably fstat if you have a FILE* as you can just get the FD out of that and then use fstat
<pog> yeh
<zid> statl64_r
<kaichiuchi> stat() on POSIX, GetFileSize(Ex)() on win32
<sham1> Google doesn't even
<zid> It was an parody function
<sham1> Ah, I see
<kaichiuchi> seek to end, ftell, rewind for weak minds
<sham1> Very successful parody
<zid> it was very belief
<kaichiuchi> (and by that I mean "god I hate everything")
<zid> because you don't wanna write 2 lines inside two different ifdefs?
<kaichiuchi> i already did
<kaichiuchi> i just hate having to do it.
<zid> you've spent longer bitching about it than you did writing it
<kaichiuchi> yes
<kaichiuchi> that's how I roll
<sham1> Based
<pog> hell yeah
<pog> bitching about code is way more fun than writing it
<zid> pog: heat is the other kind of trans siberian
<zid> aka poruguese
<sham1> Speaking of bitching about code, tomorrow back to work. Woo
<zid> how many j-novel club coins do you get for that sham
<sham1> Do I look like a weeb to you
<pog> rekt
<zid> yes?
<sham1> Anyway, I work at 50% time (at a minimum) and at that rate I get about a 1000 euros. So about 2000 euros were I full-time
<zid> Okay you have permission to lavish me with gifts
<zid> it wouldn't be finanically responsible for gog to do it, even though I deserve it
Clockface has joined #osdev
<Clockface> i was able to beat GCC by like 0.5% to 3% on a thing that loops 1 billion times
<zid> sounds like measurement error
<sham1> ^
<Clockface> for a program that literally only loops i saw an improvement
<Clockface> i ran both a few dozen times
<Clockface> in most cases the hand written one beat it by a tiny tiny margin
<Clockface> i dont think its practical in most cases
<bslsk05> ​'"Performance Matters" by Emery Berger' by Strange Loop Conference (00:42:15)
<Clockface> i had a luaJIT one as well
<Clockface> and it was half the speed of GCC on -O3
<Clockface> so luaJIT is pretty impressive
<Clockface> for a scripting language
<zid> cpus are impressive*
<zid> as long as you give it the gist of what you're trying to do, they do a very good job of being fast regardless
<zid> GeDaMo: Why does he sound like he's talking into a coke can
<sham1> As said by a wise person once, Mike Pall is a robot from the future
<Clockface> CPU's are very smart, but they still have to run the program they are given
<Clockface> they cant magically optimize everything
<zid> they literally don't do the former
<zid> and haven't for 30 years
<sham1> Oh, I can't just have my CPU prove Collaz conjecture
<sham1> Sad
<zid> They very specifically are an abstract machine that runs the machine code as a suggestion instead :P
<zid> out of order microops woo!
<Clockface> thats just running their program with extra steps
<zid> often fewer steps
<zid> weirdly
<GeDaMo> Fused micro-ops! :P
<zid> my cpu's view of what a register move is and mine is *very* different
<zid> it mainly just deletes them and rewrites all references
<zid> zen4 revived zen2's memory renamer I hear
<zid> zen3 officially bad and smells
<sham1> https://godbolt.org/z/sxq6GKaME What I like is that C++ just optimised the loop away, while the equivalent C thing actually loops
<bslsk05> ​godbolt.org: Compiler Explorer
<zid> is that collatz
<sham1> Yes
<zid> calling it in advance: it's collatz, C++ has infinite loops being UB so knows to take the only valid return path
<zid> *clicks*
<zid> yep, collatz UB :P
<sham1> But if the language is changed to C, it doesn't do that
<zid> infinite loops are not UB in C
<pog> zid do you want $5 so you can get your weeb books
<kaichiuchi> i did not know that infinite loops were UB in C++ for a very, very long time
<kaichiuchi> an embarrassingly long time
<zid> pog: I have no way to give them it
<zid> j-novel club bad website
<pog> o
<pog> sorry
<zid> omg pog made j-novel club's website
<zid> now I know who to blame
<pog> :P
<zid> apology NOT ACCEPT, make them add a page where you can gift subs or something
<pog> if i gift you does that  make you my sub
<zid> yes
<pog> lol
<zid> I like being held.
<zid> cover me in moss and nuke me in the microwave
<jimbzy> A rolling zid gathers no moss.
<zid> oh hey, a brand new 'group' just appeared
<zid> 'faratnis'
<kaichiuchi> I am really trying to use vim
<kaichiuchi> I swear
<zid> grats
<kaichiuchi> I am trying to learn it but I don't understand how anyone can be productive in it
<zid> did you beat vimtutor yet
<kaichiuchi> no
<sham1> You'll get used t oit
<zid> the boss is pretty hard
<zid> but you need to get under 25% equip load and use more rolls
<sham1> Oh so vim is Hades
<kaichiuchi> ah, you too are a dark souls fan
<zid> wow sham1 you totally missed that reference
<zid> CLEARLY dark souls
<sham1> Look, I don't play difficult games
<kaichiuchi> i struggled deeply with maliketh
<kof123> ^ +equip load. login over dialup at <insert baud here> and see which editor you prefer
<zid> dark souls isn't even difficult
<kaichiuchi> you are so full of shit
<sham1> Obviously ed for if you have low enough baud
<kaichiuchi> it absolutely is difficult
<zid> what dark souls is, is like.. obtuse?
<zid> Once you learn it, the execution is really really simple
<sham1> Dark Souls is the Dark Souls of the Souls genre
<sham1> Soulborne*
<zid> but you have to either cheat and look shit up, or grind your face into concrete for a few hours
<zid> in order to get the knowledge you need to trivialize it
<zid> but once you have, you feel like a fucking god
<zid> It's a bit like world of warcraft tbh, it's a TOTALLY different game now, because people get how to play WoW now
<kaichiuchi> i don't understand how people find out all of the hidden shit in an hour after a game's release
<kaichiuchi> someone please explain it to me
<zid> easy, they're not doing that
<kaichiuchi> they must be
<zid> They are not.
<zid> Things called "review copies" exist
<kaichiuchi> people had elden ring down to a science within a few hours
<zid> elder ring is a) dark souls 3.1
<zid> and b) had months of open testing
<zid> elden*
<zid> so it both uses established data formats you can flood a wiki with via a script in seconds, and b, we literally had the game to play for months before launch
<zid> https://www.youtube.com/watch?v=BKP1I7IocYU short documentary for ya
<bslsk05> ​'Why It's Rude to Suck at Warcraft' by Folding Ideas (01:24:15)
<kaichiuchi> 1 hour and 30 minutes
<zid> 24
<kaichiuchi> i can cry myself to sleep in that time
<zid> it's written right there
<ddevault> I'm in userspace baby
<ddevault> can't get back out of it again but hey that's a problem for future me
bgs has joined #osdev
<pog> i do not know enough about SQL to be doing what i'm doing rn
<zid> same
<sham1> If someone tells you they know enough SQL, they're lying
<zid> I know enough sql
<zid> That amount is: barely ay
<zid> any*
<Clockface> im glad im not the only one
<Clockface> oh yeah, interesting thing
<Clockface> when i was experimenting with the loops
<Clockface> one of the things i tried was INC until overflow
<Clockface> but it went forever
<Clockface> do INC and DEC not do flags like ADD and SUB?
<zid> why would it not "go forever"
<zid> inc doesn't loop, your loop loops, you need a condition to stop it looping
<kaichiuchi> froot loop
<Clockface> i was using jmp if overflow
<Clockface> it worked and was hair splittingly faster than the normal way GCC did for some reason
<zid> inc sets OF,SF,ZF,AF and PF, CF is unaffected
<Clockface> but i had to use ADD, not inc
<Clockface> ah
<pog> omg i figured it out
<zid> poggers.
<pog> i'm very good at my job
<Clockface> i dident read the manual
<pog> now to convince my boss that altering the stored procedure is totally fine
<zid> pog: Well just try it for a bit and see if anything breaks, duh
<pog> thankfully i'm playing with it in the dev instance
<zid> Everybody has a testing environment, some people are just lucky enough that this isn't also the production environment,.
<pog> which if i totally wreck it it's fine because our test data is about 2 years out of dater
<pog> and i keep telling him we need a new snapshot
<Clockface> nah i think its fiiine
<Clockface> we recently got a testing environment after it was too late
<Clockface> now its nice
<Clockface> what happened before is every change would be submitted in a patch
<Clockface> and then there would be a few panic patches about 5 minutes apart
<Clockface> because something was mildly wrong with it
<pog> i can't really test this without an update to our entity framework but i don't have access to it
<pog> no idea where my boss is and i think my partner is gone home
<zid> you know you're in the corporate mud when you're saying things like ENTITY FRAMEWORK unironically
<pog> gotta get money somehow
<jimbzy> Just go ahead and update it on your production systems. What could possible go wrong?
<pog> i had to break the bad news to my partner earlier that he broke production by forgetting to alter a table
<pog> today
<pog> i don't wanna do it after that
<zid> Take the moral high ground by comitting nothing
<zid> and therefor never breaking prod
<Clockface> we used to have a testing branch but the way it got implemented was really screwed up
<Clockface> and the guy who set it up left
<pog> yeah it'll take them a month to fire me xD
<Clockface> so we dident have one for a while
<Clockface> until someone finally did it right
<zid> I didn't say do no work, just don't do the pushes
<zid> find a patsy
<zid> you'll be CEO in no time
<pog> i'll tell the CEO you said that
<pog> he's sitting across the room from me
<pog> real startup energy when the executives and the office people are all in one big room
<jimbzy> Tell him.
<jimbzy> Look him in the eye and be like, "You're going down..."
<pog> he'd probably laugh at me
<zid> pog: Tell him I offer competitive rates for business advice
<kof123> tell him the energy is lacking, and you have synergy
<pog> oh he's not even here lol
<pog> i didn't even see if he was behind his monitors
<zid> dang, now how will i sell my get rich quick scheme
<pog> my procedure doesn't work when i make it a stored proc
<pog> i am confuse
<pog> i hate sql
<zid> did you forget how to substitute variables in properly
<pog> no i'm psure i did that right
<pog> telling me syntax error near a parentheses
<zid> sounds like you didn't ngl
NotInventedHere is now known as TotalInternalRef
<pog> hm
<zid> You should use my data as a test, my name is ') DROP TABLE accounts; --
<pog> what
<pog> wtf zid why would you make me do this
<zid> That's the name on my ID
<zid> bobby ') DROP TABLE accounts; --
<pog> little ziddy trables
<zid> that's what they call me
<pog> no such table
TotalInternalRef is now known as JustTesting
JustVic has joined #osdev
JustTesting is now known as FrankExchangeOfV
FrankExchangeOfV is now known as ZeroGravitas
xenos1984 has quit [Ping timeout: 246 seconds]
ZeroGravitas is now known as ProblemChild
<kaichiuchi> jesus I can never take a good fucking picture
<zid> Petition to rename #osdev to #kaichiuchimoaning
<pog> second
<kaichiuchi> what
<kaichiuchi> :(
<zid> motion carried
<kaichiuchi> pog: no more pets for you
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
<pog> :(
* pog mews sadly
<pog> also my procedure doesn't crash but it also does the wrong thing
<pog> doin a big hmmm here
<pog> yay!
<pog> it does the thing
<zid> give industry secrets
<zid> what did you change
<pog> left join rather than inner join
<zid> o
<zid> boring sql nerd stuff
<pog> breh i just picked up this stuff and figured it out
<pog> i m v smort
<pog> no i fucking hate sql
<pog> and i hope this is the last time i need to deal with stored procedures (it's not, i have like 3 more bugs involving stored procedures)
<kaichiuchi> question
<bslsk05> ​kaichiuchi.github.io: kaichiuchi's corner of the world
<kaichiuchi> does that look ok to everyone's browser
<zid> asked random guy who was uploading ebooks if he could do the one I was missing and he said no, then uploaded it 5 mins later anyway, ?? but I win I guess
<kof123> looks ok in lynx
<pog> you're working on a gb emulator? zid why aren't you working with him
<pog> also it looks fine on firefox
<zid> I wrote mine ages ago
<zid> he saw it at the time
<kaichiuchi> I just keep questioning everything and therefore never get anything but
<kaichiuchi> *anything done
<kaichiuchi> but that's ok
<kaichiuchi> perfect
<kaichiuchi> it's motherfuckingwebsite inspired
<pog> maybe i should make a website on github dot io
pretty_dumm_guy has joined #osdev
<zid> https://zid.github.io/ mine is better
<bslsk05> ​zid.github.io <no title>
<zid> https://zid.github.io/gl.html I just use it to host this mainly
<bslsk05> ​zid.github.io <no title>
<zid> That took me a VERY long time to write, I don't wanna lose it in a hdd move
<pog> oh hey i remember when you were working on this lol
<pog> you were very frustrated
<ddevault> bah
<ddevault> FOSDEM talk again on perilous grounds
<zid> I'm not sure I'd go that hard, but it was a mess
<ddevault> bah!
<zid> I couldn't figure it out in javascript so I wrote it in C first, true fact
<kof123> just do the projector setup...outside...with ddr
<kof123> this will win over the crowd
<pog> write everythign in C if you can help it
<pog> memory safety is for chumps
<zid> It doesn't allocate anything so it is infact, memory safe
<pog> it doesn't allocate anything on the heap
<zid> There found it
<zid> easier to verify shit works if you do it in gnuplot first
<pog> neat
xenos1984 has joined #osdev
<kaichiuchi> hi
<pog> hi
<pog> i'm gonna head home now i think
<pog> i got my sql working correct
<zid> bring pizza for the wife
<pog> she got dinner idk what
<zid> okay just the porn then
<pog> k
xenos1984 has quit [Ping timeout: 252 seconds]
xenos1984 has joined #osdev
<kaichiuchi> i want pizza :(
pog has quit [Quit: Client closed]
terminalpusher has joined #osdev
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
ProblemChild is now known as CharitableView
<mjg> :)
mavhq has joined #osdev
mavhq has quit [Client Quit]
mavhq has joined #osdev
mavhq has quit [Client Quit]
mavhq has joined #osdev
dude12312414 has joined #osdev
<kaichiuchi> i am eating jelly beans instead.
<geist> zid: oh hey finally loaded up the made in abyss soundtrack. sounds pretty good!
<geist> also note to self: need to watch the movie and then S2
<zid> good good
<zid> yes you do
<geist> it's just kinda dark so have to make sure i'm pretty mentally ready for it
<zid> s3 tame at least
<zid> turns back into regular cooking anime
<geist> whaaaa!
<zid> you didn't know made in abyss is a cooking anime?
<geist> Cooking with Mitty!
gog has joined #osdev
<zid> Cooking with goggy
CharitableView is now known as AttitudeAdjuster
xenos1984 has quit [Ping timeout: 252 seconds]
<geist> yay teh gog
<gog> hihi
<geist> back to work after 2.5 weeks off!
<geist> i forgot what work is
<gog> nice
<sham1> Work? Is it a food?
<gog> i learned a lot about sql in a very short time today
<zid> sham1: order me a pizza pls
<zid> I got offered to share half an oven pizza but they burnt it so now I have no pizza
<gog> dang
<gog> i had a crispy chicken bowl with lots of daikon and cabbage and hot suace
<zid> I've never had japanese
<gog> sad
<zid> There's a japanese resturant int he city but it's very fancy
<zid> black marble
<geist> you should at least get sushi sometime to experience it, since it's a fairly unique thing
<geist> i dont think i ever had sushi until i was in my 20s, since it at the time did not exist in texas
<zid> and it's mainly chinese food anyway afaik :P
<geist> and thsi is why you should experience it, because you dont know
<zid> you payin?
<geist> if i were in town, sure
<zid> does wagamama count as japanese
<geist> looks like one of those japanese fusion things. maybe, i guess
<geist> kinda like how a PF Changs counts here, but really isn't very good
<zid> this is stupidly expensive and I probably wouldn't like most of it
<gog> i mean what i had today was like korean fusion
<gog> not japanese
<zid> daikons and grilled chicken is all japanese people at
<zid> eat
<zid> I've seen tv
<gog> i'm having fish for dinner again
* gog chomp fishy
<geist> yah good korean food is great too. can be very spicy
<gog> yes
<geist> nom!
<zid> we mainly use indian food for that niche
<gog> love the spicy garlic soy sauce the place i went to today has
<zid> lots of expat indians here running resturants
<gog> yeh we have good indian food here too but it's often not spicy enough
<gog> i need spicy spicy
<Ermine> Go to India, they have spicy everything
<geist> well great indian food is also yum
<geist> had some goat curry the other day that was amazing
<zid> I want a stack of poppadoms so high the bottom one has been crushed
<zid> and some extra spicy madras
<zid> and pilau
<geist> one of the bummers of moving out into the woods like i did is the restaurants here and far and few between and very expensive
<geist> so i rarely eat out
xenos1984 has joined #osdev
<mjg> no sensible delivery options?
<zid> That requires hiring sherpas
<zid> to trek them up half a mountain to his cabin
<zid> 14 lives have been lost so far, but he keeps ordering
<geist> mjg: well sure, but that makes it even more expensive
<mjg> > sensible
<geist> it's not the getting to it, it's that there's only like one indian place, one thai place, one japanese place, and they're all mostly middling quality and expensive
<mjg> sounds like a good neighborhood
<mjg> ;)
<mjg> sounds a lot like my hometown, except you don't even have any of the oriental stuff
<mjg> the most 'exotic' it gets is pizza
<kaichiuchi> in my area some japanese immigrants from tokyo opened up a sushi restaurant here
<geist> and it's not that the ethnic stuff is pushed out, there just really arent very many good restaursans. or the ones that are good are hyper expensive ones designed for tourists
<kaichiuchi> i've been going to that restaurant more than I should.
<zid> why's it always sushi
<zid> I wanna try udon
<gog> udon wanna miss it
<zid> and weird vegetables I will definitely hate
<geist> that's part of the problem, the island is also a tourist spot, so most of the stuff that does exist is tuned for separating tourists from money
<geist> ie, no real Local Dives
<kaichiuchi> (don't know why the hell you'd want to come to america if you live in tokyo, but)
<mjg> oh man
<mjg> geist: are you in hawaii?
<zid> tokyo's expensive as fuck an you will work yourself to death
<geist> mjg: oh hawaii would probably have some fantastic local spots once you find it
<geist> no, it's just an island across from seattle
<zid> so if you don't mind dodging gunfire, the US can work
<mjg> lol
<mjg> i think you are missing on life twice here
<geist> so tourists are like day tourists that take a ferry over and piddle around
<geist> lots of antique stores, expensive restaurants, etc
<kaichiuchi> i live in the US
<gog> rvk is basically entirely for tourists now it seems
<gog> or at least the parts that are fun and interesting
<mjg> geist: so what's good about the place for day to day life
<geist> woods. lots of trails. quiet
<mjg> you just like the view?
<mjg> nice
<geist> a bit cheaper than seattle
<geist> near family, etc
<mjg> interstingly 's like my hometown in that regard, except perhaps you are more civilized so to speak
<geist> i moved out at the start of the pandemic because i really was feeling caged up being trapped in a city where i couldn't do anything
<geist> kaichiuchi: i forgot where approx are you in US? just curious
<kaichiuchi> pennsylvania
<geist> oh that's right, yeah
<kaichiuchi> near philadelphia
<kaichiuchi> not exactly a good place to live
<geist> i have a little database in my head of people and where they generally are
<zid> geist where am I
<zid> help I am lost
<geist> UK i think
<kaichiuchi> my assumption is germany
<geist> since you're a cheeky bastard
<mjg> move to Baltimore
<zid> Okay that narrows it down to 4 countries and some overseas territories at least
<mjg> zid: so india?
<geist> nah mrvn is germany
<zid> so I'm either in america, europe, asia or oceania
<geist> heat is the odd one out: portugal!
<mjg> pl for short!
<geist> and mjg i forget. one of those countries without enough vowels in names
<zid> Doesn't really work as well for saying where someone is geographically with "UK" as it does with most other countries :P
<zid> poland
<mjg> if i could pronounce it, i would!
<geist> zid: yeah but it's a safe bet, because if i say scotland and they're irish or whatnot they'll shank you
<mjg> zid: nope! that's the counry of origin
<geist> so you say UK to generally play it safe
<zid> geist: britain, then?
<mjg> it's not offensive to be too general?
<geist> see it's a trap!
<zid> UK is the country, britain is the place off of france
<geist> yes yes i know this. but again i dont know precisey which part
<zid> great britain is the big island, LESSER BRITAIN is what I say to get stabbed by irish people
<geist> so UK is the overall thing
<geist> like generally that large blob of stuff off the european mainland
<zid> They prefer 'irish isles' but they're wrong obvs
<mjg> you are a mad lad zid
<geist> and yeah could be Isle of Man or something
<mjg> zid: so what's the most offensive thing you can call an englishman?
<zid> mjg: Happy
<mjg> zid: by that i mean someone born and raised in london
<zid> londoners know they're scum
<mjg> "you scottish chap 1st gen migrant"?
<geist> zid: anyway, you *are* in britain right? where approx?
<zid> geist: england, east of
<geist> out in the stix?
<zid> ye
<mjg> east of england? that's not where the scotts are
<zid> in some fields a bunch of distance from cmabridge
<geist> woot. yay living in not a big city
<geist> honestly i've only been to around london, cambridge or once a trip west to bristol
<zid> It'd be just as easy to get to anywhere else as cambridge though, still need to do busses to train stations and take trains, either way
<geist> i'd like to take a train up to Edinburgh some day
<zid> Hope you brought your wallet
<geist> yeah, dunno what the rate is now
<zid> train to edinburgh's like £8000 each way
<geist> well beats driving on the wrong side of the road
<geist> i mean i love a great road trip but i'm a bit scared of dealing with both a manual stickshift and on the wrong side at the same time.
<zid> a single from me to edin on a saturday is.. £60
<geist> i'm sure the stickshift could get used to pretty quick (wrong arm) but not at the same time as not turning into the wrong lane
<mjg> see, do you think they have convos like this on discord? i bet not
<mjg> bunch of wankers
<zid> Found one for £496
<GeDaMo> Don't forget about the roundabouts :P
<geist> roundabouts i'm totally fine with. i think they're great. wish we had more here
<geist> surprisingly washington state has a fair amount of them, so enough that if you drive around here you get pretty used to them (or die)
<geist> but roundabouts in the other direction! (i assume they're clockwise in UK?)
<zid> anytime return ticket from me to edin, first class, £496, bargain
<zid> no you go over the middle while honking usually
<geist> drove through a ton of them in canada last week
<zid> that's the spirit
<zid> right over and through
<geist> is kinda funny, there's a mini roundabout in town a few miles from here that is too small for large trucks to go aorund, so they specifically built it as a large speedbump so the trucks can just drive over it
<geist> but then of course that sends a mixed message to folks that come up with it on a car
<geist> ike, uh is this an actual roundabout?
<zid> yea mini-roundabouts are real
<geist> i ean it obviously is, but you never know if someone else sees it the same way
<zid> "Mini-roundabouts can incorporate a painted circle or a low dome but must be fully traversable by vehicles. Motorists can drive over them when there is no other traffic, but it is dangerous to do so otherwise."
<geist> and sure enough there's this old lady that lives nearby that i've personally seen just plow straight over it more than once
<zid> It's just a system of paint to organize drivers coming near each other
<geist> well and removed the 4 way stop sign that was there too
invalidopcode has quit [Remote host closed the connection]
<geist> there were a bunch in seattle that i hadn't seen before called 'traffic calming circles' which are pretty annoying
invalidopcode has joined #osdev
<zid> Although I think the rule is that if you *can* make it you should do
<geist> basically a tree or something with a hard curb in the middle of the intersection that you h ave to drive around
<geist> and the law on it is kinda ambiguous like 'you should drive around it like a circle but you dont have to'
<zid> that they're annoying means they're working
<geist> oh totally
<zid> US has massive car-dependance issues that stops a lot of basic stuff from working
<zid> notjustbikes has a new lovely video every few weeks because of it at least
<geist> yeah though it varys a lot. different cities have different amounts of it. in general 'us sucks because X' vids and whatnot you see tend to present is as homogenous bad place
<geist> but it's a huge country with lots of differing cultures and ways of doing things
<zid> The US is genuinely like it all over
<zid> there's nowhere to escape from it
* geist shrugs, not gonna fall of that trap
<zid> Name a contiguous US state without a stroad
<geist> not interested in drilling into 'country X sucks or Y is better'
<zid> Nobody sad anything of the sort
<geist> aint my first rodeo
<zid> or even came close to saying anything of the sort
<zid> Is this the catholic guilt stuff I hear about
<geist> haha
<geist> CONFESS
<zid> "someone mentioned me, I muist have been a bad boy"
<geist> confess your pre-crime
<zid> "US's issues are complicated so basic techniques are often not correct" "Stop saying the US sucks" <-- my reading
<geist> sigh. sorry i just dont want to continue talking about this
<geist> because my mind has shifted over to work, booting up and updating computers, etc
<zid> do that then lol?
<geist> indeed!
<geist> that's what i am!
<zid> My recommendation is *not* to underhandily call me a xenophobe, just don't engage in conversations you don't wanna engage in, and engage in the ones you do
<geist> i was trying to stop the conversation so you knew to stop too, but thats my gen X coming through. i haven't learned the art of gen z ghosting people
<geist> i find it terribly annoying when people wander off in the middle of conversations, but that's the norm nowadays i think
<zid> Posting flamebait ain't going to stop a convo ime
<geist> okay fine!
<geist> i am going to disengage without admitting guilt, because
<geist> i disagree with your assesment, but i really dont care to keep going with this. end of line.
vexmane has joined #osdev
<kaichiuchi> um
<kaichiuchi> does anyone want pizza
<zid> I already tried that
<gog> yes
<gog> but i'm having fish instead
<zid> we're full circle
<zid> gog: What's iceland like for roads? Ours are weird.
<kaichiuchi> god you guys and your fish
<geist> well fish *is* good
<gog> zid: we're like the US. lousy with cars
<kaichiuchi> fish is indeed very good
<geist> PNW style is to just toss a bunch of salmon in it. boom local cuisine
<zid> yea us too, not quite as stroady though
<gog> streets are clear of snow and ice and cars can move freely, but if you're a pedestrian you're taking your life into your own hands
<gog> we have fewer stroads
<zid> we're like, a mix of "omg cars cars" and "actually, this is a nice place for an umbrella and some chairs"
<gog> but we have almost as many cars per capita as the US
<zid> Is that because of jim who owns 6 cars
<zid> and the other 5 of you share one
<zid> so there are 7 cars per 6 people
<gog> mostly it's because the population is sparse except for like two districts of reykjavík
<gog> but even all the midrises have big car parks
<zid> The city I am closest to has half the population of iceland apparently
<gog> yeh
<zid> yea we thankfully mainly don't fall into the trap of actually putting parking spaces everywhere
<gog> in any case, i don't want to have to own a car again
<gog> i always hated it
<zid> (just makes everybody drive to that place, and then traffic increases by 50% from people looking for parking)
<zid> everybody hates london because you can't park :D
<gog> wtf i love london now
<zid> You *can* park but it's like £90/hr
<zid> japan solves it by not allowing you to register a vehicle without somewhere to keep it
<zid> we just make it too expensive
<kaichiuchi> if I could avoid driving, I would
<kaichiuchi> but it's impossible
<kaichiuchi> we don't have fancy high speed trains everywhere like the rest of europe :(
<zid> That's actually a weird side-issue
<zid> most people barely interact with trains in europe also, but we don't do the weird zoning that US cities all seem to do
<zid> where the core is all skycrapers that everybody needs to drive to, and then the outskirts are zoned for single family town houses exclusively, creating hundreds of square miles of wasted space
<zid> Like if you pick any random map of a big US city without a subway, it's 30% parking lots
<geist> kaichiuchi: but you still get the accela trains and whatot run through the corridor between DC and NYC though right?
<zid> everything gets more spaced out because of them, so more cars, so wider roads, so more spaced out, so more cars
<kaichiuchi> geist: i've never been anywhere near those trains
<geist> ah
<geist> seems like they'd run right through philadelphia
<zid> gog: your road signage looks very similar to ours, did you steal it
<kaichiuchi> well put it this way
<kaichiuchi> I'm 60 miles away from philadelphia
<geist> ah
<kaichiuchi> but I commute to work
<zid> but yea, this is VERY car-y, wow
<geist> yeah
<kaichiuchi> takes me about an hour
<kaichiuchi> where I live, it's mostly known for its manufacturing enterprises
<geist> yah that's the biggest downside of moving into the woods, i now have about an hour and a half commute, though not using a car
<zid> also everything is apparently under construction
<geist> but it's ferry + walking + bus
<kaichiuchi> yeah I am shocked you moved into the woods
<kaichiuchi> everything is far away from you
<geist> except lots of trees and wildlife
<kaichiuchi> how the hell is your internet even good
<geist> it's not great
<geist> that was a downgrade
<kaichiuchi> yeah i'd lose it
<kaichiuchi> heh
<geist> oh i mean whe i was lookinga t houses maybe 50% of them i had to completely just scrub out because didn't have good network
<mjg> geist: quite frankly your current household sounds like a long weekend getaway location
<geist> usually crummy DSL. this one actually has cable which is kinda surprising, but cool
<mjg> geist: not a place for actual living
<geist> yeah, it's a tradeoff for sure. but honestly at the start of the pandemic i had no idea how long it was going to go, etc
<mjg> well you do you man
<geist> turned out to be a good time, because the housing market was starting to blow up
<geist> and the interest rates on mortgages were very very low, like historically low
<mjg> as someone who grew up in shitty conditions i appreciate not having to maintain squat
<mjg> in my day to day
<geist> oh totally. honestly i kinda like maintaining squat. gives me something to do
<geist> which sounds silly, but it's how i stay sane. doing things, all the time
<mjg> :)
<zid> gog: jesus this is carry
<zid> Car-y
<mjg> geist: well if you are down to move to poland i have place just for yu man
<geist> heh
<mjg> geist: albeit locals don't speak english, which you may treat as an additional challenge
<geist> i think i'm a little too old to learn a new language. actually not really. but that would be an additional challenge i wouldn't want to take on
<geist> or at least polish... i dunno that's not my first pick of languages to be immersed in, to be honest
<zid> I found a stroad full of carparks, iceland confirmed 51st state
<mjg> but rly, there is this mindset that if you don't have work to do after work, you are just lazy
<mjg> and by work after work i mean something you have to do
<geist> yeah, i can see that. different cultures/subcultures have these different base assumptions about hard working
<mjg> for example common in that area is burning wood and coal during winter
<geist> anyway, on that topic, back to work!
<mjg> so in the summer people go to their forests, cut down dead trees and so on
<mjg> ez few weeks of work to stack up on wood
<mjg> and then in the winter, apparent from all the snowploing by hand, you have to maintain the fire
<mjg> 's like larping in the 1800s
<mjg> with the one exception that you have a chainsaw
<mjg> s/apparent/apart/
<mjg> wtf keyboard
Terlisimo has quit [Quit: Connection reset by beer]
Terlisimo has joined #osdev
<geist> heh, rebooting out of hibernation on my work workstation always takes like 15 minues. either the compression of all of the memory pages is ridicululously hard core or the decompression is terribly slow
<geist> probably both. you can see it blipping the hard disk, but it can't take *that* long
<geist> just about the time you give up it finishes
<mjg> what algo?
<geist> beats me, whatever linux is doing to squirt the hibernate state down on disk
<geist> it's almost like it's some N^2 thing with the number of pages in the system. this machine has a fairly high amount of ram (192GB) and it seems to be particularly bad at recovering
<mjg> not easy to trace that one, huh? :)
<geist> yeah
<gog> oh dang
<gog> that's a lot of ram
<geist> ah there we go, finished. about 10 minutes i think
<zid> 192GB in 15 seconds is >10GB/s though?
<mjg> that's some supercomputer shit right there if you larp the 90s
<zid> oh MINUTES
<geist> yah
<mjg> if i was to blindly guess
<zid> 21MB/s then :P
<mjg> it would be that they do writes in parallel
<mjg> and they trash the drive
<mjg> and maybe lolo blocksize
<geist> possible. but it's really not nailing the drive. it's blipping about once a second, maybe 20% duty cycle
<geist> the rest is presumably uncompressing
<mjg> i wuld not trust any blipping
<geist> possible, but these are nvme, etc, so it's not like it has a seek time
<gog> ostensibly all a good portion of those 192gbs are page cache
<mjg> i mean there is lies, damned lies, politician statemetns and firmware indicators of anything
<gog> i wonder what your actual working set is at time of hibernate
<gog> s/is/was
<geist> yah i'm guessing if it's smart it dumps the page cache before hibernating. looknig at top now it's about... 10GB of used ram, 38GB of buffer cache (after running some updates)
<geist> so assuming it dumped the entire buffer cache it was really only restoring 10GB
<gog> there's some other major inefficiency in the process then
<gog> integrity checking?
<geist> yeah dunno, good questoin. it could also literally be some sort of dumb N^2 thing, like it has a list of pages to restore, and it's doing some sort of linked list search for every page or something
<gog> there are a lot of linked lists in struct page
<zid> 21MB/s is about right if it's compressed *really* good and you're on a wbeserver cpu and it's single core
<gog> that reference struct page
<zid> how many ghz you got
<mjg> ok mofoz, seriously, stop handwaving and check the code
<geist> zid: yeah i suspect it is single threaded at this point, probably restoring in some sort of pre-kernel portion
<gog> no
<geist> more fun to theorize before looking
<geist> and anyway i kinda make it a point not to look at linux code
<zid> 800MHz of pure riscv power on the decompression
<mjg> geist: right
<zid> 21MB/s would be blazing
<gog> never look at linux
<zid> never look at other people's code
<zid> it'll make your stomach churn
<mjg> bro
<mjg> i recently tried to learn me some rust, that sent me the rabbit hole
<gog> my own code is nauseating enough
<mjg> rust is doing some questionable things vs stat, fstat and the rest of the family
<mjg> ... and linux is making it worse
<geist> yup
<gog> i wonder how my boss doesn't get sick every time i send a PR
<mjg> rust aside, linux has a "new" syscall to getattr: statx
<geist> mjg: though if you do have specific things that are really bugs/etc i can probably make sure they get looked at
<geist> a few of the core team does work near my organizationally
<mjg> geist: i wrote a patch for rust https://dpaste.com/BCQC7ZDV3 ; have not figured out how to compile it yet though :)
<bslsk05> ​dpaste.com <no title>
<zid> is rm -rf a patch
<mjg> geist: that said, if i run into trouble getting someone to act on it, i'll be happy to prod you
<mjg> back to the linux remark, there is no dedicated fd-based variant to get the struct
<mjg> instead you pass the fd, "" name (not NULL!) and AT_EMPTY_PATH flag
nyah has quit [Remote host closed the connection]
<mjg> the problem with the "" name is that you suffer memory alloc/free *and* more imporantly clac/stac trip
<mjg> the latter is quite expensive
<geist> ah, so statx has a simpler version
<mjg> but it is known at caller side, so to speak, that there is no name
heat has joined #osdev
<mjg> the kenrel just does not provide any way to take advantage of it
<mjg> which i'm very negatively surprised by
<geist> yah bummer it even accesses the string first. seems the kernel coul at least look at the flag and then simply not user copy the string pointer
<mjg> i suspect some standard-related fuckery has something to say about the flag and specific content
<geist> yeah and or layering
<mjg> anyhow my proposal would be to simply tolerate NULL
<mjg> + the flag
<geist> where some layer outside that doesn't know about flags already makes the copy before passing it in
<mjg> and in that case demand a valid fd
<geist> yah totally
<mjg> but need to get some numbers first to justify working on it
<mjg> all while my real work is chasing me for other numbers :s
<heat> did we unironically create a rust-head
<mjg> me?
<heat> yes
<mjg> so far the things i found in bowels of rust are rather concerning to me, but perhaps i just happened to be looking in the least good place
<mjg> and it is not representative
<geist> mjg seems to go right for performance, right for the jugular. drop them on a deserted island and you start optimizing the palm trees
<mjg> anyway they are fixable so...
<mjg> geist: look, the claim is that rust is a systems language, a 0 cost abstraction c replacement
<geist> oh totally, i mean that in a nice way
<mjg> geist: so i had a look and so far it is not
<geist> agreed
<geist> OTOH it seems that most of the die hards admit this freely but then in the next sentence say it's basically the price of safety
<mjg> change the marketing and i'll change the tone
<mjg> :)
<mjg> btw glibc is also affected by it. statx is the source of truth internally all other callers use to get their data
<mjg> and glibc switched fstat(fd, ...) to newfstatat(fd, "", AT_EMPTY_PATH, ....)
<mjg> like wtf man
<geist> it's part of the arm conspiracy: down with architecutres that have CLAC/STAC!
<geist> (the arm64 equivalent is basically free)
<mjg> oh?
<geist> it's called PAN (priviledged access never). you can toggle the bit if you want, a-la clac/stac, and it also automatically clears the bit on exception entry so you dont have the recursion problem
<geist> or you can just leave it set permanently and write your user_copy routine to use an alternate load/store instruction that explicitly bypasses it
<geist> linux/etc does the latter
<geist> the advantage of doing it second
<gog> pan pan pan
<geist> i always remember these 80s commercials about PAM the spray on greese thing
<heat> mjg, iirc fstat isn't available on new archs
<geist> https://youtu.be/dHfugnMIw_c omg it's worse than i remember
<bslsk05> ​'80s - Pam Cooking Spray Commercial' by Retro Television Airwaves (00:00:15)
<heat> actually, no.
<heat> there may be some differnence
<heat> musl's fstat also uses fstatat
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<sortie> intel people
<sortie> show yourself
<sortie> I'm picking a fight
<geist> hi sortie!
* mjg is wearing and amd shirt
<heat> mjg, i think I know why they use statx
<sortie> Operator patch me through to the right multinational
<heat> 64-bit time on 32-bit archs
<heat> :))
<mjg> that is plausible, but useflness of statx itself is not the point of contention here
<mjg> just the deficiency of the api
<sortie> I got a Intel Corporation 82579LM Gigabit Network Connection (Lewisville) [8086:1502] <https://paste.ahti.space/07c960.html> and I need to find the pdf that tells me how to program the ethernet controller
<bslsk05> ​paste.ahti.space <no title>
<sortie> I only found https://www.mouser.com/pdfdocs/82579datasheetvol21.pdf but it seems to be about the Intel ® 82579 Gigabit Ethernet PHY and doesn't have the useful documentation on how to reset and initialize the controller, like I have in the pdfs for the older 825xx devices I got
<zid> yea it's a pain
<zid> these docs are all over the damn place with whether they cover the regs, or the phy, or both
<bslsk05> ​kostikbel/rere - Realtek vendor driver for re(4) for FreeBSD (2 forks/8 stargazers)
<heat> thank god there's an open source vendor driver
<heat> for reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(4)
<zid> I think any 82xxx driver will work though tbh
<sortie> When I use my driver in my laptop, it resets the device and I get an interrupt when the link is coming up, but the PHY doesn't respond when I try to read its registers, and the receive and transmit of packets necer happen
<sortie> So I think I'm not initializing the PHY properly and my working hypothesis is that something changed in these newer models and I'm trying to figure out what that is
<sortie> Specifically I end up timing out in this case https://gitlab.com/sortix/sortix/-/blob/staging/kernel/net/em/em.cpp#L476
<bslsk05> ​gitlab.com: kernel/net/em/em.cpp · staging · sortix / Sortix · GitLab
<heat> oh shit lmao
<heat> i linked you the wrong vendor driver
<heat> its no longer hilarious
<mjg> geist: btw cascade like, 5.15.0-1020-aws kernel, legacy fstat vs newfstatat
<mjg> legacy fstat: min:6854059 max:6854059 total:6854059
<mjg> newstatat: min:3205251 max:3205251 total:3205251
<mjg> literally less than half of the original performance
<mjg> syscall(5, fd, &sb) vs syscall(262, fd, "", &sb, AT_EMPTY_PATH)
<heat> yeah but that's like a very unrealistic bench isn't it
<mjg> what
<mjg> heat: people fstat to simply get the size all day man
<mjg> heat: this is a loss with no benefit
<heat> but you don't call fstat in a loop
<mjg> heat: aand one which can be largely mitigated by allowing NULL paths
<bslsk05> ​elixir.bootlin.com: fstatat.c - src/stat/fstatat.c - Musl source code (v1.2.3) - Bootlin
<mjg> no, it is called in a loop to higlight the diff between the 2 tyeps
<mjg> someone had the right idea
<mjg> :)
<mjg> you should not need to hack like that in userspace though, shiould you
<mjg> so the author implemented what i'm suggesting, except in his lib instead of the kernel
<heat> it seems that glibc is deficient here
<mjg> look man, fstat aside, statx is the future and that needs to support fd-only lookup
<mjg> in order to avoid the massive slowdown
<mjg> and currently the only way to get statx output is to call it with fd and a path, even if you just to de facto fstat
<mjg> things would go a long way if the kernel, for example, recognized NULL as a valid condition where only the fd is to be looked at
<mjg> if anything i'm confused how on earth is this not a thing from the get go
<mjg> if there is one system where i expect people to measure anything, it would be linux
<mjg> and then this pile of crap drops
<heat> mjg, why is clac/stac so slow though?
<heat> is it clac/stac or memory alloc?
<mjg> it is clac/stac
<mjg> i have no idea why, ask intel and amd
<mjg> if i was to speculate, i would guess they implement it with as a full barrier
<mjg> so apart from flipping a bit they dodge any worries about reordered loads and stores
<mjg> as in it is guarantees the cpu will not leak up some loads across clac
* gog clacs around
<mjg> apart from whatever other overhead
<heat> >if i were to speculate
<heat> hehehehehhehehehehe
<mjg> what
<gog> hehehehehe
<mjg> speculative execution?
<mjg> hehe.. or some other boomer humor
<heat> yes
<gog> that's it
<mjg> yes what
<gog> heat heat heat
<heat> gog
<mjg> fish
<gog> bzinga
<heat> gog gog gog
<gog> bzimage
<mjg> zimbabwe
<mjg> i bet onyx pulls of faster stat than linux now!
<heat> onyx implements the same API sweetie
<mjg> fstat i mean
<gog> i have the fastest stat of them all
<gog> none
<gog> i don't have a filesystem
<mjg> heat: oh no
<mjg> i bet onyx sucks the same as linux now!
<mjg> btw top of the profile is memset calls
<mjg> which gcc fails to optmize away
<mjg> interstingly they had an obvious hack: fill out padding by hand and verify with KASAN there is no problem
<mjg> which got lost in statx transition
<mjg> hence ^^^
<mjg> will patch that too
<mjg> as in they memset a buf prior to copy_to_user just to handle gaps
<mjg> but really they only need to sort out few bytes
epony has quit [Ping timeout: 268 seconds]
<sham1> Who needs a file system anyway
<jimbzy> Right?
<sham1> All you need is a database
* jimbzy groans...
<energizer> isn't that what longhorn was supposed to do
<kof123> i imagine that is an ancient thing...when the operating system to run a single application or so...
<kof123> which is not to say either way, just may have been less delineation once upon a time
<kof123> *to favor
<kof123> *was basically to run *lean mean typo machine
<kof123> maybe i think of it as an mvc thing. can sql be merely an interface (or vice versa, file system API) ...with the actual mechanism opaque
<energizer> sure, there are lots of databases that work in different ways
JustVic has quit [Ping timeout: 268 seconds]
sortie has quit [Ping timeout: 252 seconds]
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
sortie has joined #osdev
<heat> mjg, tbf I really wasn't expecting clac and stac to be expensive
<heat> but that's what you get for not adding new load-user and store-user instructions
bgs has quit [Remote host closed the connection]
<mjg> heat: so at some point freebsd added some changes which had a side effect of inducing a one-byte user access on syscall entry
<mjg> perf hit i measured at the time on AMD EPYC 7571 for getuid was:
<mjg> before: min:10414995 max:10414995 total:10414995
<mjg> after: min:6606729 max:6606729 total:6606729
<mjg> or over 33% just from that bit
<mjg> note the particular cpu is not very fast, so the slodown is also smaller
<mjg> as in it fails to speculate the shit out of the code (compared to intel), so it also gets shafted to a lesser extent
<mjg> i have to stress the drop between fstat and newfstatat is not all clac/stac, but a lot of it is
<heat> clac/stac sucks then
<mjg> it does, yes
<mjg> poll needs to copy out buffers one by one
<mjg> in freebsd this means repeated calls to copyout and consquently clac/stac cycle every time
<mjg> this DEMOLISHES perf when used with many fds
sortie has quit [Ping timeout: 252 seconds]
<heat> what happens with arm64?
<mjg> no idea, never tested myslef
<mjg> geist claims no impact?
<heat> i think riscv will have the same performance hit due to having its own clac/stac in the form of csr registers
<heat> (although those CPUs still suck so you probably won't see much)
bgs has joined #osdev
<froggey> one weird trick to absolutely DEMOLISH performance
<geist> mjg: basically.
bgs has quit [Remote host closed the connection]
<heat> i wonder if that clac/stac thing is basically a response to spectre, etc
x8dcc has joined #osdev
terminalpusher has quit [Remote host closed the connection]
sortie has joined #osdev
x8dcc has quit [Ping timeout: 260 seconds]
<geist> i think it predates that, though i think SMEP was first (and a no-brainer)
<geist> arm64 has basically SMEP via permission bits, in that there's a way to semi-independently declare X permissions for user pages
<heat> yes, SMEP was first. I mean the full barrier thing
<heat> I could see cpus speculating the shit in and out of stac/clac until the side channel exploits rolled around
* gog speculatively executes heat
<gog> i suspect he did something terrible
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
danilogondolfo has quit [Remote host closed the connection]
dutch has quit [Quit: WeeChat 3.7]
<zid> heat *certainly* did something terrible
<mjg> heat: i aid i speculate there is a full barrier in there
<mjg> heat: cpu definitely needs to act as if there are fences around it, so thus would be the easiest way
<mjg> this
xenos1984 has quit [Read error: Connection reset by peer]
<heat> why does it?
<mjg> clac(); foo = *lolptr; stac();
<mjg> what if it speculatively tries to load foo
<mjg> as in hoists it prior to clac
dutch has joined #osdev
<heat> it just... does?
<mjg> what?
<heat> i dont see what the problem is
<mjg> lolptr is not accessible prior to clac
<heat> i know
<mjg> so what do you do if that happens
<heat> so either your loads are less trivial than val = load_8byte addr or you never hoist them prior to a clac
<heat> or do some sort of cheekiness with clac
<mjg> but how will the cpu know to not hois it
<mjg> similarly, it has to finish all stores prior to stac
<heat> i don't see the need for clac to actually touch eflags until someone looks at it
<mjg> ?
<mjg> oh wait, it is stac/clac, but point stands
<heat> clac/stac can just be internal gook can't they
<mjg> let's try again
<heat> it shouldn't need to involve actually setting or clearing bits
<heat> or register allocation or what have you
<mjg> the point is the cpu has to avoid tripping over smap being enabled
<mjg> to that end, the easiest way out i see, is to make sure nothing gets reordered before or after
<mjg> and that can e achieved with already existing fences
<mjg> so i speculate this is what they are doing internally
<heat> sure, easiest
<heat> I don't see why you would do the easiest
<heat> who wins, highly qualified intel and amd cpu engineers or some lazi bois
<mjg> given the performance impact, i take it they did not take the hrad way out
<mjg> and if this is the fastest it can be, then there is some node.js-level shenaningans in the cpu
<heat> what did node.js do to you
<mjg> i mention it specifically instead of webdev in general or php in particular
<mjg> just mixing it up
<heat> v8 is actually pretty decent
<heat> what people do on top... yeah maybe not
<kaichiuchi> hi
xenos1984 has joined #osdev
<zid> web tech is amazing, that's WHY people write such utter dogshit on top of it
<zid> When the most powerful thing you could do with javascript was falling snowflakes that lagged heavily, people didn't abuse it :P
<Bitweasil> I've been playing with "running JITless" lately for browsers.
<Bitweasil> It doesn't really seem to hurt performance in practical use as much as I'd expected.
<mats2> its really the low cost entry that shittifies everything
<zid> Bitweasil: yea in practice I imagine the worst would be if the parser was slow
<jimbzy> I tried javascript once and I didn't get it.
<Bitweasil> Actually, a lot of the stuff doesn't get JIT'd anyway.
<jimbzy> Admittedly, that was probably on my end.
<zid> as a lot of it these days is "run 20MB of code to add a couple of nodes to the DOM"
<Bitweasil> It's only the hot loops, as I understand it.
<zid> rather than actual constant execution
<Bitweasil> So the straight interpreted performance for once through code isn't awful, but it's not worth the overhead.
<Bitweasil> The JS benchmarks that are nothing but hot little loops of JS suffer, certainly.
<Bitweasil> I don't think *too* many sites do that, and if it hurts the blasted coin miners, good.
<Bitweasil> mats2, low cost of entry with giant libraries.
<Bitweasil> Import this thing, then $_.addTapdancingTurd(dom.foo.bar.baz);
<mats2> usa #1
<Bitweasil> I remain set in my hatred of how we use computers. :/
<jimbzy> I think that's why I didn't like javascript, Bitweasil. I was just overwhelmed by the number of libraries.
<gog> $'.selector'.each(function () {blah});
<gog> i like jquery
<gog> everything built atop jquery is a pile of trash
<heat> you're not supposed to use jquery anymore, are you?
<jimbzy> ^^
<jimbzy> Why?
<Bitweasil> I thought it was long since obsoleted in favor of heavier frameworks.
<Bitweasil> jquery was light and to the point.
<heat> idk I think that new ecmascript has all the niceties
<gog> hm idk
<gog> we still need it
<gog> but i think people are prefering react these days
<gog> so yeah
<jimbzy> Because libx.y.z is better, but you shouldn't use that either because liba.b.c does it even more gooder.
<gog> we're actually using react in all of our new widgets
<gog> and slowly refactoring the rest of the application
<jimbzy> Bitweasil, Sometimes light and to the point is exactly what is needed.
<Bitweasil> Light and to the point doesn't sell Intel 13th Generation Heaters now, does it?
<Bitweasil> With 76 performance cores leading the big parade, 110 efficiency cores close behind!
<jimbzy> True that.
* jimbzy goes back to poorly winding his inductor.
<heat> what?
<Bitweasil> Followed by rows and rows of the biggest powersupplies you know, and heatsinks of every shape and size!
<Bitweasil> ooh?
<Bitweasil> HAM gear?
<mats2> left pad your heatsink
<jimbzy> Yeah
<gog> more bigger more better
<heat> you don't buy 13th gen intel cpus for javascript...
<jimbzy> Building my first HF receiver.
<Bitweasil> Sweet. :)
<klange> jquery was obsoleted by its main features getting into javascript
<Bitweasil> (the *only* people I know who willingly hand-wind inductors anymore are HAM types)
<jimbzy> Yeah, we're ate up like that.
<Bitweasil> heat, right, you buy it for warmth! ;)
<heat> no, you buy them to do more things in the same amount of time or the same things in less time
<heat> and yes, as klange said, the features were introduced into ecmascript or javascript or whatever
<jimbzy> Bitweasil, http://044640f.netsolhost.com/single-band-rcvr/ I'm using this as my starting point, and I'm going to try out some different ideas once it's up and running.
<bslsk05> ​044640f.netsolhost.com: Suppliment files for the Single Band Receiver
<Bitweasil> *shrug* I simply don't care to do more and more of that which computers do.
<Bitweasil> That is glorious! :D
<Bitweasil> I need to get more into HAM stuff.
<Bitweasil> I only have my Technician.
<jimbzy> I was going to start with a much simpler direct-conversion radio, but I figured nothing ventured nothing gained.
<jimbzy> Same, but I'm studying for an upgrade.
<zid> I recommend slicing it real thin and wrapping it around tasty things and baking them, for ham
<Bitweasil> I've got the books, just need to find the time, between all the other projects, work, etc. :/
<Bitweasil> Need to get my Class B CDL again too.
<Bitweasil> Anyway, good luck with the project, that looks like a whopper of a fun build!
<jimbzy> Not my temp.
<Bitweasil> I've got a Bottlehead amp coming in... today, I think.
<Bitweasil> Tube based phono preamp. :D
<jimbzy> I can make an Eaton-Fuller transmission sound like it's singing the blues, though. ;)
<jimbzy> temp
<jimbzy> Nice
<Bitweasil> Reduction with the Integration upgrades. ;)
<Bitweasil> I am so looking forward to building it.
<jimbzy> Dang it. I keep hitting the up arrow and mashing Enter XD
<mjg> you are a temp!
* jimbzy is thick as fudge.
<Bitweasil> mmm....
<Bitweasil> Fudge...
<zid> jimbzy tried to sneak past but the clap of his asscheeks kept alerting the guards?
<gog> thicc
* Bitweasil claps the coconuts.
<Bitweasil> Alright. I'm out.
<gog> nini
<jimbzy> Cheers.
<mjg> put a lime in a coconut and drink it all up
<gog> doctor!
<gog> is there something i can take, i said doctor! to relieve this bellyache
<mjg> here is a joke from poland
<mjg> dude goes to visit a doctor
<mjg> - do you want this covered by insurence or private payment
<mjg> - insurance
<mjg> - what's the problem?
<mjg> - my left ball is blue
<mjg> doc takes a look
<mjg> - we gonna need to surgically remove it
<mjg> - i'll make a private payment
<mjg> - oh in that case the pen in your pocket is leaking
<gog> lmao
<heat> jokes from poland are always dangerous
<heat> also who tf has a pen in their pocket
<heat> is this a poland thing
<mjg> > poland
<mjg> not really though
<klange> It's just a "several years ago, before everyone had phones" thing.
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
epony has joined #osdev
* sortie just merged networking no big deal
<klange> how many years has it been?
<heat> sure, you can have a pen with you, but in your pocket? hard nah
<sortie> Not even a decade
<klange> aarch64 port when?
<heat> petition to rename valve time sortie time
<sortie> 7 years is a perfectly reasonable time to make a network driver and stack
<sortie> klange, any century now!
<mjg> i think you might have missed your window
<mjg> i'm on openbsd now
<mjg> so how many pps do you push dawg in your best setup
<sortie> I'm sure OpenBSD users will love Sortix
<mjg> do you have theo as a mascot?
<heat> OpenBSD users? loving?
<sortie> All your favorite OpenBSD software with none of the default eye hazardous X11 pattern
<sortie> (*subject to availability)
<klange> sortix has the best mascot: weird orange cat thing
<mjg> wait
<mjg> can it eat the puffy fish?
<mjg> would make sense
<sortie> Cats eat fish, that sounds legit
<sortie> It's even compatibly licensed, a key part of a diet
<mjg> so basically Sortix is the next OpenBSD
<mjg> makes sense for sure
<klange> I should find the long-lost artwork of ToaruOS's mascot...
<mjg> a lofty goal sortie, hats off
<zid> don't say goal, heat will get excited
<sortie> It's a key goal of mine that people casually dismiss Sortix “Bah, Sortix.“ the same way they casually dismiss OpenBSD “Bah, OpenBSD.”
<sortie> That or Haiku or Minix
<sortie> If people ignore and dismiss me that much, I have achieved glory
<sortie> I have obviously already surpassed GNU Hurd by self-hosting my infra
<mjg> if you want glory you gonna have to namecall MIT graduates
<sortie> The Berkeley Sortix Distribution
<heat> Haiku and Minix are real systems
<heat> OpenBSD isn't