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
<nikolapdp> i am now tempted to try and write sqlite based fs for raw block devices
<dostoyevsky2> nikolapdp: I tried storing trees in sqlite before and then query it with recursive CTEs but it's really hard to generate and became quite slow...
<nikolapdp> eh just run multiple queries :P
<dostoyevsky2> nikolapdp: I was storing ASTs
<nikolapdp> really, in an sql database?
<nikolapdp> why
<dostoyevsky2> so multiple queries would be even slower
<nikolapdp> heh fair
<nikolapdp> i guess it's not as big of a deal for an fs
<dostoyevsky2> nikolapdp: I mean the transactions can be really cool with sqlite... you can prototype a lot of fs things so easily
<nikolapdp> and you don't have to worry about fs corruption
<nikolapdp> because sqlite is handling that on its own
<dostoyevsky2> nikolapdp: I have a project where I can query ASTs like this: `dir("vendor/github.com/go-nfs").roots_for("source_file").select_nodes_recursive(M{"kind": "identifier", "v": "PmapPort"}).rvalues().replace_code(`__patched__nfs_port()`)'
<dostoyevsky2> nikolapdp: So I store the ASTs in a k/v store: boltDB .. but in the beginning I stored the ASTs in sqlite
<nikolapdp> why store an ast in a database tjpihj
<nikolapdp> *though
<nikolapdp> and not just a hashmap
<nikolapdp> or as a normal tree
<dostoyevsky2> BoltDB is a persistent hashmap
<dostoyevsky2> But e.g. indexing the AST of the linux kernel take like 10mins ... but once indexed I can run queries and generate patches in seconds
<nikolapdp> oh so you're writing a code search tool
<dostoyevsky2> I got thw idea from this talk: https://www.youtube.com/watch?v=VTIdiJO1r20
<bslsk05> ​'OffensiveCon18 - Niko Schmidt, Marco Bartoli, Fabian Yamaguchi - Field Report on a Zero-Day Machine' by OffensiveCon (00:53:54)
<nikolapdp> interesting
<dostoyevsky2> nikolapdp: I wanted to be able to have AST aware patches... so I can write a patch that is based on the actual AST... like replacing all references to a an identifier called PmapPort to my own function
<nikolapdp> sounds like it could be useful
<dostoyevsky2> And for the Linux kernel I thought about adding pledge/unveil that way
<nikolapdp> oh how would that work
<dostoyevsky2> There have been some people that tried porting pledge/unveil to linux, like: https://github.com/gnoack/seccomp-scopes ... but they haven't been maintained after that... and I could maybe turn them into more general patches with my AST queries... but I guess it also depends on how much the linux kernel is changing
<bslsk05> ​gnoack/seccomp-scopes - Make Linux computing safe (1 forks/9 stargazers/MIT)
<dostoyevsky2> But would be great if I still could easily update kernel versions, even though I have pledge
<nikolapdp> yeah interesting idea
<nikolapdp> the source could change but the resulting ast might be identical
<nikolapdp> so in theory the patch could still be compatible
<dostoyevsky2> nikolapdp: Would really like to see an FS based on sqlite... you could do so many interesting things with it...
<nikolapdp> heh yeah, we'll see
<nikolapdp> like cleaning up unused files is just "drop from files where id not in directory_mapping"
<nikolapdp> or whatebe
<dostoyevsky2> I wrote an nfs daemon the other day... it's an easy entry point for writing a custom filesystem
<dostoyevsky2> nikolapdp: yeah, stuff like that... could be so powerful
<nikolapdp> i *think* that sqlite can be made aware of file sizes
<nikolapdp> so it might be trivial
<nikolapdp> s/is think/i think
<dostoyevsky2> sqlite also can easily have plugins for full text search and the like
<nikolapdp> yeah this is quite an interesting idea
<nikolapdp> pluggable fs
<dostoyevsky2> json support is also builtin
<nikolapdp> heh json for additional file attributes for example
<nikolapdp> which work with plugins
<dostoyevsky2> you could query files containing json directly in a "find"
<nikolapdp> yeah interesting ideas
<dostoyevsky2> if it's not performing well you could just migrate the whole FS to a new architecture in one transaction, do a backup before that... and see if that improves it... add indexes for things that are too slow
<nikolapdp> or you could just cache things like normal fss
<nikolapdp> and you can use transactions for consistency guarantees
<dostoyevsky2> sqlite has this builtin cache like an LRU k I think
<nikolapdp> eh i forgor
<dostoyevsky2> I think you can set the cache size when you open an sqlite database
<dostoyevsky2> you could serve the whole filesystem over http... show it inside a browser
<dostoyevsky2> because SQLite compiles to wasm
<nikolapdp> eh sqlite search isn't the best
<dostoyevsky2> Try using WAL mode, which means that all changes will be appended to the database file... it will never overwrite existing data... that way you could e.g. play around with multi-threaded access to the FS, only blocking when you are actually appending
<nikolapdp> guess you could implement a https://www.sqlite.org/vfs.html
<bslsk05> ​www.sqlite.org: The SQLite OS Interface or "VFS"
<nikolapdp> for raw disk access
<dostoyevsky2> Oh yeah, sqlite has a simple IO api that you can easily implement... e.g. some have implemented the API for s3
<bslsk05> ​www.sqlite.org: SQLite: Documentation
<nikolapdp> demo vfs is pretty short
<dostoyevsky2> nikolapdp: add rqlite on top and you have a distributed filesystem based on paxos
<nikolapdp> heh
<nikolapdp> crazy stuff
<nikolapdp> probably not particularly fast as far as fss go
<heat> fss
<nikolapdp> you can probably very easily do transactions
<nikolapdp> erm
<nikolapdp> s/transactions/snapshots
<heat> isn't sqlite slow?
<heat> you need an OSSCALE db like mongo
<nikolapdp> you need a mongo server
<nikolapdp> you don't need a sqlite server
<nikolapdp> ergo, sqlite wins
<dostoyevsky2> heat: not really... it's similar to postgresql in performance, but the roundtrip for queries is non-existant, as its inprocess
netbsduser has quit [Ping timeout: 252 seconds]
<heat> oh actually these databases probably all have cronic problems on zfs or btrfs
<dostoyevsky2> also sizewise sqlite dbs easily can have terrabytes
<heat> where they journal the data like 50 times
<nikolapdp> why would they
<heat> the db does its journalling, then zfs does it like 2 or 3 times
navi has quit [Ping timeout: 240 seconds]
<heat> this is a known problem on e.g ext4 and f2fs, i can't imagine how much worse it must be on zfs
<nikolapdp> also i was setting up mysql on zfs, you just tell it to not fsync constantly
<nikolapdp> and boom no issues
<dostoyevsky2> nikolapdp: rqlite is slow, especially if the pings between servers is bad... but that's paxos for you
<heat> nikolapdp, but then you lose data?
<nikolapdp> not really
<nikolapdp> if zfs tells you the data is safe, it's safe
<heat> how? fsync is the data barrier
<heat> bro, how would zfs tell you it's safe
<heat> you need to use fsync for it to tell you that
<nikolapdp> oh i forgor what setting there was for mysql
<heat> til then it's in the page cache molding
<nikolapdp> some kind of syncing relaxation
<nikolapdp> can't remember what exactly
<heat> are they not doing O_DIRECT anyway?
<nikolapdp> honestly, don't remember
<nikolapdp> i'd assume no, by default
<heat> innodb_flush_method = O_DIRECT should work, it seems
<nikolapdp> so it is disabled by default
<heat> fsync is going to be awful, but i also don't know how zfs can work with O_DIRECT and still do the write aggregation stuff they fanboy about
<heat> i mean... i guess it should still work
<heat> they'll just need to read it back from the write log
<dostoyevsky2> https://www.sqlite.org/pragma.html <- O_DIRECT and fsync can probably be mapped to setting one of the pragmas
<bslsk05> ​www.sqlite.org: Pragma statements supported by SQLite
<nikolapdp> lol dostoyevsky2, how do you feel about writing an sqlite based fs for real
<nikolapdp> heat > they'll just need to read it back from the write log
<dostoyevsky2> nikolapdp: I kind of want to do it....
<nikolapdp> that's literally how everything works on zfs
<nikolapdp> yeah same
<heat> yeah but usually it's in the page cache
<nikolapdp> not sure how zfs interacts with linux vfs
<nikolapdp> could be
<heat> i would hope zfs has its own buffer cache
<nikolapdp> it does
<dostoyevsky2> nikolapdp: And I know it's quite easy to write it in Go
<nikolapdp> not sure about the state of fuse on go
<nikolapdp> i'd prefet c
<dostoyevsky2> nikolapdp: No fuse, nfsd
<dostoyevsky2> fuse is over
<nikolapdp> lol
<nikolapdp> nfs is an odd choice
<heat> it's joever
spareproject has quit [Remote host closed the connection]
<nikolapdp> how silly would it to boot off of a sqlite based fs
<heat> very, hth
<nikolapdp> can you even boot off of fuse
<nikolapdp> never tried
<heat> yes, just get a fuse server in your initramfs
Arthuria has joined #osdev
<nikolapdp> really, that's all
<heat> yep.
<nikolapdp> huh i'll try
<nikolapdp> maybe booting over sshfs or something
<heat> httpfs
<nikolapdp> cursed
<nikolapdp> i love it
<heat> it's not like http booting isn't a thing
<nikolapdp> who does it
<heat> server people
<nikolapdp> what, instead of tftp
<nikolapdp> or nfs or something
<heat> firmware can't do nfs
<nikolapdp> but it will do tftp
<nikolapdp> which is far easier than http
<heat> nope, not in edk2 at least
<nikolapdp> edk2 won't do tftp?
<nikolapdp> how does netboot work then
<dostoyevsky2> https://github.com/rclone/rclone/cmd/serve/nfs/nfs.go <- the idea is to get started in userland.... and the easiest way to do that is via nfsd... which is just like ~10 API calls
<heat> wait no it has mtftp
<nikolapdp> obviously
<nikolapdp> dostoyevsky2 non existant link
<heat> i don't see how tftp can be more complicated than http though
<heat> http is literally a HELLOWORLD LULSCALE protocol
<heat> 1.1 at least
<heat> s/more/less/
<nikolapdp> how's it not
<nikolapdp> the client say gib file
<nikolapdp> the server sends bytes
<nikolapdp> that's it
<heat> that's how http works too
<heat> so..
<nikolapdp> you have a lot of header mangling before that
<dostoyevsky2> and then there is the Go port of sqlite: https://modernc.org/sqlite
<bslsk05> ​modernc.org <no title>
<heat> lot? define lot
<nikolapdp> more than tftp
<heat> you can very very trivially write a manual http request in curl
<nikolapdp> yeah curl whatever.org/file
<bslsk05> ​whatever.org: 500 Server Error
<nikolapdp> doesn't count
<heat> GET / HTTP/1.1\r\n\r\n
<dostoyevsky2> And then you can just implement the nfs calls with calls to sqlite...
<heat> this is a valid GET
<nikolapdp> dostoyevsky that's really not a lot
<nikolapdp> heat or you could do tftp which has been used for netbooting since netbooting was a thing almost
<heat> boss you're arguing with the wrong person, i'm not telling you why they do it, i'm telling you they do it
<dostoyevsky2> nikolapdp: And when you want the FS in your own kernel, you have the same calls that you have implemented in the nfs api... you just now call them directly in your kernel + you add VFS for your raw disk
<nikolapdp> also tftp is udp
<nikolapdp> so much much much simpler
<heat> as if uefi doesn't include its own full network stack anyway
<heat> also, consider that http can do TLS
<nikolapdp> so uefi now needs tls to boot too
<heat> i would guess tftp doesn't
<nikolapdp> great
<heat> haha
<heat> boss, the traditional efi firmware has like 3 copies of openssl
<nikolapdp> dostoyevsky2 heh yeah, not wrong
<heat> one for PEI, one for TLS in the network dxes, one for secure boot in DXE
<nikolapdp> heat: well traditional efi sucks
<dostoyevsky2> nikolapdp: You can easily compile Go code to C with cgo... so you could embed that code in your C kernel
<Ermine> Uefi would neet cert store for tls
<nikolapdp> thought that was clear
<nikolapdp> that too
<heat> openssl does all the crypto efi needs
<nikolapdp> with what certs
<nikolapdp> i guess if your machine is too old, it just won't boot
<heat> db
<nikolapdp> db
<nikolapdp> sqlite fs
<heat> no, the efivar db
<heat> efi fw has a boatload of keys in it
<heat> secure boot ya know
<nikolapdp> also you can write chacha20 in like 20 lines of c
<dostoyevsky2> And NFS vs Fuse: E.g. on Macos Fuse doesn't work anymore... with nfsd+go you can easily deploy your FS on Windows/Linux/OpenBSD/Macos ... also FUSE is much harder to implement than the NFSd, lots of multi-threading stuff in my FUSE code, and the nfs api is just a set of simple api calls
<nikolapdp> it's pretty trivial to encrypt the files over tftp
<Ermine> this is to verify boot images
<heat> well, yes. if you need a certificate for TLS you just create one
<nikolapdp> dostoyevsky2 fuse does work though
<heat> as a normal client does
<Ermine> do they use the same set of certs for tls?
<heat> no
<nikolapdp> i've used sshfs in my mac vm
<heat> for a connection it'll create a certificate, like you'd see in onyx
<dostoyevsky2> nikolapdp: https://www.fuse-t.org/
<bslsk05> ​www.fuse-t.org: FUSE-T
<heat> wait, if you mean the trusted certs, i don't know how they would do it
<dostoyevsky2> > The main motivation for this project is to replace macfuse (https://osxfuse.github.io/) that implements its own kext to make fuse work. With each version of macOS it's getting harder and harder to load kernel extensions. Apple strongly discourages it and, for this reason, software distributions that include macfuse are very difficult to install.
<bslsk05> ​osxfuse.github.io: Home - macFUSE
<dostoyevsky2> Apple stopped giving out signatures for kernel extensions
<heat> i guess you can probably embed your own certs with the build, but this is way outside my expertise
<nikolar> jij
<nikolar> huh
<nikolapdp> btw dostoyevsky2, i don't consider fuse dead because mac doesn't support it
<Ermine> btw is pei a part of edk2 ?
<heat> yes parts of PEI are in edk2
<heat> the PEI core and various other modules
<nikolapdp> pei?
<heat> pre-efi initialization phase
<nikolapdp> ah
<heat> part of PEI is pre-memory
<dostoyevsky2> nikolapdp: Well, I for one am glad I can now test my FS via nfsd and don't have to work on my FUSE FSes anymore.. I don't know how many hours I spent of #fuse trying to debug things...
<nikolapdp> really
<heat> hashtag fuse
<heat> write a real kernel driver
<nikolapdp> i've only written a tmpfs in fuse but how i've never had issus that fuse caused
<Ermine> It's a shame that bearssl got abandoned. Could be a good fit for efi stuff
<nikolapdp> did it?
<heat> yes
<heat> they're trying mbedtls for PEI stuff
<dostoyevsky2> Ermine: can't one use Letsencrypt these days to generate all kinds of certificates?
<nikolapdp> their page mentions nothing of being abandoned
<Ermine> nikolapdp: last commit was more than a year ago
<Ermine> dostoyevsky2: you need to store trusted certs somehow
<heat> 16 commits in 4 years
<nikolapdp> nice rate
<dostoyevsky2> Ermine: hmmm... if it's for EFI you store the certs in your OS image, no?
<nikolapdp> dostoyevsky2 how would you go about writing a nfsd for a custom fs
<heat> no
<Ermine> if you boot over https the os image is far away
<nikolapdp> ah it import stuff
<nikolapdp> so guess i'd need that too
<dostoyevsky2> nikolapdp: https://raw.githubusercontent.com/rclone/rclone/master/cmd/serve/nfs/server.go <- here is how it gets started...
<dostoyevsky2> And then mount it like: sudo mount -o port=59050,mountport=59050,nfsvers=3,noacl,tcp -t nfs localhost:/mount /nfs
<nikolapdp> but this does nothing right
<dostoyevsky2> Ermine: Oh... that's bootp?
<nikolapdp> might actually learn go for this :P
<nikolapdp> heat btw, i don't see why you couldn't do tftp over tls if that's what you want
<heat> isn't that not part of the tftp?
<Ermine> i.e. external party telling you which certs should you trust? What could go wrong with that?
<heat> whereas http has https
<bslsk05> ​pkg.go.dev: sqlite package - modernc.org/sqlite - Go Packages
<Ermine> also, s/bootp/dhcp/
<heat> and then you can even use a regular old http server for booting
<nikolapdp> something about booting off of http{,s} rubs me the wrong way
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<dostoyevsky2> nikolapdp: I also wrote an sftp server it looks very similar to the nfs api... It's crazy how easily you can implement those servers in Go... I haven't tried yet to use https://github.com/pojntfx/go-nbd to simulate a hdd for qemu, but it seems also very easy to do
<bslsk05> ​pojntfx/go-nbd - Pure Go NBD server and client library. (19 forks/335 stargazers/Apache-2.0)
<dostoyevsky2> EFI being able to make tls requests... that sounds like a lot of code
<heat> efi is 16MB compressed
<dostoyevsky2> Do they have a tcp/ip stack in there?
<heat> yep
<Ermine> lwip lwip lwip
<heat> not lwip
<dostoyevsky2> and then I suppose they rarely update the TLS crypto methods?
<dostoyevsky2> were they vulnerable to heartbleed?
<Ermine> on ancient machines never
<heat> idk
<heat> you should expect security updates to be very very rare
<Ermine> My old pc latest firmware was shipped in 2014
<dostoyevsky2> how well do they parse x509 certificates?
<dostoyevsky2> I mean the CVEs for that stuff are frequent, just so many variables
<heat> the security situation around efi is a complete trashfire
<heat> no two ways about that
<dostoyevsky2> So couldn't you just generate a client+ca in openssl and then tell uefi to use the client cert and let your server use the CA... and then do the request... or does UEFI only support public TLS and you'd need to buy something from verisign, or use letsencrypt?
<dostoyevsky2> I'd expect you could install those certs similar to how you install grub
<heat> lol
<heat> it's all in firmware volumes you can't touch unless you want to brick your fw as the signatures fail to match up
<dostoyevsky2> so UEFI has their own root CA for their certificates?
<heat> i don't know how they do things
<dostoyevsky2> And you'd need to have something that signed by their CA to boot via https?
<heat> i'm not a network boot guy
<bslsk05> ​unix.stackexchange.com: boot - Can grub load a kernel from HTTP? - Unix & Linux Stack Exchange
<dostoyevsky2> Just enable https in grub... ;-)
Arthuria has quit [Ping timeout: 268 seconds]
<dostoyevsky2> nikolapdp: I'd say a lot of vpses boot via qemu/kvm with a custom nbd driver over the network which simulates a local disk
<nikolapdp> yeah i can see that happenin
<dostoyevsky2> nikolapdp: if you have WAL in sqlite... you also get free time travel
<dostoyevsky2> just remember the offsets
<dostoyevsky2> offsets/filesizes
<nikolapdp> for that, you probably need to patch sqlite
<dostoyevsky2> Yeah, I am not sure how append only sqlite really is... but I think timetravel could be possible
<dostoyevsky2> Or snapshots where you just remember two numbers
<dostoyevsky2> nikolapdp: In your disk driver just return the old filesizes ;)
<dostoyevsky2> or disk sizes
<dostoyevsky2> disk driver/vps
<dostoyevsky2> *vfs even :)
<nikolapdp> (:
gorgonical has quit [Ping timeout: 255 seconds]
Arthuria has joined #osdev
edr has quit [Quit: Leaving]
Arthuria has quit [Ping timeout: 260 seconds]
frkazoid333 has quit [Read error: Connection reset by peer]
frkazoid333 has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
Arthuria has joined #osdev
theruran has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
gog has quit [Quit: byee]
asarandi has quit [Ping timeout: 272 seconds]
dasabhi has joined #osdev
asarandi has joined #osdev
<dasabhi> heat: hey i know you spoke about xv6 having different page table mappings for user vs kernel space and found it weird
<dasabhi> i am just on that chapter right now i am trying to figure out why its strange
<dasabhi> i initally though the kernel didn't even have page tables turned on for itself, thinking why would the kernel even need it
<dasabhi> but you is it strange that xv6 does this?
<dasabhi> i dont know what the norm is on this topic
<heat> ok so pre-meltdown you usually had the kernel mapped together with userspace. because it's simply way faster to not switch page tables (to some kernel page tables) when going through the user - kernel barrier
<heat> or when copying stuff from user memory, etc. no switching = lots faster
<clever> yeah, there was a bit in the paging tables, that says if the page is user or kernel only, and it turns out it didnt do its damn job :P
<heat> post-meltdown they figured out you could blackmail the CPU into giving you data through that privilege barrier. so a common meltdown mitigation is to have a copy of the page tables that has all user memory + a kernel trampoline mapped, and a copy for the kernel, with the full userspace and kernel mapped, that the trampoline switches to
<dasabhi> what do you mean by 'kernel mapped together with userspace', can you elaborate a little
<clever> dasabhi: having a single paging table, that maps both kernel and userland and using the "kernel only" flag to protect the kernel side
<Ermine> everything is paged, so kernel needs page tables as well
<heat> the kernel is mapped on its addresses, user memory is mapped on its addresses
<clever> so when a syscall is done, the cpu switches to kernel mode, and the entire kernel is immediately accessible
<heat> not sure if there's a better way to explain it
<zid> It'd suck to have to locate your kernel in memory via its physical address
<heat> one of the copies doesn't have the full kernel mapped, only the trampoline, to avoid exposing sensitive kernel data through meltdown. the other copy has the full kernel mapped as well
<Ermine> program sees memory like --[program pages]---[kernel pages]-
<heat> user memory is mapped in both copies
<clever> zid: ive been using nommu linux the last few weeks, and funnily enough, i had a bug where i dropped a copy of the dtb in the middle of the kernel binary, resulting in illegal opcode errors
<kof673> > it's not like http booting isn't a thing > who does it pxelinux IIRC and...if you are crazy enough to do it over the public internet, should be able to https, but also there is a way to sign the kernel/binary you download and make sure whichever certificate signed it
* kof673 slaps nikolapdp with a piece of cheese
<zid> see, told you it sucks :P
<zid> I bet the copy_from_user checking is.. hairy too, if supported
<bslsk05> ​github.com: not-os/ipxe.nix at master · cleverca22/not-os · GitHub
<zid> or do you just say fuck it, no security on no-mmu
<kof673> :) </basilisk>
<clever> kof673: this validates signed files before executing them with ipxe
<clever> zid: yep, no security, and an MMU wouldnt have helped, the fault was in the bootloader region
<clever> it would write the kernel, initrd, and dtb to regions in ram
<clever> and it put the dtb 64kb past the end of the initrd
<clever> but, if there was no initrd, that was 64kb from 0, the start of the kernel.....
<zid> It'd be a hilariously annoying pain in the arse to do security, sounds fun
<zid> you'd need *some* hardware mechanism, obviously, but trying to do it not-with-addresses sounds 'fun'
<zid> segmentation, mtrrs, something like that
<clever> the MPU in cortex-m can probably help
<clever> it doesnt change the addressing, only faults if you go outside of the fence
<clever> but i'm on a nommu rv32 emulator, so i cant use arm toys
<dasabhi> heat: interesting okay i need to get my head around this
<zid> dasabhi: You can think of it like that the kernel is a special .dll loaded into every process
<zid> that can only be jumped to via a special instruction
<geist> are you in machine mode? you could use the memory protection regions there
<clever> zid: i think in the win 3.11 days, the kernel literally was exactly that
<clever> geist: machine mode, but i suspect the emulator doesnt support them, and it wouldnt have helped anyways, because it was the host doing memcpy's into the guest ram
<geist> ah
<zid> The kernel isn't running the programs, the programs are the entire cpu runtime, and the programs *temporarily become the kernel for a bit* if you do a syscall
<dasabhi> okay i get the original idea, one large page table that does mappings for user and kernel, pretty fast before spectre and meltdown
<clever> originally, there was some messy code, to track the addr/size of the kernel, initrd and dtb
<clever> and the dtb would start at `initrd_addr + initrd_size + 64kb`
<dasabhi> no need to load a second page table
<clever> but, when there is no initrd, then the dtb starts at 64kb....
<clever> and it doesnt respect where the kernel is!
<dasabhi> ah but now, we want them seperate, thats why xv6 does this double page table thing
<dasabhi> i think it will make more sense when i get to the pagetable lab and see the setup of the pagetables myself
<heat> well in riscv it's double silly because meltdown was never a thing on riscv
<clever> ive already rewritten it, to have a dumb allocator, where you just request size bytes, it does `addr += size;` and returns the old addr
<clever> so i can then just allocate space for the kernel, initrd, and dtb, and not have to worry about where the previous stage ended
<dasabhi> its interesting because they ditched x86 in 2019
<dasabhi> okay real dumb question, why does the kernel need paging on?
<dasabhi> why not just touch any chunk of physical memory
<zid> on x86, because it's globally on or off
<dasabhi> ahhhh
<zid> and it's just.. not a hardship at all
<dasabhi> so you cant just turn it on or off between kernel and userspace
<clever> dasabhi: turning the mmu off is costly, and then you have added overhead for accessing anything in userland, and all of the read-only and no-execute flags stop working
<zid> it's *preferable* to have it on
<clever> on arm, the d-cache also relies on the MMU
<dasabhi> got it, just saves you energy
<heat> virtual memory is infinitely useful
<zid> You get to do things like knowing if a page is a kernel or user page just by checking the top bit of the address
<zid> rather than walking a bunch of allocator data structures
<zid> and like clever says, a lot of features tend to be built into the paging structures
<zid> on x86 that includes the NX / W^X bit
<zid> so now the code is both harder to write, runs slower, and your stack is suddenly executable :p
<dasabhi> that makes a lot of sense, ty :)
<clever> and in my case, any process can write over the data for any other entity (kernel and other processes), because the mmu just doesnt exist
<zid> yea and you still need SOME mechanism to stop that
<zid> just using the paging you're already doing is a no-brainer for that
<zid> rather than having user-space using paging, and kernel space doing something else
<clever> yep
<kof673> i've said before i have about 7-8 amd ~586 SOCs that have separate memory permissions, claims to be faster, and can be used in combination with the normal mechanisms. anyways...have no idea how common that is, or for "embedded" stuff but you only get something like 8 areas IIRC lol
<heat> cortex-m has that kind of stuff iirc
heat has quit [Ping timeout: 240 seconds]
dasabhi has quit [Quit: Lost terminal]
pebble has joined #osdev
geist-sdf has joined #osdev
pebble has quit []
goliath has joined #osdev
gbowne1 has quit [Quit: Leaving]
xvmt has quit [Remote host closed the connection]
gsekulski has joined #osdev
GeDaMo has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
gsekulski has quit [Ping timeout: 240 seconds]
MrCryo has joined #osdev
mahk has quit [Ping timeout: 255 seconds]
MrCryo has quit [Quit: MrCryo]
MrCryo has joined #osdev
gog has joined #osdev
gog has quit [Client Quit]
CryptoDavid has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
<ddevault> hacks removed, toolchain works great
<ddevault> I wonder if gcc would work now...
<GreaseMonkey> nice
<ddevault> ah right I have to fix lseek
<mjg> i think ed being operational is the end game innit
<ddevault> I want a working C toolchain and a Hare toolchain, and doom
<ddevault> then it's Unix
<ddevault> I also need enough termios to implement getpass(3) (i.e. NOECHO) so I can stick login(1) in there and make it properly multi-user
<GreaseMonkey> a note on doom: you can use the original source release but it does need a few 64-bit fixes, although IIRC it's nothing particularly drastic
kazinsal has quit []
<ddevault> I was going to start from doomgeneric
<ddevault> which is how I ported it to my last OS
<GreaseMonkey> yeah that's probably a much better choice
kazinsal has joined #osdev
gog has joined #osdev
gog has quit [Client Quit]
gog has joined #osdev
gsekulski has joined #osdev
<nikolapdp> heh very nice
<nikolapdp> it's surprisingly easy to port gcc
netbsduser has joined #osdev
illis has joined #osdev
illis has quit [Client Quit]
xenos1984 has quit [Ping timeout: 268 seconds]
mahk has joined #osdev
<nikolapdp> you could try vim next
<ddevault> need curses and a more complete terminal
<ddevault> deferring all of that until I can refactor the vt and fb and such
<nikolapdp> did you abandon your libvterm efforts
<ddevault> I stuffed them on a branch
<ddevault> will resume after refactoring, also going to try libtsm
<nikolapdp> i wrote a terminal emulator from scratch, vim almost worked
<nikolapdp> got messed up when scrolling down
<nikolapdp> heh
<ddevault> the issue is that my vt code includes, all in one place, framebuffer code, early framebuffer console, and full fledged post-MMU double-buffered vt
<ddevault> I need to split these into three separate things
<nikolapdp> yeah sounds messy
<nikolapdp> probably isn't too bad to split
<ddevault> yeah, we'll see
<ddevault> going to refactor the framebuffer out into /dev/fb first, which will also progress towards doom
<nikolapdp> DOOM
xenos1984 has joined #osdev
gsekulski has left #osdev [#osdev]
kspalaiologos has joined #osdev
node1 has joined #osdev
<node1> Does anyone know why RCU Stalls and Soft Lockups happens?
gsekulski has joined #osdev
<Mutabah> node1: Contention
<node1> ?
<node1> what Contention?
<Mutabah> Wait, was this a specific question or just in general how that can happen?
<Mutabah> In general, read-copy-update stalls happen when there's contention - multiple threads/cores changing the value at the same time
<node1> so it's kernel related issue?
<node1> I'm just trying to find the root cause of the issue? Or maybe i think it's processor related issue
<nikolapdp> ?
gmodena has joined #osdev
srjek has joined #osdev
node1 has quit [Quit: Client closed]
bauen1 has quit [Ping timeout: 255 seconds]
navi has joined #osdev
<netbsduser> node1: i don't know what a soft lockup is supposed to be, sounds oxymoronic
<mjg> it's with interrupts enabled
<netbsduser> the RCU deferral mechanism cannot do anything if kernel mode stays operating at high IPL
<netbsduser> or with either interrupts or preemption disabled rather as linux doesn't have the IPL concept
<mjg> rather an off question
<mjg> anyhow the kernel should have bumped some backtraces along with the warning
<zxrom> Who here uses the OS of their own design as the OS of the main workstation?
<netbsduser> zxrom: unless linux torvalds, dennis ritchie, or david cutler are among us, probably no-one
<mjg> i'm deniss ritchie, AMA
<GeDaMo> What's the afterlife like? :|
<mjg> it is not, i'm reincarnated
srjek has quit [Ping timeout: 256 seconds]
<sham1> Technically reincarnation is still an afterlife. It's just one where you also happen to be alive as well, in a different body
* mjg hits blunt
<mjg> this makes you wonder though, does getting reincarnated as a php developer mean you were a bad person
<mjg> or you were a good person who was wronged big time and are now getting revenge by inflicting programming damage?
<kof673> opinions differ, incarnation == bodily, some philosophies all that is "bad". egypt resurrected in spirit aka magic red stone put on the flesh of ra
<mjg> subscribe to my newsletter for more hard-hitting questions
<kof673> so sometimes it is more akin to a ghost that returned to haunt, did not make the higher level lol
<mjg> in that case i can tell you all the php folk are defo in for another round
kspalaiologos has quit [Quit: Leaving]
<kof673> "earth" is bad in alchemy land. even "catholic" "saint jerome" the "saints" only got 'heaven". 'gnosticism' things returned to their source..."the meek" were all people who did not make the higher level lol
wlemuel has joined #osdev
* kof673 inserts frogurt guy: the resurrected php is also cursed "that's good!" "that's bad."
CryptoDavid has quit [Quit: Connection closed for inactivity]
m257 has joined #osdev
edr has joined #osdev
spareproject has joined #osdev
bauen1 has joined #osdev
<zxrom> Oh guys, I don't believe in incarnations and afterlives :D
leon has quit [Ping timeout: 255 seconds]
<kof673> what about php :) ?
agent314 has joined #osdev
leon has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
bauen1 has joined #osdev
CryptoDavid has joined #osdev
heat has joined #osdev
SGautam has joined #osdev
<kof673> a serious answer is i purposely limit dependencies, including build system. so that will take longer, but call it a "complexity level" keep things mind-numbingly simple
<kof673> and to a point, can include editor as well, etc.
<kof673> that is not to say i do not want more "advanced" things, but a simple "core"
agent314 is now known as agent314_brb
m257 has quit [Quit: Client closed]
m257 has joined #osdev
gsekulski has quit [Ping timeout: 264 seconds]
<kof673> "of their own design" i do not purposely "break" stuff...if i ever get that far, "compatibility layers" sure, .... but a crappy 10% functional native port/rewrite is more desired than a full-featured "import"
gsekulski has joined #osdev
gsekulski has quit [Ping timeout: 272 seconds]
bauen1 has quit [Ping timeout: 256 seconds]
m257 has quit [Ping timeout: 250 seconds]
<heat> what's distinstall?
<gog> package mangler?
<gog> get it, it's usually a package manager
<nikolapdp> looks like it
<gog> but sometimes like pacman it does a wrong thing
<gog> and mangles your system while you use it
<nikolapdp> how so
<gog> ask heat
<ddevault> simple shell script to unpack optional ports
<heat> file updates are not atomic so if you lose power/force shutdown at the wrong moment you may get an unbootable system
<nikolapdp> heat get a filesystem that supports snapshots :)
<heat> this is also detectable when updating system libs where you'll have transient failures executing processes
<nikolapdp> heh neat
<heat> no.
<nikolapdp> yes
<heat> no!
<gog> i'm a transient executive failure
<gog> (i have ADHD)
<nikolapdp> yes!
<heat> we love you gog
<gog> <3
<heat> ddevault, nice, congrats!
<ddevault> thanks :)
<heat> what shell did you end up using?
<nikolapdp> which tar is that
<ddevault> dash
<ddevault> sbase tar
<ddevault> plus GNU gzip and GNU make
<nikolapdp> ah right makes sense
<ddevault> (I also have a working libarchive port)
<nikolapdp> nice
agent314_brb is now known as agent314
<ddevault> my ext4 driver is buggy as hell, I need to fix it up before this works for a persistent install
<nikolapdp> what's wrong with it
<ddevault> yes
<nikolapdp> you're delegating to lwext4 no
<ddevault> yeah
<ddevault> but lwext4 is not really designed in a manner which is well compatible with my filesystem abstraction
<ddevault> so I have a lot of hacks in there
<nikolapdp> eh
<nikolapdp> you can always write your own fs :)
Celelibi has quit [Remote host closed the connection]
gsekulski has joined #osdev
<ddevault> might implement ext2 from scratch at some point
<nikolapdp> i'd probably make something dead simple
<nikolapdp> so you could have less buggy persistant install
<ddevault> I'd rather debug ext4
<ddevault> less work
<nikolapdp> eh good luck
<heat> writing a filesystem is a lot more fun than debugging a vt emulator
srjek has joined #osdev
Celelibi has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
<ddevault> I think the main problem with my lwext4 integration is refcounting
<ddevault> lwext4 and I have separate refcounts and they tend not to agree with each other
<ddevault> gonna have to rework a lot of that code to avoid holding lwext4 references
<nikolapdp> oh that sounds very messy
<nikolapdp> heat who was talking about vt emulators
<zid> hrmph woek up and my left earphone is no worky
<ghostbuster> are you sure it's not your ear?
<zid> where screwdriver, where soldering iron
<ddevault> nikolapdp: yesterday I was working on the vt
agent314 has quit [Remote host closed the connection]
<nikolapdp> ah right
<dostoyevsky2> is ext2 much easier to implement than ext3/4?
<mjg> yes
<mjg> ext2 is a lulfs
<heat> i was working on the vt too yesterday
<heat> just saying that there are much worse things than writing filesystems
gsekulski has quit [Ping timeout: 240 seconds]
<heat> no, ext3 is ext2 with some addons, ext4 is ext3 with extents
<heat> ext2 is hard to implement on its own, correctly
<dostoyevsky2> I was able to extract some vterm code yesterday, so I can have a virtual terminal wherever I need it
<dostoyevsky2> Go makes you so lazy: https://github.com/nerd2/gexto
<bslsk05> ​nerd2/gexto - EXT2/EXT3/EXT4 Filesystem library for Golang (13 forks/40 stargazers/Apache-2.0)
<dostoyevsky2> fs, _ := gexto.NewFileSystem("file.ext4"); f, _ := fs.Create("/test"); f.Write([]byte("hello world") // done
<ddevault> I had something working based on libvterm yesterday, but the code was a mess and it had issues
<ddevault> I need to do some refactoring and then I'll try again, but I'm probably going to evaluate libtsm as well
<heat> helloworld ext drivers are worlds apart from a real production fs implementation
<heat> lwext4 is a mid point between real world and hello world
node1 has joined #osdev
Matt|home has joined #osdev
<node1> Do you able to figure out what cause the issue?
SGautam has quit [Quit: Connection closed for inactivity]
wlemuel has quit [Ping timeout: 256 seconds]
bauen1 has joined #osdev
<zid> There, skethcy repair affected
<zid> it's going to survive until approximately... tomorrow?
Left_Turn has joined #osdev
gog has quit [Remote host closed the connection]
gog has joined #osdev
gog has quit [Remote host closed the connection]
gog has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
gog has quit [Client Quit]
erai has joined #osdev
xenos1984 has joined #osdev
node1 has quit [Quit: Client closed]
node1 has joined #osdev
node1 has quit [Ping timeout: 250 seconds]
MrCryo has quit [Quit: MrCryo]
MrCryo has joined #osdev
MrCryo has quit [Remote host closed the connection]
node1 has joined #osdev
MrCryo has joined #osdev
node1 has quit [Quit: Client closed]
node1 has joined #osdev
gog has joined #osdev
bliminse has quit [Quit: leaving]
bliminse has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
MrCryo has quit [Quit: MrCryo]
MrCryo has joined #osdev
MrCryo has quit [Remote host closed the connection]
node1 has quit [Quit: Client closed]
edr has quit [Quit: Leaving]
gorgonical has joined #osdev
<gorgonical> My partner got a new m2 macbook air and for the first time in a long time I have specs envy
<nikolar> why
<nikolar> what do you have
<zid> m1, but it's a garand not an apple
<nikolapdp> i'd prefer the garand
<gorgonical> a 10-year old tower. 16gb ddr3 and an old i5-4590 haswell
<zid> oof year that's worse than my 2011
<gorgonical> my laptop is irrelevant, it's just an old x230 thinkpad
<zid> factorio would not be ideal on that
<gorgonical> Yeah I haven't made any significant upgrades in a looong time. I upgraded my graphics card to a low-end of middle-tier recently with a rx-6600xt
<gorgonical> games are slow not because of the graphics but just because my memory bandwidth sucks these days
<zid> plus you know, the crappy single thread perf
<gorgonical> yep
<zid> so lots of latency of getting a frame prepped
<gorgonical> nvtop shows that the gpu itself is never maxed on memory or utilization
<zid> I ran a similar chip with quad channel and a 4.5GHz clock, so running it dual with 3.7 must be kinda pants
<gorgonical> Oh yeah and I have this fucked up memory layout because I got a bad ram stick
<zid> oh god is it in single channel?
<gorgonical> so it's actually 4-4-8GB. Oh my god man this is so shit
<gorgonical> lol
<gorgonical> according to lshw its 0-4-8-4 GB arrangement in the banks
<zid> You at best, have 8GB of dual and 8GB of single
<gorgonical> jesus this situation is worse than I thought
<zid> something tells me you won't be breaking the 60GB/s my machine did
<zid> if you mail me a self addressed envelope I will send you my 1066MHz urdimms with thermal sensors :P
<gorgonical> I am long overdue for a new desktop. I have been putting it off because of school but I am finishing the dissertation soon
<gorgonical> Part of my aesthetic desire is a 90s style sleeper beige case
<nikolapdp> good choice
<zid> noo you need a hermetically sealed glass cube
<zid> the internet said so
<gorgonical> They are hard to find, but I think I could also get a sun ultra workstation
<gorgonical> That would also look pretty sick
<nikolapdp> you can give me the innards :P
<zid> everywhere on ebay
<bslsk05> ​www.ebay.co.uk: Retro Pc Case With Free Dust | eBay
<nikolapdp> > with free dust
<zid> :D
<gorgonical> I have been considering if I can make a "desktop" actually work. Like literally on my desk
<zid> Yu can just put it sideways behind the monitor these days
<gorgonical> Oh that's true, yeah
<nikolapdp> or under the monitor
<zid> how will you fit all your bays
<zid> in a sideways case
<gorgonical> The sun cases don't have any front-facing bays. and I don't use any anyways
<bslsk05> ​www.ebay.co.uk: Stone Computers Slim Micro ATX PC Case. HDD DVD Floppy Drive USB. 440x340x100mm | eBay
<gorgonical> I have open slots on my case right now because I used to have shit in them I removed
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<zid> https://www.ebay.co.uk/itm/186431419633 man, this is expensive
<bslsk05> ​www.ebay.co.uk: Quantex MB-8500TVX-A Socket 7 Baby AT Case PC Beige Computer Tower Parts/Repair | eBay
<nikolapdp> zid he knows what he has
<zid> oh it has a pc in it
<zid> ppro 166
<nikolapdp> ah nice
<gorgonical> Thats what I have now lol
<gorgonical> Sans doors and most of the actual bay covers
<zid> too many fans
<gorgonical> thanks zid. pushed me over the edge and I bought a part list I've been lazily working over
<gorgonical> I just needed someone to point out how dire the situation really was
<zid> 7800x3d right?
<gorgonical> I wish
<gorgonical> It was a modest build. ryzen 5 7600x
<nikolapdp> not half bad
<nikolapdp> howmuch ram
<gorgonical> 32Gb of 6000mhz
<zid> The 600x's are my favourite
<zid> (ignoring the 3d)
<gorgonical> I'm just gonna re-use all my current hdds and whatever. Maybe I'll install the OS to the SSD this time for speed
<zid> shpeeed
<gorgonical> I have a horrifying pastiche of storage, too: several HDDs, an older SSD, a newer NVMe stick
<zid> ye I have two mechs, two ssds, one sata one nvme
<zid> bad commas, deal with it *shades*
<nikolapdp> heh i am on 64gb 6000mt/s
<zid> I am on
<zid> 1800MHz?
<zid> this ram is shit
<nikolapdp> lol
<gorgonical> lol
<zid> It does mean I get 1:1 fsb though
<zid> higher or lower incurs a penalty
<nikolapdp> heh
SGautam has joined #osdev
xvmt has joined #osdev
<gorgonical> nobody even reports fsb speeds anymore
<zid> yea because it's not a real bus anymore
<zid> the memory controller is integral
<gorgonical> but they still have an internal clockrate at this point
<gorgonical> shouldn't it be reported as part of the chipset specs?
<zid> but AMD has a stupid memory architecture where the cache and memory controller and ram all need tuning
<zid> The FSB (infinity fabric) runs at 1800MHz no matter what
<SGautam> I've a bit of a weird question but this is probably the best place to ask
<zid> cache and ram then run at different speeds inbetween those
<zid> so there'sa bunch of reclocking going on inbetween to get the data through
<SGautam> When you look at the screen of a MacBook or an HP X360, it feels way too "sharp, and crisp" for some reason. The screen is also very "glossy", and looks quite bright.
<SGautam> I've tried to search for monitors that replicate that effect but most monitors just look dull in comparison like the screen appears more "matte" than "glossy".
<heat> that's because retina screens are OP
<zid> yes, those are typically just the options
<zid> matte or reflective finish
<gorgonical> yeah you want like a super gloss oled probably
<gorgonical> to get that hyperreal look on the screen
<nikolapdp> which are not cheap exactly
<gorgonical> ^ that
<zid> I've always hated the matte laptop screens
<zid> (and just, cheap LCDs in general)
<gorgonical> explain why this motherboard costs $680
<gorgonical> what the fuck
<bslsk05> ​pcpartpicker.com: Attention Required! | Cloudflare
<zid> price gouging, all mobos cost that now
<zid> especially because all the voltage regulation is now outside of the cpu
<zid> but mostly price gouging
<gorgonical> I guess the 3 pci16 slots is cool
<nikolapdp> yeah they are all expensive
<zid> my sandy had internal voltage regulation so you just fed it 1V and it did it all itself
<nikolapdp> bloody cloudflare captcha
<nikolapdp> won't let me open the stupid link
<nikolapdp> finally, after like 20 tries
<heat> lots of pcie lanes, 192GB dram support, gaming themed
<zid> now they have external regulation and they're all set up to talk to external vrms and have tau timers for how long they take for the current to ramp up etc for OCing
<zid> it's annoyying
<gorgonical> we still do that SLI/crossfire thing?
<zid> nikolapdp: serbia must be all bots, I didn't even get one
<zid> no
<zid> sli is long dead
<dostoyevsky2> nikolapdp: Are you sure you are not a robot?
<gorgonical> I remember it from like 15 years ago lol
<heat> nope
<nikolapdp> i am pretty sure i am made of meat, yes
<zid> and modern cpus don't even give you that many lanes
<heat> SLI is ded and has been for a few years
<zid> (intel sold only 16 lane cpus between 2014 and 2022)
<gorgonical> I did sli on dual 7600GTs back in the day and I thought I was hot shit
<nikolapdp> gorgonical: that's basically dead for all intents and purposes
<zid> but full sized slots are nice
<zid> the only thing that gives pci-e lanes these days are high end amd cpus, and platinum xeons ($$$)
<gorgonical> I do remember wondering how in the world that little bridge pcb could possibly "tie" the GPUs together
<zid> 13900k, flagship cpu, 20 lanes
<zid> my 2011 cpu: 40
<nikolapdp> it basically did some synchronization and some small amount of data exchange no
<zid> THey keep doubling the speed and halving the lanes to compensate, fucking useless for anything other than running a single gpu and no storage
<Ermine> crossfire
<zid> The price of a pci-e lane splitter is $300
<SGautam> Why did SLI die?
<Ermine> I guess keeping two gpus in coherent state is way too hard
<SGautam> I remember the GTX 690
<SGautam> Two GTX 680s in parallel
<zid> It's not very useful
<nikolapdp> it just was way too unstable for the little speed up it brought
<zid> It'snot that it's 'unstable' per se
<zid> but it only parallelizes *some* things, so there's a lot of shortcuts you need to take and prove are viable if you actually want a decent noticeable performance boost
xenos1984 has quit [Read error: Connection reset by peer]
<Ermine> and you don't get x2 performance
<nikolapdp> it juts wasn't good
<zid> Like, if all you're doing is running boring geometry with no special effects, you can get almost the full 2x, each gpu just renders every other line
<zid> but if you need to do a full screen post processing effect, like blur? depth of field? etc
<heat> 1v1 me i have quad-SLI gtx 780s
<heat> with the era appropriate i7-4770k
<zid> now both gpus need both halves of the frame
<zid> so you either get glitchy blur or you slow it down
<zid> and various games/drivers took various approaches
gbowne1 has joined #osdev
<gorgonical> I'm pleased to see that there isn't this enormous jump between the 7600x and the top of the am5 socket in single-threaded speed
<zid> single thread perf is dead, everything is a webserver cpu now
<nikolapdp> yeah, my 7700x is like 100mhz faster
<zid> intel and amd's biggest customers by *far* are ec2 and shit, so that's where all the dev effort goes
<zid> how many vms can it run, how many microservices can it run
<nikolapdp> to be fair, i wouldn't expect much single core improvement if that wasn't the case
<nikolapdp> much easier to just cram more cores and call it a day
<zid> I'd expect a lot more than we got
<zid> intel don't even *sell* fast skus, despite being able to make them
<zid> because they don't even have the designs made up
<nikolapdp> they've given up on hyperthreading :)
<nikolapdp> so enjoy your bagillion slow cores and 2 fast ones
<zid> wait, they got rid of HT?
<zid> I can understand if they did, but this is the first I've heard
<nikolapdp> yeah, next gen
<nikolar> so i've heard at least
<zid> makes sense I guess, they've got zillions of cores anyway, and it's insecure AF
<nikolapdp> yeah, except that most of the skus get like 2 big cores and 10 small cores or whatever
<zid> cool, I can disable the small cores
<zid> and get a real cpu
<nikolapdp> where if you had like two more fast cores, you could replace 10 small cores
<nikolapdp> like it's silly
<zid> the 10 small cores can be extra die area for more cooling
<zid> honestly the main issue I'm having with modern cpus is hotspotting
<zid> the transistors are so small that if anything at all happens, that little microscopic spec hits 100C
<zid> it can only 'broadcast' the heat to cool it out to a 1mm^2 spot above it, in a cone shape, then the heatsink etc has to pick it up from there etc
<zid> lapping is back boys
<nikolapdp> lapping?
<zid> people sell rigid billet aluminium mounting kits to keep the mounting pressure even so there isn't micron level warping on the ihs
<zid> nikolapdp: how you polish glass
<zid> people used to do it for shits and giggles in the 2000s, but now its actually required
<zid> else your cpu gets to 100C and your heatsink gets to 40C
<nikolapdp> shiny
<zid> This is what a high end cooler looked like in 2010
<zid> now they're all machine finished
<zid> The former actually cools better, but you can't get the heat into it from a cpu
<gorgonical> what's the best thermal paste these days
<gorgonical> I used to buy arctic silver
<zid> they're all the same shit more or less
<zid> as5 is still great
<gorgonical> I have a tube that's probably a decade old so I reckon it's no good now
<zid> if you don't wanna do the new breed: low melting point alalgums
<zid> amalgams
<gorgonical> looks dangerous
<nikolapdp> yeah don't do that unless you know what you're doing
<zid> yea it's sketch
<zid> even if you know what you're doing
<nikolapdp> like it will eat right through aluminium
<nikolapdp> you need pure copper heat sinks
<heat> you need pure copper nikolapdp sinks
<nikolapdp> also can't let it leak onto the motherboard
<zid> It's more the fact that it's highly conductive
<zid> and liquid
<nikolapdp> and checmicaD
<nikolapdp> D
<zid> and what
<nikolapdp> *and chemically active with most things on your motherboard
<zid> meh fibreglass is immune
<zid> good enough for me, but if it touches the mobo it's toast electrically so who cares
<nikolapdp> sure, your socket isn't
<zid> shorting pins in a socket is a death sentence, those pins can deliver 100A
<zid> or at least, the VRMs can, so any short effectively has infinite current, until it melts
<mjg> you konow, there is something oddly pleasing about headers in https://github.com/torvalds/linux/blob/master/kernel/trace/ring_buffer.c
<bslsk05> ​github.com: linux/kernel/trace/ring_buffer.c at master · torvalds/linux · GitHub
<mjg> just sayin'
<zid> That's what a shorted pin looks like :P
<heat> downvote
<gorgonical> oh wait I have a tube of arctic silver ceramique 2
<gorgonical> because I'm a peasant
<zid> I finally bought a new tube of as5
xenos1984 has joined #osdev
<nikolapdp> lol i have a full tube from my recent build, i'd lend it to you if it didn't cost more to mail it than buying new :)
<zid> after the one I bought in 2007 ran out
<zid> glad I don't have a threadripper
<zid> those guys need 2 tubes per
<gorgonical> They are ridiculously huge chips
<zid> That's why they sell as5 in tubs too
<kof673> re: headers i would not do that, but alphabetize and "levels of subdirs"/project it is from
Matt|home has quit [Quit: Leaving]
Yoofie has quit [Read error: Connection reset by peer]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 268 seconds]
<CompanionCube> zid: is 1800mhz ddr4 even a thing? isn't it just that 3600mhz is the double data rate of 1800mhz?
<mcrod> hi
<mcrod> i’m getting a new mobo i can’t take this anymore
<zid> 3600mt
<CompanionCube> ah yes
<CompanionCube> but that's not actually shit ram, though?
<zid> it is compared to 6000MT
<zid> It's barely faster than my ddr3 was
<zid> (and is actually slower if you account for the fact I was running the ddr3 in quad channel and was a sharper kit re latencies)
goliath has quit [Quit: SIGSEGV]
<CompanionCube> mmm, not sure that it's all that bad, more so when it's not like you could just slot in the 6000
<zid> I think ddr4 only goes up to 5000 ish anyway
<zid> and it's a weird low volume one off part
<zid> I am 18/25ths of the way to top speed of ddr4 :P
<FreeFull> My DDR4 runs at 3200MHz
<FreeFull> Which seems to be the max that DDR4 supports
<FreeFull> AFAIK DDR5 goes a lot faster though
<nikolapdp> i am pretty sure ddr4 can go up to at least 3600
<FreeFull> Oh, yeah
<FreeFull> I was looking at the list of standards
<zid> I literally just said
<zid> the fastest ddr5 is 5000
<zid> the next fastest is only like 4400 though, and corsair don't stock the 5000 anymore
<zid> I think it was a very limited run
<CompanionCube> apparently it goes DDR5-4000 to DDR5-8000
<FreeFull> I think lshw lies, it says MHz when it's actually MT/s
<zid> yes
<zid> almost nobody gives you the real mhz
<zid> only like, cpuz, in one panel
<FreeFull> I wonder how DDR5-5000 compares cost-wise to DDR4-4800
<zid> not much in it
wlemuel has joined #osdev
wlemuel has quit [Read error: Connection reset by peer]
dude12312414 has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
teardown has quit [Ping timeout: 260 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
spareproject has quit [Remote host closed the connection]
op has joined #osdev
op has quit [Remote host closed the connection]
<mcrod> test
<mcrod> hi
<nikolapdp> hello mcrod
<Mondenkind> didn't work sofrry
<mcrod> yes it did son
spareproject has joined #osdev
<mcrod> hm
<mcrod> irccloud directly isn't too bad