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
mavhq has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
Matt|home has quit [Quit: Matt|home]
Pixi has joined #osdev
Pixi` has quit [Ping timeout: 248 seconds]
goliath has quit [Quit: SIGSEGV]
edr has quit [Quit: Leaving]
netbsduser`` has quit [Ping timeout: 276 seconds]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
jcea has quit [Ping timeout: 252 seconds]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
n00by_ has joined #osdev
karenw has quit [Ping timeout: 276 seconds]
n00by_ has quit [Ping timeout: 260 seconds]
n00by_ has joined #osdev
n00by has joined #osdev
n00by has quit [Client Quit]
n00by_ has quit [Client Quit]
n00by_ has joined #osdev
n00by has joined #osdev
n00by has quit [Client Quit]
arminweigl_ has joined #osdev
eluks has quit [Remote host closed the connection]
arminweigl has quit [Ping timeout: 252 seconds]
arminweigl_ is now known as arminweigl
eluks has joined #osdev
arminweigl has quit [Ping timeout: 252 seconds]
arminweigl has joined #osdev
n00by has joined #osdev
n00by_ has quit [Quit: Quit]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
arminweigl_ has joined #osdev
arminweigl has quit [Ping timeout: 272 seconds]
arminweigl_ is now known as arminweigl
arminweigl has quit [Ping timeout: 268 seconds]
arminweigl has joined #osdev
n00by has quit [Quit: leaving]
n00by has joined #osdev
dormito has quit [Ping timeout: 248 seconds]
dormito has joined #osdev
Fingel has quit [Ping timeout: 248 seconds]
Fingel has joined #osdev
goliath has joined #osdev
Lucretia has joined #osdev
xvmt has quit [Ping timeout: 244 seconds]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
ZipCPU has quit [Ping timeout: 252 seconds]
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
ZipCPU has joined #osdev
GeDaMo has joined #osdev
netbsduser`` has joined #osdev
pebble has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
netbsduser`` has quit [Ping timeout: 272 seconds]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
netbsduser`` has joined #osdev
steelswords94361 has quit [Read error: Connection reset by peer]
steelswords94361 has joined #osdev
edr has joined #osdev
jcea has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
pebble has quit []
netbsduser`` has quit [Ping timeout: 260 seconds]
antranigv has quit [Ping timeout: 248 seconds]
antranigv has joined #osdev
the_oz_ has joined #osdev
the_oz has quit [Quit: Leaving]
Left_Turn has joined #osdev
trillion_exabyte has quit [Ping timeout: 268 seconds]
trillion_exabyte has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 245 seconds]
xvmt has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 245 seconds]
k0valski18891621 has quit [Ping timeout: 272 seconds]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
basil has quit [Quit: Ping timeout (120 seconds)]
marv7000 has quit [Quit: Ping timeout (120 seconds)]
basil has joined #osdev
alexander has quit [Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in]
marv7000 has joined #osdev
alexander has joined #osdev
DragonMaus has quit [Ping timeout: 252 seconds]
JTL has quit [Ping timeout: 276 seconds]
DragonMaus has joined #osdev
JTL has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 272 seconds]
the_oz_ has quit [Ping timeout: 260 seconds]
the_oz_ has joined #osdev
CarbonWriter has quit [Quit: ZNC 1.8.2+deb2+deb11u1 - https://znc.in]
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
sprock has quit [Ping timeout: 276 seconds]
sprock has joined #osdev
<zid> heat did you check your underwear draw for an eeeeeeepc
<heat> i don't have one
<zid> drawer*
<zid> fuck
<zid> I CANNOT ENGLICH
<the_oz_> VERDAMMT
netbsduser`` has joined #osdev
netbsduser`` has quit [Ping timeout: 260 seconds]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
netbsduser`` has joined #osdev
the_oz_ has quit [Remote host closed the connection]
the_oz_ has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 245 seconds]
air has quit [Ping timeout: 248 seconds]
netbsduser`` has quit [Ping timeout: 260 seconds]
<clever> zid: i have a pair of 701's
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
karenw has joined #osdev
<zid> Perfect, you can send one to heat
<heat> i've been thinking about buying a pi 5
<zid> that's not en eeeeeeeeeeepc though
<heat> apparently USB is much faster and it now has a PCIe slot
<heat> and that's cool
<heat> i don't know if the ultimate pi5 storage solution is like a SATA controller card sitting on the PCIe bus
<zid> nvme drive
<zid> surely
<clever> heat: pi5 has 4 lanes of pcie gen2 going off to a southbridge, which drives gbit ethernet, 2xusb2, 2xusb3, the csi/dsi ports, and all of the gpio
<clever> plus a spare pcie lane, gen2 certified (but gen3 capable) for user addons
<zid> remove the superio, replace with a 4x nvme
<clever> zid: the firmware refuses to boot if its missing
<zid> replace the firmware while you're at it then
<heat> firmware? more like flimsyware
<clever> the firmware is signed, and i have yet to crack it
<clever> its more locked down then past models
<zid> include a superio emulator in your nvme firmware
<zid> so that it boots correctly
<heat> ok say in theory i wanted to add an NVMe drive to my pi5
<heat> because i'm an idiot
<heat> would that be possible
<clever> part of it, is that the firmware talks to the southbridge over i2c
<kof673> Presently, they [software and hardware] met Firmware, who was dressed in tattered rags and hobbled along propped on a thorny stick --- tao of programming. firmware just hobbles along
<zid> you plug it in
<bslsk05> ​www.pishop.ca: PCIe To M.2 Adapter HAT + for Raspberry Pi 5, NVMe M.2 SSD, High-speed - PiShop.ca
<bslsk05> ​www.pishop.ca: Raspberry Pi M.2 HAT+ SSD Kit for Raspberry Pi 5 - 512GB - PiShop.ca
<heat> ah yes
<heat> good to know such a thing exists
<zid> If you can't get that to work, you can use two 115200 baud serial uarts
<clever> many similar boards exist
<clever> some even have a pcie switch and 4 ports
<clever> some have sata chips
<heat> i probably wouldn't really want an nvme drive there (and I presume it will be bottlenecked by the x1 connection)
<heat> but sata would be dope, i even have a spare hard drive
<zid> 500MB/s for a pci-2 2.0 lane I think
<clever> thats still pretty fast, and if its a nas, the ethernet would be your bottleneck
<heat> it is fast but I could get it on a real m.2 slot on a real motherboard
<heat> and do 3500MB/s
<bslsk05> ​www.pishop.ca: NVMe Base Duo for Raspberry Pi 5 – NVMe Base Duo - PiShop.ca
<clever> ah, here it is, 2 nvme and a pcie switch
<clever> if your goal is MOAR storage, rather then speed
<heat> i don't really want a NAS, just a usable system
<zid> for more storage you just use ethernet
<heat> that doesn't involve fucking sd cards
<zid> for good quick storage a sata drive sounds easiest ngl
<bslsk05> ​www.pishop.ca: Raspberry Pi NVMe SSD - 256GB - PiShop.ca
<zid> cus the connector is nicer and you can tape the pi to the drive :p
<clever> there are also nvme modules, that rpi has certified are good quality
netbsduser`` has joined #osdev
<zid> can a pi deliver enough power for an actual nvme drive?
<heat> the pi 5 itself seems pretty decent compute wise, probably not great but super usable it seems
<zid> or do you need a second power supply
<heat> plenty of RAM
<heat> but sd card probably tanks performance
<zid> pci-e bus is supposed to be able to deliver up to 75W
<clever> zid: i think the pi5 can power the nvme fine, but some hats may borrow from the gpio header, not the flat-flex
<zid> some nvmes do use like 30W when writing
<zid> just by virtue of a lot of data meaning a lot of row updates
<zid> so lots of charge needed
<clever> oh, another quirky thing
<clever> if you use a 5v/3a usb-c PSU, or the usb-PD comms dont work, the firmware wont boot from usb
<clever> it will blink a 1-1 on the green led, and display a clear error on the hdmi output
<clever> pressing the power button once will confirm the warning, and boot anyways
<clever> a 5a capable PSU, or a config file, can override it
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
<clever> it knows that the drive can be hungry, and wont let the OS load
Turn_Left has joined #osdev
<heat> lame
<heat> all i want is a not expensive decent arm board
<heat> ideally that would not run on a fucking sd card please please please don't do that to me pleeeeeeeaaaaaaaase
<zid> but sd cards are great, you can get entire kilobytes per second off them
<zid> sometimes
<heat> i had one on my rpi
<heat> it was slow as shit
<zid> are you shit-talking my v.92 modem
<heat> and randomly malfunctioned one day, oops, all your data is gone
<zid> ah like an nvme then
<clever> Model Number: INTEL SSDPE2KX020T8
<clever> Total NVM Capacity: 2,000,398,934,016 [2.00 TB]
<heat> nvmes are much more reliable than sd cards
<clever> SMART overall-health self-assessment test result: FAILED!
<clever> - media has been placed in read only mode
<clever> Percentage Used: 105%
<clever> Data Units Written: 21,305,478,809 [10.9 PB]
<clever> [7:32 PM]
<clever> ive had 2 drives fail like this now, at work
<clever> both times, they hard failed at 105%, and still had spare blocks
Left_Turn has quit [Ping timeout: 260 seconds]
<zid> I've owned one ssd and it has died dead with no data
<zid> 100% failure rate
<zid> sorry girls
<clever> i suspect this drive is entering read-only before it dies
<clever> because its over the rated number of writes
<heat> i mean yeah, you probably can't really do forensics-like data recovery on those
<heat> btw, here's a good way to reduce writes: don't use CoW filesystems
<clever> the drive died while using ext4
<heat> oh.
<heat> then the filesystem is great and has no fautls
<heat> it's totally the drive's fault!
<clever> lol
<clever> i think the major problem is the materialized views in postgresql
<clever> combined with the lack of raid
<clever> the hardware has 2 identical NVME
<clever> every single machine, is using just one disk
<clever> so the 2nd drive sits entirely unused
<heat> in reality journaling does fuck up storage lifetime a bit
<heat> for crappy stuff like sd cards
<clever> ive heard that some crappy SD cards, will re-order the writes, and completely break journaling
<clever> so critical metadata is half modified, and the journal never updated
<heat> yep
<zid> final-final(2).pdf
<clever> that pdf goes over a dozen sata ssd's, subjects them to sustained writes, then yanks the power rail (mosfets on the sata power port)
<clever> and then looks at what mess it left behind
<heat> zid: 80 final versions is kind of insane
<clever> 3 drives suffered bit corruption
mahk has quit [Ping timeout: 252 seconds]
<clever> 3 drives had half a sector worth of data written
<zid> Someoen tripped the breaker in my house
<zid> it RUINED my ntfs on ssd :(
<clever> 8 sata ssd's, and 1 mechanical drive, had unserializable writes
<zid> good intel enterprize ssds had big caps
<clever> 1 drive suffered metadata corruption, i think it was fine if you read the first 20gig, and if you read past that, *dead*
<zid> it was a selling point
<clever> complete firmware crash
<clever> and one ssd, suffered total failure, just by cutting power
<clever> zid: oh, ive heard that some high quality nvme, wont write the wear leveling translation tables back to flash, for speed
<clever> and on power-loss, there will be a mad super-cap fueled race, to commit them, lol
<heat> this is why enterprise buys enterprise nvmes
<heat> versus consumer garbage
<clever> Model Number: INTEL SSDPE2KX020T8
netbsduser`` has quit [Ping timeout: 245 seconds]
<clever> i'm guessing these are enterprise grade?
<heat> i hope so
<heat> i would be very upset if my enterprise SSDs weren't fault resillient
<heat> because all of these issues are very observable at scale
<zid> tbh
<zid> if a data center hard-loses power
<zid> that's a fucking disaster regardless
<zid> reimaging some ssds is probably the least of their worries
<zid> the big fire in the turbine hall slightly more pressing :p
<heat> yeah but database
<zid> They have 40 different sets of corruption they can average them, np
<zid> replicate from US EAST
<heat> you're assuming this is google
<zid> people exist who aren't google?
<heat> if you work at google, the answer is no
<zid> exactly
<zid> and google buys all the hw
<zid> qed ergo cogito sum ssds dying is a fire damage issue
<heat> though i would love to know the frequency of observed disk/IO failures over google's fleet of servers
<heat> i know they have a daemon to collect EIO's
<zid> my friend's job at google
<zid> is to count ecc errors
<gog> E I E I O
<heat> kick RAM right in the teeth
<heat> until it fails
<clever> i saw a talk before, about bit squating
<zid> He told me a fun story about an argument with a customer about a flipped bit
<clever> register dns domains similar to the target, but with single bit errors
<zid> He determined it was in the customer's NIC
<clever> then get ssl certs for those domains
<zid> given it was checksummed etc everywhere else
<zid> it must have been
<clever> the guy wound up getting http requests from legit google servers
<heat> clever: lol jesus
<zid> and then my friend had to go around making sure the NICs were ecc'd :P
<clever> and the little bit of JS he slipped into the response (as a test), got cached by google, and served to 1000's of clients
<heat> zid: the checksum didn't make it drop the packet?
<zid> also I believe it's now google policy that ERR_OK and ERR_BAD or whatever, are not 0 and 1, but 0x5555555 and 0xAAAAAA or such
<clever> SSL doesnt do jack, if the bit flips before openssl gets the domain
<heat> i guess you can technically have, like, a bitflip after csum validation
<zid> after someone randomly found themselves to be admin on gmail
<clever> heat: my nas is using zfs, twice now ive recorded bit-flips, that the zfs checksums dont catch
<clever> heat: one bit flip turned a 3 in the filename into a #
<heat> huh
<clever> all of the tooling reports that the file exists, yet you cant read or delete it, because the filename is invalid
<heat> what is it using for csums?
<heat> ext4 does crc32c
<clever> basically, 123.txt turned into 12#.txt
<clever> let me look
<nikolar> there are several options
<nikolar> fletcher4 by default i think
<heat> inet csums are pretty naive, just a big-ass sum of the whole packet, but even then a single bit flip having it still valid is a pretty big coincidence
<heat> even worse when you factor in encryption/decryption of TLS packets
<zid> heat: it was detected, that was the problem, just not by the NIC
<zid> or rather, it was detected, maybe even by the NIC
<nikolar> clever: so you had bit flips that weren't caught by checksums
<nikolar> how did that happen
<zid> but you don't know *where* the bit flip happened
<clever> nikolar: it flipped before the checksum was computed
<nikolar> ah makes sense
<nikolar> yeah literally nothing you can do about that
<bslsk05> ​gist.github.com: gist:f3e9712980cbacf40752022402da455b · GitHub
<clever> CIQDZTLYEGJ7KJ4OCJKVQKUZJRZVWV#PB6TAKESOMQ5KVBE4LRJ7XIY.data
<clever> CIQDZTLYEGJ7KJ4OCJKVQKUZJRZVWV3PB6TAKESOMQ5KVBE4LRJ7XIY.data
<clever> those are 2 files on my NAS
<clever> from the zfs metadata, the contents are identical, they have the same edonr hashes for each block
<heat> zid: yeah but in that case you just drop the packet no?
<clever> but you cant read the first one, because # is not a valid filename character
<heat> and retransmission should hopefully work
<clever> so linux refuses to even ask zfs about it
<nikolar> why's # not a valid filename character
<heat> it is
<nikolar> pretty sure zfs only cares about '\0' and /
<zid> heat: yea but they blamed google, it was probably HPT or some stupid shit where they'd get angry at a dropped packet
<heat> ah
<nikolar> everything else just goes straight through to the disk
<clever> nikolar: linux is addong its own rules, before it talks to the zfs driver
<nikolar> that's weird
<nikolar> why would # not be valid though
<heat> it is
<clever> oh, wait
<clever> [clever@amd-nixos:~]$ touch '13#.txt'
<clever> [clever@amd-nixos:~]$
<heat> you might have problems with it in the shell
<clever> i can create such a file....
<heat> but it is a valid character
<clever> heat: nope, strace confirms its not the shell
<clever> the filename made it all the way to the syscall
<clever> i think its the hash tree in zfs
<heat> what?
<clever> in zfs, all directories use a hash tree as an index
<nikolar> zfs probably caught that something was funky
<nikolar> you can see if it complained
<heat> yes
<heat> that's legit
<clever> the hash tree, has the un-flipped version of the filename
<clever> so when searching by hash, its not there
<heat> the hash tree hashed the original filename
<clever> but when ignoring the index, and iterating over every file, it is there
<nikolar> right, so you can't access it unless you use debug tools
<heat> anyway something something last word in filesystems except when a bit flips
<nikolar> which, makes sense
<clever> -1f8a2dc0 37 2c 09 8a 6c 3c 26 29 c5 a7 cd a7 84 e2 2d ae |7,..l<&)......-.|
<clever> +1f8a2dc0 37 2c 09 8a 6c 3c 26 29 c5 a7 dd a7 84 e2 2d ae |7,..l<&)......-.|
<nikolar> heat: what the heck are you supposed to do when a bit flips before it even gets to you
<heat> i would flip z into a different character for a joke
<clever> and this, is a bit flip in a .mkv file i downloaded
<heat> but i can't be arsed to look up binary versions of characters
<heat> so
<clever> it was the same bit as the filename, and in the same direction (clearing a bit)
<heat> <bitflipped z into some other letter>fs
<zid> Zfs
<zid> :P
<zid> flipped the 32 valued bit for you
<nikolar> kek that works
<heat> lol
<heat> i mean yeah bitflips are fucked
<heat> but also why aren't filenames properly csummed?
<zid> oh right, we're post 23:00, let's check my EBOOKS
<heat> this is kind of recoverable
<nikolar> bookies
<zid> nothing, rip
<clever> heat: the filenames are in a data block that is checksummed
<heat> and it didn't find the bitflip? very weird
<clever> it flipped before the checksum was computed
<nikolar> because it was flipped before it was checksummed i imagine
<zid> depdends where the flip is
<nikolar> there's literally nothing you can do in that case
<zid> you write the data out, you write the metadata out
<zid> both are checksummed
<nikolar> like, have raid ram or something lol
<zid> but nothing exists to *correlate* those checksums
<heat> nikolar: you would like CXL
<nikolar> what dat
<heat> it's a weird new interconnect pushed by intel and other big corps
<zid> cocks x lampposts
<nikolar> oh i vaguely remember it
<heat> where they want to do stuff like memory over CXL
<clever> zid: in a directory, you have filename->inode pairs in a big list, that list is broken up into 16kb chunks, and then it uses a prefix of the hash to pick which 16kb chunk to put a filename into
<heat> where that memory is suuuuuuuuuper latent
<heat> because, of course
<nikolar> more than it is now?
<clever> zid: each 16kb chunk is then hashed with edonr
<heat> for unclear benefit
<nikolar> why would they want
<heat> yeah, more than it is now
<nikolar> like it's already stupid slow
<nikolar> no one would notice if it's slower :P
<nikolar> that's the only reasoning i can imagien
<clever> and then because its raidz1, it adds 8kb of parity data, and writes the 16kb+8kb to disk
<heat> accessing CXL memory is the equivalent of accessing memory that's like 10 sockets over
<nikolar> which is good, for some reason
<zid> clever: grats?
<zid> no idea why you said any of that
<clever> the disk location, and hash, of each block, is then put into an L1 block, which itself is then edonr'd again
<heat> yeah i think it allows them to do $unclear fancy stuff
<heat> including adding a bunch of shit over the CXL bus
<heat> for $workloads
<nikolar> like 10x the latency is definitely going to be noticable
<heat> of course since it's 2025 it's AI
<nikolar> whenever you dip into ram
<nikolar> which is often
<clever> also, since this is "critical" metadata, zfs stores 2 copies of every block
<nikolar> i wonder, how often do you get cache misses if you have like half a gig of l3
<zid> depends what you're doing
<zid> I'll give you a hint, if your data set is a lot bigger than half a gig, many many misses
<nikolar> sure, of course
<zid> if it is a lot smaller, no misses
<nikolar> wasn't there some amd server cpu with thereabouts of l3
<zid> 768MB
<zid> is the most I remember
<zid> x3d baby
<nikolar> oh yeah sometihng like that
<heat> as far as I understand of linux-mm shitfests about this sort of stuff, their idea currently is to use all of this CXL memory as some sort of slow-tier
<nikolar> got to love it
<heat> where you could in theory slowly migrate fast page cache to slow page cache
<nikolar> so you have normal ram and slow ram?
<heat> then promote it back up eventually
<heat> yeah some sort of that
<nikolar> right that's not nearly as bad
<nikolar> it's kind of a software managed cache i guess
<kof673> primary storage, secondary storage, and 1.5 storage
<heat> but a very significant group of people think this is very very very stupid and insane
<nikolar> i didn't say it was good
<nikolar> it's just not as bad as i initially thought
<heat> (disclaimer: i am included in that group of people)
<heat> then there are BASED AND CXLPILLED
<zid> It's going to be
<zid> for 'some workload'
<zid> the best thing ever
<nikolar> i guess the idea is that you use the same bus for all "peripherals" like the memory and the interupt contoller and timers and stuff
<zid> but it won'tbe us
<heat> yeah AI bro
<heat> it's always AI
<nikolar> which would also inclue the stupid npus they've started putting in now
<nikolar> i hate that they are even calling them npus
<nikolar> it's just fast matrix muliplier lol
<zid> numpty processing units?
<heat> matrixcalc.org
<heat> it's pretty fast
<nikolar> see
<nikolar> no need for special purpose hardware
<heat> numpy processing units btw
<zid> numpty processing units fits them
<nikolar> numpty dumpty
<bslsk05> ​www.google.com: Google Search
<heat> linuxy kernely
<zid> "confused numpties who have little idea of what they're talking about"
<zid> see, fits fine
Gooberpatrol66 has quit [Remote host closed the connection]
<heat> anyway i'm going to bed because of
<heat> *checks notes*
<zid> footballers legs
<heat> AI
<zid> won't ogle themselves
<heat> footballer legs don't increase shareholder value
<heat> well, i guess they do for like, sky sports
<heat> but fuck sky sports
<zid> and onlyfans
Gooberpatrol66 has joined #osdev
vdamewood has quit [Quit: Life beckons]
Turn_Left has quit [Read error: Connection reset by peer]
<zid> gog did you beat ffx
<gog> no
<gog> i haven't been playing
* zid updates christmas list
<zid> chat how do you spell 'norty'
* kof673 points at bill goldberg, santa's slay movie, hourglass nebula by sagittarius old man saturn rules around there "christmas isn't over until i say it's over!"
<zid> mtg x final fantasy cards are better in german
air has joined #osdev
Lucretia has quit [Remote host closed the connection]
nyah has quit [Remote host closed the connection]
nyah has joined #osdev