Search logs:

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

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

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

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


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

Saturday, 11 March 2023

00:19:00 <zid> heat: did you still want new bench.cpp running
00:22:00 <heat> yeah
00:24:00 <zid> what does the final /%d mean
00:24:00 <zid> I thought it might be power of two alignments or something until it said 10
00:25:00 <heat> it's copy-size/misalignment
00:25:00 <zid> oh so it is alignments, but you just picked random ass numbers
00:25:00 <heat> it has a bunch of normal powers of 2 plus some rando numbers I randomly added
00:25:00 <zid> 0 1 4 8 10
00:26:00 <heat> 10 is a bit of an outlier at the only non power of 2
00:26:00 <heat> but idgaf
00:42:00 <zid> https://gist.github.com/zid/37741bfa625eab3cb926e33bb79b6e1c
00:42:00 <bslsk05> ​gist.github.com: gist:37741bfa625eab3cb926e33bb79b6e1c · GitHub
00:50:00 <zid> That might need sorting by column 3,1,2 order
00:50:00 <zid> after split on /
00:53:00 <heat> thank you
00:53:00 <heat> im even more confused
00:53:00 <zid> nice
00:53:00 <heat> i think your vm is fucking with the results
00:53:00 <heat> but this looks legit
00:53:00 <zid> I think your face is a mess
00:53:00 <zid> let's not throw stones
00:53:00 <heat> fuk u
00:54:00 <heat> but seriously that sharp-ass 4KiB rep movsb stuff is pretty bizarre
00:54:00 <heat> which completely disappeared it seems
00:54:00 <zid> new g++ who this
00:54:00 <mjg> ?
00:55:00 <heat> question mark
00:55:00 <mjg> watching some Lost?
00:55:00 <zid> we didn't say pessimal so he doesn't know what's happening
00:55:00 <mjg> millenial show, you might have missed it
00:55:00 <heat> PESSIMAL
00:55:00 <mjg> OH OK
00:56:00 <heat> PESSIMAL UNIX GEEZER OPENBSD FUCKERY SOLARIS SUNOS
00:56:00 <heat> but yeah it seems that the optimal alignment for ERMS really is 32 byte
00:57:00 <heat> also seems that glibc memcpy gets spanked by rep movsb here, which is funny
00:57:00 <mjg> what size
00:57:00 <mjg> doc manual says to use it for > 2KB
00:57:00 <mjg> maybe they use it for 2KB + 1 :p
00:58:00 <heat> IIRC I googled around yesterday and AMD patched glibc to use it for >L1 cache?
00:58:00 <heat> something like that
00:59:00 <heat> anyway i'm happy with these results, these make sense. the other ones absolutely don't
01:00:00 <heat> the funny bit here is that no alignment seems to have an impact except 32
01:00:00 <heat> there's no point in 16-byte, etc
01:01:00 <heat> i guess their ERMS only does AVX on 32-byte aligned addresses? sounds silly like that
01:02:00 <heat> or maybe there's some sort of slow path
01:05:00 <mjg> i'm confidnet i had seen improvement frm going anything not 16 to 16
01:05:00 <mjg> i don't remembert which cpu though
01:05:00 <mjg> at the time it could have bveen anything broadwell and older
01:05:00 <mjg> and probably ta least one amd
01:08:00 <heat> yeah idk, see the results in the gist
01:09:00 <heat> plus https://gist.github.com/heatd/165b70a4e0b75e815b82d723c01637dc for the bench
01:09:00 <bslsk05> ​gist.github.com: bench3.cpp · GitHub
07:23:00 <geist> you know, retro thing that might be interesting to figure out after the fact: what sort of '3D' capability did a S3 VirGE actually come with?
07:24:00 <geist> at the time they were known for being not really 3d, and was a real bargain bin cheapo card, but there was probably *some* sort of capability
07:24:00 <geist> like some super limited triangle blitting capability
07:27:00 <geist> at least wikipedia seems to indicate it had some decent amount of support for some of the basic fixed function stuff, jsut wans't very fast
07:34:00 <klys> geist do you have an early pci system?
07:34:00 <geist> yeah i have a few
07:35:00 <klys> runs a kernel?
07:35:00 <geist> yes.... though am i signing myself up for work? :)
07:36:00 <klys> naw just following up. I guess svgalib was interesting when it came to cards like this
07:36:00 <geist> oh oh i see
07:36:00 <geist> yeah. i remember s3 trios and s3 virges being the defacto cheapo card chipset for a while
07:37:00 <geist> like the Dell Dimension P90 i got in 1995 and took to college was a Number 9 card with a S3 in it
07:38:00 <geist> https://en.wikipedia.org/wiki/Number_Nine_Visual_Technology#Number_Nine_Video_Cards_using_S3_Graphics_processors ah yeah, was a GXE I believe
07:38:00 <klys> https://github.com/ryanmcgrath/svgalib-1/blob/master/src/drivers/s3.c
07:38:00 <bslsk05> ​github.com: svgalib-1/s3.c at master · ryanmcgrath/svgalib-1 · GitHub
07:38:00 <geist> goddamnit why do i waste brain cells remembering precisely the video card i had on one of my computers in 1995
07:38:00 <geist> cripes.
07:41:00 <klys> aww line 1595 says it can't handle 1152x864
07:41:00 <geist> oh manm i remem,ber having a 17" that could do that
07:42:00 <geist> if you had a good DAC. otherwise it looked fuzzy
07:42:00 <klys> yeah it does if your dac is old
07:42:00 <geist> i remember paying good money for a matrox millenium II (still have it) because they were known to have good solid DACs at the time
07:42:00 <geist> and they did
07:43:00 <geist> plus you could upgrade it to 8MB
07:46:00 <klys> wasted my evening installing blender 3.5-beta on w7pro64
07:47:00 <geist> word. that sounds like solid entry to the wasted evening doing silly computer shit list
07:48:00 <klys> hbu
12:38:00 <brunothedev> finally: https://github.com/Slapparoo/MultibootBasicGraphics/blob/master/src/vga.cpp#L47
12:38:00 <bslsk05> ​github.com: MultibootBasicGraphics/vga.cpp at master · Slapparoo/MultibootBasicGraphics · GitHub
13:12:00 <ddevault> RFC https://paste.sr.ht/~sircmpwn/6968dff9e745703caadea7cc5a5884d932e4a0ab
13:12:00 <bslsk05> ​paste.sr.ht: paste.txt — paste.sr.ht
13:12:00 <ddevault> problem: I/O through a proxy like this is gon' be pretty slow
13:17:00 <mrvn> ddevault: I simplified that a lot. I don't share memory. So "io::read(buf)" would loose access to "buf" until read returns. And then I though removing and returning "buf" is stupid, lets have read just allocate the buffer itself and return it, safes half the INVLPG.
13:19:00 <mrvn> driver: alloc pages (map), perform IO, send pages back, system: driver page table are active, unmap buf, switch to PROC A page table, map buf, wake up PROC A.
13:20:00 <ddevault> so there's an extra copy in there?
13:21:00 <mrvn> ddevault: no, the pages are transfered. There is one INVLPG in there.
13:21:00 <ddevault> or the reader does not provide a buffer, it just gets one full of the data it wanted; which implies heap thrashing and/or a non-POSIX-like interface?
13:21:00 <mrvn> totally non-POSIX
13:22:00 <mrvn> What is your worry with head trashing? It's 47-55 bit address space.
13:22:00 <mrvn> s/head/heap/
13:24:00 <ddevault> just lots of allocations
13:24:00 <ddevault> since there would not be buffer reuse?
13:31:00 <mrvn> ddevault: no.
13:33:00 <mrvn> If you have shared memory you should look into io_uring. You could use a ring of buffers too, not just commands.
13:33:00 <ddevault> yeah I'm familiar with it and it's something I want to play with in terms of design
13:33:00 <ddevault> but for now I want something which balances simplicity with performance/utility
13:33:00 <mrvn> Your proxy would turn into a uring object instead.
13:34:00 <mrvn> Are you doing page table separation for the kernel?
13:34:00 <ddevault> no, but I might
13:35:00 <mrvn> Do you map all physical memory somewhere in kernel space?
13:35:00 <ddevault> yes
13:35:00 <mrvn> then "look up page caps
13:35:00 <mrvn> " would also translate user pages to the phys mapped pages.
13:36:00 <ddevault> the kernel is more or less uninvolved in this transaction
13:36:00 <ddevault> IPC calls and replies visit the kernel, but it just copies registers over (and potentially capabilities)
13:37:00 <mrvn> io::read(buf) ==> user pages -> phys io_vec ==> io::read{io_vec}(vec)
13:37:00 <mrvn> and you probably need an allocation in there to create the io_vec.
13:38:00 <mrvn> I assume you don't want your driver to access the users page table.
13:38:00 <ddevault> no, but it gets the relevant page capabilities and can map them into its own address space (shared mem)
13:39:00 <mrvn> Urgs, that will be slow. (just like my code)
13:39:00 <ddevault> https://git.sr.ht/~sircmpwn/mercury/tree/70eff4deb57f7f7e07fe91654c8a56d6c3d6d567/item/cmd/usrinit/main.ha#L34
13:39:00 <bslsk05> ​git.sr.ht: ~sircmpwn/mercury: cmd/usrinit/main.ha - sourcehut git
13:39:00 <ddevault> something like this
13:40:00 <ddevault> note: destroying the pages destroys only this process's copy of them, and unmaps them in the process
13:40:00 <mrvn> I guess you then have all the disadvantages of separate page tables like I have and none of the advantages of not having shared memory.
13:40:00 <ddevault> not sure I follow the consequences of the presence or absence of shared memory in your explanation
13:41:00 <ddevault> note that the reading process blocks during the operation
13:41:00 <mrvn> ddevault: you have to lock the vm structures and refcount how many processes have the page mapped
13:41:00 <mrvn> And with threads you have one thread writing to your memory while the driver reads or writes.
13:43:00 <ddevault> hm
13:44:00 <mrvn> Note that when you have caches then you have to lock down the "buf" pages, unmap them, do a shootdown to other cores, setup COW form the cached pages, map the pages, return.
13:44:00 <ddevault> yeah
13:44:00 <mrvn> And the unmap might have to be across multiple processes if the page is mmaped in multiple processes.
13:45:00 <mrvn> shared memory is hard. :)
13:47:00 <ddevault> lots to think about, thanks
13:47:00 <mrvn> One thing I'm considering is to have "read()" return a read-only buffer. If you want to modify it and write it back you have to copy it. Internally the process just gets the pages from the cache mapped. That would be a very simple shared memory.
13:49:00 <mrvn> Maybe with a extra flag on read "mutable = false/true"
15:15:00 <mjg> > During this debugging session, we saw quite a few examples of coding mistakes that fall in to the category of fairly basic and easily avoided textbook bugs.
15:15:00 <mjg> hue
15:15:00 <mjg> that is my experience with obsd
15:15:00 <mjg> that's from https://research.exoticsilicon.com/articles/unbreaking_utf8_on_the_console
15:15:00 <bslsk05> ​research.exoticsilicon.com: ExoticSilicon.com - fixing cringeworthy bugs in the OpenBSD console code
15:22:00 <nortti> does anyone else notice excessive CPU usage from the favicon on that page?
15:23:00 <nortti> for me (firefox, linux, i3-2370M) it ends up pegging a core iff the favicon is visible, regardless of whether the tab is loaded or not
15:23:00 <heat> mjg, brb let me just modify my compiler to generate slightly less rop gadgets in exchange for horrible codegen
18:44:00 <mjg> heat: check out the OPTIMAL compiler https://discourse.llvm.org/t/avoidable-overhead-from-threading-by-default/69160
18:44:00 <bslsk05> ​discourse.llvm.org: Avoidable overhead from threading by default - LLD - LLVM Discussion Forums
18:46:00 <heat> is buildkernel the only bench you have
18:47:00 <mjg> no, i also have package build
18:47:00 <mjg> also you ignored the variety of kernels i build!
18:47:00 <heat> "I would bench linking Chrome or something else of that sort but don’t have sensible means to do it"
18:48:00 <heat> this 100% proves someone is holding you hostage and making you buildkernel over and over
18:48:00 <mjg> have you tried linking chrome on purpose
18:48:00 <mjg> liek fuck me dude
18:49:00 <heat> why?
18:49:00 <heat> you have a fucking 96T machine
18:49:00 <mjg> there is 8 layers of magic before you get to the command
18:49:00 <heat> boohoo
18:49:00 <heat> cry
18:49:00 <mjg> i am
18:49:00 <heat> enjoy the magic of repo and gn
18:49:00 <mjg> bitch plz
18:49:00 <heat> its honestly not that hard
18:50:00 <mjg> i can't be arsed to get all the deps and whatnot so that it compiles on uuubuntu
18:50:00 <mjg> if they have anyone working on the linker, perhaps that person has means to bench and that would be ze bestesterest
18:51:00 <heat> ping maskray maybe
18:51:00 <mjg> i'll wait few days and we will see who bites
18:51:00 <heat> but srsly it's not that hard
18:51:00 <mjg> i don't know any maskray
18:51:00 <heat> it's the main lld guy, google
18:51:00 <mjg> i'm not claiming difficulty, just annoyrance
18:51:00 <heat> also was the one who added RELR support to rtld
18:52:00 <heat> the really fucking depressing bit is all the compute it needs to actually build
18:52:00 <mjg> also how on earth are you doing webdev and snizzing at benching with kernel build
18:52:00 <mjg> that's liek the age old way mate
18:52:00 <mjg> kids today!!
18:53:00 <heat> doing whatdev now
18:53:00 <mjg> erm, osdev!
18:53:00 <mjg> that was uncalled for
18:53:00 <mjg> apologies
18:53:00 <heat> because a kernel build is a very specific piece of software unlike other stuff
18:54:00 <heat> it's like doing an LTO build with the kernel and figuring out there's not much perf gain in it
18:54:00 <heat> and then you do it on a heavy C++/Rust program and you get big gains
18:56:00 <mjg> btw guess where is over 77% of the time spent
18:56:00 <mjg> when lld spawns 96 threads for fuck all reason
18:56:00 <heat> scheduling in/out
18:56:00 <mjg> 77.61% ld.lld-15 [kernel.vmlinux] [k] native_queued_spin_lock_slowpath ◆
18:56:00 <heat> aw
18:56:00 <mjg> but don' tell inux devs
18:56:00 <heat> for what lock?
18:58:00 <mjg> unclear as is, it comes from __clone3 so most likely tasklist_lock
18:58:00 <heat> ok, that's ok then
18:58:00 <mjg> - 73.78% 73.61% ld.lld-15 [kernel.vmlinux] [k] native_queued_spin_lock_slowpath
18:58:00 <mjg> 73.46% __clone3 (inlined)
18:59:00 <mjg> well it is less ok than you think, i happen to know this bit does not scale very well
18:59:00 <heat> unless you want RCU there
18:59:00 <mjg> to the point were freebsd(!) is doing better
18:59:00 <mjg> it totally does not have to globally lock anything, rcu or not
18:59:00 <mjg> the current state is an artifact of the implmentation
18:59:00 <heat> so how do you add your task to the list of tasks
19:00:00 <mjg> for one you may note you don't need a global list
19:00:00 <heat> sure you do
19:00:00 <mjg> nope, but it doessimply stuff vs shitters like ptrace
19:00:00 <heat> "list tasks" becomes a lot harder if you need to traverse a process tree
19:01:00 <mjg> see, they already do it in an incredibly racy manner
19:01:00 <mjg> you may as well have a bunch of lists which you leap frog
19:03:00 <heat> this is why you should test chrome: "In the default build configuration (no debug information), (circa Dec 2021) there are 8905295 sections (not counting the NULL section at index zero), 3325621 discarded COMDAT sections, 1372104 input sections (mostly SHT_PROGBITS, not counting SHT_RELA/SHT_SYMTAB or discarded COMDAT sections)."
19:03:00 <mjg> i did note chrome will need to be tested
19:03:00 <gog> ??
19:03:00 <heat> QUESTION MARK QUESTION MARK
19:03:00 <mjg> gog: the usual
19:03:00 <gog> hi
19:04:00 <heat> H I
19:04:00 <mjg> gog: have *you* seen Lost?
19:04:00 <gog> i haven't
19:04:00 <mjg> "questionmark" is one of the episodes over there
19:04:00 <gog> neat
19:04:00 <heat> gog: have *you* seen mjg?
19:04:00 <gog> yes
19:04:00 <heat> i lost him
19:04:00 <gog> he's right there
19:04:00 <mjg> *don't* watch tho
19:04:00 <heat> where
19:04:00 * gog points
19:04:00 * mjg hides
19:04:00 <heat> rude
19:04:00 <gog> where'd he go
19:04:00 * mjg laughs quitely
19:05:00 <gog> what's cheap hosting
19:05:00 <gog> i'm making a website that will serve as my portfolio
19:05:00 <heat> https://www.businessinsider.com/james-comey-white-house-curtains-trump-2017-5
19:05:00 <bslsk05> ​www.businessinsider.com: James Comey Tried to Blend in With White House Curtains to Avoid Trump
19:05:00 <heat> "mjg tried to blend in with #osdev curtains to avoid heat"
19:05:00 <mjg> heat: do you know who Chuck Testa is?
19:05:00 <heat> gog, github
19:06:00 <gog> i need actual hosting
19:06:00 <heat> mjg, no
19:06:00 <heat> gog, cloudflare
19:06:00 <gog> hwo cheap is it
19:06:00 <gog> does it host docker images
19:06:00 <heat> oh nah not that
19:06:00 <mjg> https://www.youtube.com/watch?v=LJP1DphOWPs
19:06:00 <bslsk05> ​www.youtube.com: Official Ojai Valley Taxidermy TV Commercial - YouTube
19:06:00 <gog> the portfolio itself is going to be a web application which is part of the portfolio
19:07:00 <gog> probably overkill
19:07:00 <heat> why is a fucking docker image in your portfolio mang
19:07:00 <gog> to prove i know how to do aspnetcore stuff
19:07:00 <heat> i thought you wanted just fucking html
19:07:00 <gog> nah it's gonna be stupidly complex
19:07:00 <gog> for no reason other than show off
19:07:00 <heat> can I detract you from this
19:08:00 <gog> idk maybe
19:08:00 <heat> ok good, please dont
19:08:00 <heat> find another way
19:08:00 <gog> you're no fun
19:09:00 <heat> gcp storage buckets and or aws s3 are ok-ish I think if you really need that
19:09:00 <heat> or cheeky git lfs
19:09:00 <heat> oh or github artifacts
19:13:00 <gog> ok
19:32:00 <Ermine> gog: may I pet you
19:32:00 <gog> yes
19:32:00 <lav> hi gog and heat :3
19:35:00 * gog patpatpatpat lav
19:35:00 * lav uwu
19:35:00 <lav> speaking of hosting i just got hosting uwu
19:36:00 <lav> gog: apparently oracle has free vps if you're willing to use oracle linu
19:36:00 <lav> x
19:39:00 <heat> HARD SKIP
19:39:00 <heat> hi lav
19:40:00 <lav> hii
19:42:00 <gog> lav
19:43:00 <gog> i looked into it but they wanted a credit card number "just in case"
19:43:00 <gog> and i don't trust like that
19:43:00 <lav> yeah :3
19:43:00 <gog> colon threeeeeeeeeeee
19:44:00 <lav> meow
19:44:00 <gog> :3
19:47:00 <nikolar> Ɛ:
19:47:00 <lav> gog: http://vampires.gay/
19:47:00 <bslsk05> ​vampires.gay: vampires dot gay
19:49:00 <gog> owo
19:49:00 <heat> gog, they'll always ask for a cc
19:49:00 <heat> no way around it really
19:53:00 <gog> i refuse to pay for anything ever
19:53:00 <gog> my taxes should cover web hosting
19:54:00 <heat> when marx talked about labour he meant computational labour
19:54:00 <heat> communal compute
19:56:00 <gog> yes
19:56:00 <gog> social computing
19:56:00 <gog> computism
19:57:00 <gog> how many apple watches is a smart coat worth
19:57:00 <gog> etc
20:06:00 * Ermine pets gog
20:31:00 <geist> hello fronds
20:31:00 <geist> welcoe to the weekend
20:35:00 <nikolar> Hello geist
20:44:00 <nur> hello geist
20:44:00 <nur> it's been weekend for quite a while for me now
20:48:00 <geist> yes but i have nw declared it a weekend
20:50:00 <GeDaMo> US-ians, clocks go forward this weekend
20:51:00 <ilovethinking> does anyone here run arm
20:51:00 <ilovethinking> please
20:51:00 <ilovethinking> i can;t fucking take it anymore
20:51:00 <ilovethinking> as much as i love osdev i can't generate a grub image
20:51:00 <ilovethinking> there has to be someone with arm succeeding at it
20:52:00 <ilovethinking> i mean i would just use -kernel but it doesnt support mb2
20:54:00 <mrvn> for arm you wouldn't use multiboot
20:54:00 <mrvn> nor grub
20:56:00 <geist> ilovethinking: that's correct. lets go back to the start. what are you trying to do here?
20:56:00 <geist> most likely it's actually simpler than you think on ARM, there's just less stuff you generally need to do, doubleplus so on qemu
20:57:00 <geist> notably: are you doing arm32 or arm64? (not much difference, but it changes some out of answers)
21:00:00 <ilovethinking> nonono
21:01:00 <ilovethinking> i run an arm machine
21:01:00 <geist> okay
21:01:00 <ilovethinking> it's jsut that i can't use grub-mkrescue
21:01:00 <ilovethinking> to make my x86_64 os image
21:01:00 <geist> that is correct
21:02:00 <geist> grub-mkrescue is a 'cheat' in that it assumes the target is the same machine
21:02:00 <geist> so you have to do it the manual way, which should be findable
21:02:00 <geist> but basically forget that that exists, and then look for the directions to manually building a grub image
21:02:00 <ilovethinking> i tried making a vm but they just don;t wor on utm (or are too slow to use, took 5 minutes to open a terminal), i tried compiling it with a cc but that also didn't work
21:02:00 <geist> IIRC it's not that complicated, especilal since you're building one for one purpose. it shouldn't be more than a few commands
21:03:00 <geist> if you want to cross compile grub you can probably apt-get the x86_64 toolchain
21:03:00 <mrvn> why don't you just but grml on x86 and make the image there?
21:03:00 <geist> depends on what sort of arm machine you have
21:03:00 <mrvn> s/but/boot/
21:03:00 <ilovethinking> i tird but on an m1 mac it's bad
21:03:00 <geist> so you're on a m1 mac right now?
21:03:00 <ilovethinking> there are toolchains on homebrew but something just doesn't wokr
21:03:00 <ilovethinking> yes
21:03:00 <geist> okay, so you're running macos i assume
21:04:00 <geist> so what might make sense here is to skip dynamically building the grub image, take a pre-initialized one and just 'patch' it with yuor binary
21:05:00 <geist> that's what i generally do to avoid exactly this problem. i have a grub disk image, formatted FAT, etc, that i use mtools to stuff in new versions of the kernel
21:05:00 <geist> but then that depends on what you're going to do with the image
21:11:00 <ilovethinking> what filesystem is the default (aka what fs should i use)
21:11:00 <geist> for GRUB?
21:11:00 <jimbzy> Good day, OSDevers.
21:12:00 <ilovethinking> geist: yes
21:12:00 <ilovethinking> hey jimbzy
21:12:00 <geist> ilovethinking: i'd use FAT, since it's easiest to manipulate from various OSes, like mac
21:12:00 <geist> 'mtools' is a great package you can use for that. should be able tog et it from homebrew or macports
21:12:00 <geist> jimbzy: howdy
21:13:00 <jimbzy> How's it going?
21:13:00 <ilovethinking> yeah i have mtools already
21:14:00 <ilovethinking> wait geist wdym "preinitialized"
21:14:00 <ilovethinking> oh you mean like someone elses iso?
21:14:00 <ilovethinking> and write to it?
21:14:00 <geist> right, or set it up on a linux machine once, and then just reuse the grub image
21:15:00 <geist> it's not ideal, but it works quite well. you can even check it into your repo as a mostly empty disk image
21:15:00 <geist> since at the end of the day all you really need is to put your kernel and/or initrd there and maybe tweak a .cfg file
21:15:00 <ilovethinking> wait so what's the mtools for in this case
21:15:00 <geist> the rest of the grub installation on the disk image is effectively pre-canned
21:16:00 <geist> mtools you can take a disk image and modify the contents of it, without mounting it
21:16:00 <geist> so it works great from whatever OS you're on
21:16:00 <ilovethinking> :think:
21:16:00 <geist> but again i'm assuming you're generating a disk image you're booting from an emulator, i dont really know what you're trying to do here
21:19:00 <ilovethinking> well i am trying to make an iso and then boot it up in an x86_64 qemu vm
21:19:00 <geist> okay
21:19:00 <geist> and the qemu vm is using BIOS boot vs UEFI?
21:20:00 <geist> note you can just use -kernel if you want to skip all of this
21:20:00 <geist> at the expense of being somewhat not-what-real-computers-do
21:21:00 <ilovethinking> but i want to use mb2
21:21:00 <geist> multiboot 2?
21:21:00 <geist> (just making sure that's what you mean)
21:21:00 <jimbzy> "Real" computers.
21:22:00 <geist> jimbzy: i mostly say that to stave off the folks that think qemu -kernel is an abomination because it's not 'real'
21:22:00 <geist> like, acknowledge the fact that it is different and move on
21:23:00 <jimbzy> Gotcha.
21:23:00 <ilovethinking> geist: yes, multiboot2
21:23:00 <geist> this was a huge source of consternation over on the discord server, which is why i left
21:23:00 <geist> the MGMT there thought it was heresy to recommend -kernel and were unwilling to budge on the topic
21:24:00 <geist> based on the somewhat narrow view that the only true booting of your OS on anything is the HARD CORE WAY
21:24:00 * geist rolls eyes
21:25:00 <ilovethinking> is it possible to patch qemu somehow to support mb2
21:25:00 <ilovethinking> hmm
21:25:00 <ilovethinking> sounds very complicated tho
21:25:00 <geist> yeah probably not worth it. what are you specifically looking for in mb2?
21:25:00 <geist> have you verified that grub itself on qemu would get what you want?
21:26:00 <jimbzy> Yeah, well one of my CS professors swore up and down that systems that used microcontrollers weren't "real" computers, and that's why my ears perked up.
21:26:00 <ilovethinking> no, i just don't know what other bootloader to use
21:26:00 <ilovethinking> and idk i feel like mb2 is just better because i like the "2"
21:27:00 <geist> ilovethinking: ah. so here's where i say 'dont worry about it, just use MB1'
21:27:00 <geist> there's more bits in the multiboot 2 spec, but if you're just gettings tarted, they wont help you
21:27:00 <geist> if you have a working system and *need* the additional bits that 2 affords then sure
21:28:00 <ilovethinking> idk why but the mb1 spec was a bit confusing
21:28:00 <geist> but then i'd also say a) be careful about depending on it for the reasons you're finding and b) you most likely dont need them, because most of what MB2 gives you is stuff you can find on your own
21:28:00 <ilovethinking> sounds stupid but i don't understand the tags
21:28:00 <geist> okay. why dont we just solve that problem
21:28:00 <geist> instead of trying to invent more and more problems to solve the first one
21:28:00 <ilovethinking> hmm true
21:28:00 <geist> ie, get the tags figured out
21:28:00 <jimbzy> Yes. KISS.
21:29:00 <geist> also step 1 is boot anything at all. are you at that phase yet?
21:29:00 <geist> ie, is the problem that you have something booting and you're having trouble parsing the tags, or is the problem that you're confused about how to start using MB at all?
21:30:00 <ilovethinking> i'm having some problem with the specs, they mention "required tags" but i can;t figure out which ones are the required tags and how to write them
21:30:00 <geist> you didn't completely answer the question: do you have something booting and yuo're trying to parse the tags?
21:30:00 <geist> if not, i'd suggest doing that first. you dont *need* the tags yet. yuo n eed to get some code running
21:30:00 <geist> there's plenty of stuff to do there first
21:30:00 <ilovethinking> i can;t boot without the required tags
21:30:00 <ilovethinking> no they literally say it in the spec
21:31:00 <geist> can you give me an exmaple of what you're saying a tag is?
21:31:00 <geist> https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Header-layout is what you need. and you really only need like the first 3 fields
21:31:00 <bslsk05> ​www.gnu.org: Multiboot Specification version 0.6.96
21:32:00 <geist> but realistically you need down through offset 32
21:32:00 <ilovethinking> im stupid sorry
21:32:00 <ilovethinking> i meant flags
21:32:00 <geist> you need flag 16
21:32:00 <geist> that unlocks the next few fields
21:33:00 <geist> https://github.com/littlekernel/lk/blob/master/arch/x86/64/start.S#L31 i have a few more than you want, but basically you end up with something prettyu much like this
21:33:00 <bslsk05> ​github.com: lk/start.S at master · littlekernel/lk · GitHub
21:33:00 <geist> just a structure in memory near the start of yuor binary
21:33:00 <ilovethinking> so i set flags to 0b10000000000000?
21:33:00 <ilovethinking> don;t count the 0
21:34:00 <ilovethinking> but you get my point
21:34:00 <geist> https://github.com/littlekernel/lk/blob/master/dev/include/hw/multiboot.h#L36 is the bit, yes
21:34:00 <bslsk05> ​github.com: lk/multiboot.h at master · littlekernel/lk · GitHub
21:34:00 <geist> same thing, just in hex
21:34:00 <geist> feel free to steal that header file, it's MIT licensed. no reason typing all of that in again
21:34:00 <jimbzy> Good stuff.
21:36:00 <geist> basically what you end up with is a little 32 byte structure that says 'i'm a multiboot binary, bit 16 set in the flags indicuates the next 5 fields describe where to load me and how big i am'
21:36:00 <ilovethinking> thank you very much man
21:36:00 <jimbzy> ilovethinking, For me, one of the most challenging things about OS Dev is figuring out where to start. Obviously, we have to start at the beginning, but it took me quite some time to really understand where that was. :p
21:36:00 <geist> the next tricky part is filling out the structure, and making sure it's within the first 8K of the binary
21:36:00 <geist> the trick i do there in my start.S is to put it just after a jmp instruction around it
21:37:00 <ilovethinking> jimbzy: haha well i'm not exactly starting, i kinda have a lot done with limine but like
21:37:00 <ilovethinking> fuck limine
21:37:00 <geist> so the start of the binary is 'jmp over multiboot struct; <multiboot struct>; actual start of code...'
21:37:00 <geist> that guarantees that it's within the first bit of the binary
21:38:00 <geist> as an aside, when you were mentinoing tags i thought you were talking about the way multiboot passes lists of arguments to the kernel, which is kinda hard to grok first time
21:38:00 <geist> thsoe are tag based, i think
21:38:00 <ilovethinking> can't i just do it manually for now
21:38:00 <ilovethinking> just using dd in the header
21:38:00 <jimbzy> I"ve been starting for about 20 years now, ilovethinking.
21:38:00 <geist> ilovethinking: you absolutely can. in fact in my first OS i did exactly that. just left the space and patched it with an external utility
21:39:00 <geist> but if you do it externally you need to at least leave space for it so that you dont overwrite something else
21:40:00 <geist> so it's honestly just about as complicated as doing it inside the asm like i did there
21:40:00 <geist> and the linker can easily be made to know the values
21:40:00 <geist> jimbzy: yah this is why i tend to key in on what is blocking folks and try to unblock it
21:40:00 <geist> lots of times it's a complicated chain of XY problems that you can break down
21:41:00 <jimbzy> Yeah, chunking it up really does help.
21:41:00 <ilovethinking_> hey, sorry
21:42:00 <ilovethinking_> laptop died
21:42:00 <geist> odd that it came back with a new nick since you're using irccloud
21:42:00 <geist> shouldn't it have picked up the old one?
21:43:00 <ilovethinking_> no fucking clue lol
21:43:00 <geist> you must have logged into a different irccloud account
21:43:00 <ilovethinking> yeah prolly
21:43:00 <ilovethinking> oh what the fuck
21:43:00 <jimbzy> My bouncer does that sometimes and I have to manually rejoin a coupleo f channels because it doesn't identify.
21:44:00 <jimbzy> It's a configuration problem, but I am too lazy to fix it.
21:44:00 <ilovethinking> does anyone here know this dude from the osdev discord called bindage
21:44:00 <geist> i do not
21:44:00 <ilovethinking> oh that’s odd
21:44:00 <jimbzy> I've never used discord.
21:45:00 <geist> well i mean i do not hang out on the osdev discord
21:45:00 <ilovethinking> he was in the community since the start and he just left
21:45:00 <ilovethinking> because of some conflict
21:45:00 <geist> yeah like i said i ran into some conflict there too and left
21:45:00 <geist> it's a bit too... conflicty
21:45:00 <jimbzy> I wonder why that is. Several channels I frequent have discord and it seems to be common.
21:45:00 <ilovethinking> oh wait i remembered it
21:46:00 <ilovethinking> bindage said that you should code using the c spec
21:46:00 <ilovethinking> and someone started beef around it
21:46:00 <ilovethinking> it’s pretty funny
21:46:00 <geist> hmm, what did he mean about the c spec?
21:46:00 <ilovethinking> he said he worked in the nsa before and makes 560k a year
21:47:00 <jimbzy> K & R-style :)
21:47:00 <geist> okay. that already makes me not like the guy so much. not the C spec stuff, but trying to pull rank by saying where theywork and how much money they make
21:48:00 <ilovethinking> no i mean he seems smart
21:48:00 <geist> as far as i’m concerned that’s completely irrelevant to how much credibility you have
21:48:00 <geist> sure. that’s my basic problemwiththe one month i tried to hang out on that discord
21:48:00 <ilovethinking> it’s just weird that he just quit the community that randomly, i thought he would go to irc or something
21:48:00 <geist> if you have a different opinion with someone, or with the folks in charge, it turns into a beef really fast
21:48:00 <ilovethinking> yeah
21:48:00 <jimbzy> Were they telling you which way the buckwheat blew, geist?
21:49:00 <geist> and really we should be able to hold different opinions about things, that’s valid and totally fine
21:49:00 <ilovethinking> they also shit on you if you don’t like limine which is pretty cringe
21:49:00 <geist> right. we have our preferences here, but i think we’re generally more laid back about folks doing what they want to do
21:50:00 <geist> can only offer suggfestions based on the traps we’ve seen people fall into over the years
21:50:00 <nortti> is the discord affiliated with this place / the wiki, or is it its own thing?
21:50:00 <geist> not at all
21:50:00 <geist> in the exact same way that this irc channel isn’t affliated with anything. it simply exists because we make it exist
21:50:00 <ilovethinking> a trap i fell for is starting with limine
21:51:00 <jimbzy> I found the channel before the website.
21:51:00 <ilovethinking> how
21:51:00 <geist> same, the channel has existed since 1999, long before the website
21:51:00 <geist> though i think the wiki came into existance sometime in the mid 2000s i think. back when wikis were a new and hot thing
21:51:00 <jimbzy> I have no idea. I've been hanging out here (and freenode) since like 2000, or 2001?
21:51:00 <geist> jimbzy:yeah that’s about when i popped in. mid 2001
21:52:00 <geist> and i think from talking to air and whatnot, it was around a couple years before that, on efnet or something
21:52:00 <jimbzy> Yeah, I remember air.
21:52:00 <ilovethinking> holy shit yall are real osdev hippies haha
21:52:00 <geist> air is still here
21:52:00 <jimbzy> I haven't seen them talk in quite some time, geist.
21:53:00 <geist> they might respond here in a minute since i tagged em
21:53:00 <jimbzy> I wasn't sure if they still popped in or if it was just a shell account.
21:54:00 <geist> jimbzy: i forgot, were you jimbzy back then too or did you switch names at some point?
21:54:00 <ilovethinking> oh wow you started chatting here the year i was born
21:54:00 <ilovethinking> crazy
21:54:00 <jimbzy> I was someone else, but I'd rather not say the nickname.
21:54:00 <geist> yah tis why i'm not so sold on discord becoming the next irc. since ultimately it's just a company, and companies come and go, products change, etc
21:54:00 <geist> but i dont *mind* discord. i use it a lot
21:55:00 * mjg notes freenode came and went :p
21:55:00 <FireFly> not incorrect, but at a longer timescale :p
21:55:00 <geist> indeed, however irc the protocol still works
21:55:00 <geist> plus you can connect to irc with your OS!
21:55:00 <geist> no chance of doing that with discord
21:55:00 <ilovethinking> i hate discord (the company)
21:55:00 <FireFly> (and with much easier migration than between completely different walled gardens :p)
21:56:00 <ilovethinking> 6 years ago, at its prime, it was awesome
21:56:00 <FireFly> the company or the service?
21:56:00 <ilovethinking> now it’s just… different
21:56:00 <ilovethinking> the company
21:56:00 <FireFly> hum, not sure I agree :p
21:56:00 <ilovethinking> they want to milk every dollar off of you
21:56:00 <ilovethinking> it’s cringe
21:56:00 <nortti> did they use to not to?
21:57:00 <ilovethinking> yeah
21:57:00 <geist> they were probably in the growth phase before, where making money doesn't matter
21:57:00 <geist> then eventually they decide they actually need it to pay for stuff
21:57:00 <ilovethinking> yeah that’s what im talking about
21:57:00 <ilovethinking> that’s what beautiful about irc
21:57:00 <GeDaMo> https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys
21:57:00 <bslsk05> ​pluralistic.net: Pluralistic: Tiktok’s enshittification (21 Jan 2023) – Pluralistic: Daily links from Cory Doctorow
21:58:00 <ilovethinking> it’s open sourced
21:58:00 <ilovethinking> it’s a protocol
21:58:00 <heat> no clue what you're on about
21:58:00 <ilovethinking> it’s not owned by anyone
21:58:00 <heat> discord doesn't milk shit
21:58:00 <ilovethinking> they do
21:58:00 <heat> they don't
21:58:00 <heat> what's milking here?
21:58:00 <geist> they certainly slam you with please get nitro on a daily basis
21:58:00 <ilovethinking> nitro basic or whatever the fuck it’s called is a scam
21:58:00 <ilovethinking> no nitro no discord
21:58:00 <heat> I don't have nitro and don't get harassed by nitro ads so... dunno what you're on about
21:59:00 <ilovethinking> want to stop using the stupid ass default emojis? get nitro
21:59:00 <geist> i do. and then you cant change names on individual servers without it (i think)
21:59:00 <geist> etc
21:59:00 <geist> this isn't a large concern, and honestly yes they need to make money
21:59:00 <heat> you can
21:59:00 <jimbzy> I'm just too old to change my ways. Damn kids with their memes and discords...
21:59:00 <geist> but i can also still choose to not engage with it (though i still do anyway)
21:59:00 <heat> i have 0 use for nitro
22:00:00 <geist> anyway *shrug* i get the dislike of it
22:00:00 <ilovethinking> i’d choose not to be harassed by discord
22:00:00 <heat> they basically give you better streaming and then you can use emotes from other svs, also larger file upload
22:00:00 <geist> different levels of annoyance, but the fundamentals are there
22:00:00 <ilovethinking> but i don’t jave a problem with discord, they voice chat is awesome
22:00:00 <heat> all of this is OK with the price they ask
22:00:00 <ilovethinking> heat: you just switched sides
22:01:00 <heat> have I?
22:01:00 <ilovethinking> i mean i appreciate them not giving me ads
22:01:00 <ilovethinking> so i guess that’s cool
22:01:00 <heat> how? it's a fucking service
22:01:00 <ilovethinking> oh and also discord is electron based
22:01:00 <geist> *that* is annoying
22:01:00 <heat> asking for everything to be free is stupid
22:01:00 <heat> and unrealistic
22:01:00 <geist> irc is
22:02:00 <heat> unless they agressively siphon off your data
22:02:00 <heat> yeah sure, IRC is, but it's also a stupid text protocol with very little features or compute capacity, and it's also agressively dying
22:02:00 <geist> but it's why it's free. because it doesn't need all the resources for basic work
22:03:00 <lav> IRC is perfect except for the lack of blobcats IMO
22:03:00 * jimbzy shrugs.
22:03:00 <heat> IRC is very flawed
22:03:00 <jimbzy> I listen to people communicating with morse code. XD
22:03:00 <geist> again i actually dont really care either way. i use irc and discord on a daily basis. i just assume that discord in the grand scheme of things is some bump in the road where in 5-10 years we'll be using something else
22:03:00 <heat> for instance, you need a workaround to always be in the server so you get pinged and get logs
22:03:00 <geist> is that bad? meh. maybe. probably not
22:04:00 <geist> i do like things that solve a problem well enough and then stay that way, like irc, or email, or whatnot. is there problems with that? you betcha
22:04:00 <geist> but it's still nice to assume that next year it'll work basically the same way
22:05:00 <mjg> irc is tolerable in tech circles
22:05:00 <geist> for at least basic communications, and it's not some imessage/hangouts/tiktok/snapchat compatibility hellscape
22:05:00 <mjg> but i would not dare use it to talk in a corp env
22:05:00 <ilovethinking> what do yall think about tiktok? i wanna hear what actually technologically advanced people think
22:05:00 <geist> i think exactly zero about it
22:05:00 <Ermine> ^
22:05:00 <geist> but then i'm an olds so clearly it's not my thing
22:06:00 <heat> what does "technologically advanced people" have to do with this
22:06:00 <ilovethinking> heat how are you feeling
22:06:00 <geist> well, vs i guess someone that would have no idea of how it works, etc
22:06:00 <jimbzy> We're cyborgs, heat.
22:06:00 <geist> like say 98% of the people that use it
22:06:00 <heat> technological opinion: yeah great service, large scale, well ran, bytedance contributes a lot to FOSS
22:06:00 <geist> i fundamentally like using encrypted comms, and am well aware that this is wide open
22:06:00 <brunothedev> guys, i just ran "cat /usr/share/zoneinfo/America/Bahia", and now my tty is borked, pls help
22:06:00 <geist> and also things like discord, no fucking clue how logged that is, or trust it
22:07:00 <geist> but that's just my thing
22:07:00 <heat> brunothedev, reset <enter>
22:07:00 <mjg> tiktok?
22:07:00 <mjg> i only know hearsey about it
22:07:00 <ilovethinking> tiktok is fucking crazy man every time i walk somewhere i see a random 8 year old kid literally not paying attention where they are walking and just scrolling through shit
22:07:00 <heat> stop lying mjg
22:07:00 <ilovethinking> it’s so disgusting
22:07:00 <jimbzy> I just don't get the whole need to share every opinion/event/whatever in my life.
22:07:00 <geist> agreed.
22:08:00 <Ermine> In irc, there's no proof that you have written something unless there's a public log
22:08:00 <jimbzy> I use FB a bit because everyone I know uses messenger, but my profile is locked down and I have less than 20 friends.
22:08:00 <geist> frankly, this channel here is about as openly sharing/social as i get. i really dont use anything else as a publishing point
22:08:00 <GeDaMo> I'm glad there was no social media when I was a kid
22:08:00 <brunothedev> WAIT, i just entered the osdev chatroom, i should've entered the #gentoo one LOL XD
22:08:00 <jimbzy> I don't even use a profile pic.
22:08:00 <nortti> ilovethinking: s/tiktok/instagram/ and you're 5 years back, s/instagram/facebook/ and you're another 5
22:08:00 <geist> that and a few discord servers with actual RL friends
22:08:00 <geist> brunothedev: heh, same answer though!
22:09:00 <geist> except gentoo will probably tell you to recompile something
22:09:00 <geist> `make menuconfig; reset`
22:09:00 <jimbzy> And tell you it's for your own good.
22:09:00 <geist> GeDaMo: amen.
22:10:00 <jimbzy> I quit drinking alcohol when cellphone cameras hit the scene.
22:10:00 <ilovethinking> well i had counter strike 1.6
22:10:00 <ilovethinking> god damn that was a blast
22:10:00 <geist> though it's possible i'd actually have done better, social anxiety wise, with social media than i did back then
22:10:00 <geist> but dunno
22:10:00 <heat> ok so to fix your terminal you'll need to first grab the chromium tools, then use repo to pull chromium, then use gn gen out/, then you'll want to create an args file for optimization for your specific hardware (you'll figure it out), then ninja -C out/
22:10:00 <FireFly> I mean, I grew up wasting time on IRC instead.. :p
22:10:00 <heat> and then in 2 hours when that finishes, reset<enter>
22:10:00 <jimbzy> FireFly, right?
22:10:00 <geist> FireFly: i grew up wasting time dialing into BBSes
22:10:00 <FireFly> yeah, that was before my time
22:11:00 <FireFly> missed out on that era
22:11:00 <jimbzy> I loves me some MajorMUD.
22:11:00 <geist> but that also self limited, because had to compete with the phone lines with fam
22:11:00 <jimbzy> My parents did not love the phone bill, however.
22:11:00 <geist> pre cell phones
22:11:00 <jimbzy> geist, The 14hr busy signal. :)
22:11:00 <geist> heh yeah
22:11:00 <geist> i did a few of those two
22:12:00 <geist> i'll just dial up like 10 minutes to that bbs in austin... just to get that one game....
22:12:00 <geist> just this once
22:12:00 <geist> 2 hours later, fuuuuuck
22:12:00 <heat> i rate all these boomer memories 9 AOL free trial CDs out of 10
22:12:00 <geist> hey not a boomer!
22:12:00 <GeDaMo> Also not a boomer! (just barely) :P
22:13:00 <geist> (and yeah i know, the worst insult to gen X is to call them a boomer)
22:13:00 <jimbzy> Yeah, well it beat playing Chex Quest for the hundredth time... ^_^
22:14:00 <geist> heat: oh yeah, intereting riscv extention i ran into that's in iteration now
22:14:00 <geist> Zcmp
22:14:00 <heat> alright my attention span has ran out, can you make a tiktok with that info geist?
22:14:00 <geist> (and the related ones). basically there's a working group to help reduce code size even more, seems to be primarily targetting deep embedded (probably to compete with cortex-m0)
22:15:00 <geist> but guess what Zcmp brings to riscv?
22:15:00 <jimbzy> heat, While trying to flip a water bottle?
22:15:00 <GeDaMo> Comparisons! :P
22:15:00 <nortti> flags register?
22:15:00 <geist> multi-register push/pop!
22:16:00 <geist> ie, push {bitmap of up to 13 registers}
22:16:00 <ilovethinking> geist: holy fuck you are old, gen x? seriously? never wouldve guessed
22:16:00 <heat> jimbzy, these days the youtube shorts (I don't have tiktok so I use dollar store tiktok) have split screens with content and someone playing one of those shitty mobile game ads
22:16:00 <GeDaMo> Oh, I thought it was going to be multiprocessing :|
22:16:00 <heat> it's pretty dystopic
22:16:00 <geist> ilovethinking: didn't i mention i was hanging out here in like 2000?
22:16:00 <geist> heat: yeah that's my #1 beef with youtube right now. i want to just simply turn the fucking shorts off
22:16:00 <ilovethinking> yeah but i thought you were here since u were 10 years old or something
22:16:00 <heat> HOLY FUCK GEIST YOU ARE OLD
22:16:00 <heat> OUTDATED
22:16:00 <geist> OLDS!!!!!111
22:17:00 <ilovethinking> geist: yeah same, i wish it was possible to turn off the shorts
22:17:00 <ilovethinking> one day maybe
22:17:00 * geist coughs, a little cloud of dust coming out of their mouth
22:17:00 <Ermine> oh those boomers
22:17:00 * geist raises their skeleton like hand and points at you accusingly
22:17:00 <GeDaMo> I use mpv for Youtube
22:18:00 * Ermine screams in zoomerish
22:18:00 <heat> mjg, how millenial are you
22:18:00 <nortti> < heat> jimbzy, these days the youtube shorts (I don't have tiktok so I use dollar store tiktok) have split screens with content and someone playing one of those shitty mobile game ads ← one zoomer whose streams I sometimes follow talked of how on tiktok you get like split where above you have a person's stuff and below like, gameplay footage of some random mobile game or cartoons. so he did a combination
22:18:00 <ilovethinking> anyways i’m gonna go sleep so goodnight everyone
22:18:00 <nortti> of family guy below + beginning of his video essay on how fire punch deeply affected him personally
22:18:00 <geist> i get that shorts are great, but the point of youtube to me is to watch interesting, informational videos. i have a lot of subscriptions that i go through daily, etc
22:18:00 <heat> nortti, yep
22:19:00 <nortti> got a comment complaining that he was distracting from the family guy
22:19:00 <geist> by defintion shorts are never what i want to see in that context
22:19:00 <geist> so they're just a huge waste of space
22:19:00 <Ermine> Idk, I don't care about shorts. They don't get in my way
22:19:00 <mjg> geist: so from what i'm told tiktok is all about exploiting people here
22:19:00 <geist> OOTH i also pay for youtube prime, so i dont at least get the ads
22:19:00 <mjg> geist: you get a short video and the app tries to feed you more of the sort
22:20:00 <jimbzy> I hate the fact that everyone makes youtube videos when a few paragraphs of text are enough.
22:20:00 <mjg> geist: it is succesfull enough htat people spend literlaly hours just scrolling through them every day
22:20:00 <mjg> they are *addicted*
22:20:00 <GeDaMo> https://www.youtube.com/watch?v=wTP_SdjD5ms&t=110s
22:20:00 <mjg> which is the problem with tiktok
22:20:00 <heat> yes, it's addicting
22:20:00 <bslsk05> ​www.youtube.com: Invasion of the Body Snatchers (12/12) Movie CLIP - The Scream (1978) HD - YouTube
22:20:00 <heat> it's why I don't have one, but youtube still catches me sometimes
22:20:00 <geist> sure. though i try not to focus too much on what i consider other people's failings
22:20:00 <Ermine> Because it's short. Fast food for brain
22:20:00 <geist> that path leads to sadness
22:21:00 <mjg> but here the product is designed ot be this way
22:21:00 <nortti> I am subscribed to youtube stuff using rss, so I just get shorts in the default youtube viewer
22:21:00 <geist> i try to focus on myself, and bettering it, and then just dont worry about what other people are doing. it's the only way to stay sane
22:21:00 <geist> though i like to help other people, but only if they want it
22:21:00 <heat> like, you click one short you find interesting and then you realize it's 30 minutes later and you've gone through south park, koth, sopranos, breaking bad highlights over the last half hour
22:21:00 <heat> it's absolutely dystopically insane
22:22:00 <geist> heat: yep, which is why i wish i could actually literally turn them off
22:22:00 <geist> i'm even a paying member of the youtube thing, at least let *me* turn them off
22:22:00 <mjg> so tiktok is supopsedly worse
22:22:00 <geist> 100% not interested as a result
22:22:00 <heat> yeah cuz tiktok is literally only that
22:22:00 <mjg> i suspect you could hide shorts with a browser extension
22:22:00 <geist> possible. may be worth looking at
22:22:00 <mjg> anywyay, tiktok does look all around harmful
22:23:00 <geist> that being said my brain is getting better at filtering out little boxes of preview videos with what looks like space on either side
22:23:00 <Ermine> geist: btw do you mean shorts are popping out automatically or youtube suggests them?
22:23:00 <heat> i legitimately think the US should ban tiktok, etc
22:23:00 <geist> i do feel bad for legit video producers though. i have seen at least one of them talk about how you kinda have to do them now
22:23:00 <air> I think the original #osdev members all met in #tunes on freenode and one of their members later created #osdev and evicted us to it
22:23:00 <jimbzy> Hey!
22:23:00 <geist> since it is unfortunately a larger part of the market
22:23:00 <jimbzy> Long time no see, air.
22:23:00 <geist> Ermine: suggests them
22:23:00 <heat> geist, yeah I think it's pretty good for youtube engagement at least
22:24:00 <geist> more and more of my subscription feed is shorts
22:24:00 <nortti> < geist> i do feel bad for legit video producers though. i have seen at least one of them talk about how you kinda have to do them now ← not really a "legit video producer" in any way, but one of my old videos (about a bug I found in the calculator app of an old nokia phone) got converted to a short and it has ridiculously more views than anything I've ever uploaded
22:24:00 <geist> and it's not really fair to unsubscribe from producers i like because they put in some shorts here and there. it's kinda not their fault, they're just trying to make some scratch
22:24:00 <nortti> including a jerma clip
22:25:00 <geist> yah
22:25:00 <Ermine> I almost stopped caring of suggestions. They are either some kind of bullshit or video on non-euclidean game engine I've already watched
22:25:00 <geist> air: howdy
22:25:00 <geist> well, its not so much suggestions as i hvae a fairly curated feed of subscriptions
22:26:00 <geist> and so the daily 'heres what your subscriptions did' is basically my homepage on youtube
22:26:00 <heat> geist, Zcmp looks cool but it's super not-RISC isn't it lol
22:26:00 <geist> heat: right?
22:26:00 <heat> reminds me of the ARM push-multiple stuff?
22:26:00 <geist> does make sense though, i think a ton of space is wasted on function entry/exit, with all of the register spillage
22:26:00 <heat> but even fancier
22:26:00 <Ermine> heat: US shouldn't ban tiktok despite it's a piece of shit. Banning stuff is a slippery slope which leads to nowhere.
22:27:00 <heat> Ermine, so what's your idea? it's legitimately harmful stuff
22:27:00 <heat> I for one don't believe in capitalist self-regulation BS
22:28:00 <nortti> I don't think banning tiktok specifically would be a long-term good plan tho
22:28:00 <heat> i would be willing to say its way more harmful than any social network has ever been
22:28:00 <Ermine> Nothing. Stay and be sad
22:28:00 <nortti> since it's a known-working business model, another service can just copy it
22:28:00 <nortti> what'd be required is some prohibition on a central part of how tiktok is built
22:29:00 <nortti> e.g. high-level data harvesting and specialization of recommendations based on it
22:29:00 <Ermine> Today you ban tiktok, and after some years you ban anybody who criticises your govt.
22:30:00 <heat> stay and be sad is a great option for a dystopic future
22:30:00 <Ermine> Banning stuff is a great option for a dystopic present
22:30:00 <heat> ok, then age restrict it and effectively enforce it
22:31:00 * geist bans real mode
22:31:00 <heat> not "are you 18? yes or no"
22:31:00 <heat> geist, thank you
22:31:00 <heat> that one has needed banning for a long time
22:31:00 <nortti> heat: how'd you do that, without all of the problems the UK implementation of that would have had?
22:31:00 <zid> I think we should ban real mode from #osdev
22:31:00 <heat> yes :) hard questionz
22:32:00 <linear_cannon> what about 16-bit protected mode
22:32:00 <geist> to be fair real mode has become honestly less and less of a thing here over the last 20 years
22:32:00 <heat> also banned
22:32:00 <heat> anything 16
22:32:00 <linear_cannon> :(
22:32:00 <geist> seemed to be say 15 years ago like 80% of the topic here was 'writing a real mode floppy bootloader'
22:32:00 <geist> maybe we dont attract those folks as much, or maybe the world really has sorta moved on, baby steps
22:33:00 <linear_cannon> there's a lot less need for that than there used to be. i probably would've been one of those folks at the time
22:33:00 <geist> yeah i think that's the case
22:33:00 <geist> also more non x86 stuff, etc
22:33:00 <nortti> probably a lot due to virtual machines being easier than "I'll just use that rando old computer"
22:33:00 <geist> ight
22:33:00 <linear_cannon> nowadays it's basically like. why would i need to do that when there's multiboot
22:33:00 <linear_cannon> (or uefi or whatever)
22:33:00 <nortti> and even the rando old computer has USB now
22:33:00 <geist> and even if it was there's no floppy disk on that rando computer
22:33:00 <nortti> yeah
22:33:00 <heat> PC booting is still hard
22:33:00 <linear_cannon> except for the fact that i'm sitting here itching to write a microkernel for my 286
22:34:00 <geist> and nobody wants to write a real mode hard drive bootsector anymore
22:34:00 <heat> like holy cow so many bad options
22:34:00 <geist> linear_cannon: yeah i had that itch a few years ago. thought it'd be kinda fun
22:34:00 <heat> and saying "why 32? just do 64" is equally bad advice
22:34:00 <geist> i ended up settling on writing a 386 only thing
22:34:00 <heat> writing 32 -> 64 bit code in ASM is not easy for a newbie
22:34:00 <nortti> I actually did my first OS thingy (real mode, lol) by shutting down my computer and booting from floppy, testing, rebooting back into linux
22:34:00 <linear_cannon> i do actually have a physical hardware 286 handy, but there's a lot of yaks to shave before i can actually get to the fun part
22:34:00 <geist> no it isn't. i'm still fairly sad the level of nonsense you have to do to get a stable 64bit flat memory environment
22:35:00 <linear_cannon> including, yes, writing a real mode floppy bootloader :P
22:35:00 <geist> nortti: yah same. though i pretty quickly got ahold of another computer back in the day so i could at least shuttle the disk
22:36:00 <nortti> yeah, same. though moving the vga cable over was still a bit of a pain
22:36:00 <geist> i still kinda have that setup: usb floppy drive + a 386 that i can drag out and plug into a spare monitor/keyboard
22:36:00 <nortti> < linear_cannon> except for the fact that i'm sitting here itching to write a microkernel for my 286 ← honestly an OS that uses 286 as designed would be an interesting project. the whole segment = object thing
22:36:00 <geist> every once in a while i get bored and fiddle with it
22:37:00 <heat> what OS do you have on it?
22:37:00 <linear_cannon> nortti, yeah, that's part of it. though i want to support a "huge" memory model too
22:37:00 <linear_cannon> part of my plan, if i get that far, is to write a wasm32-wasi interpreter that runs in the huge memory model
22:37:00 <nortti> :D
22:37:00 <heat> having a real networked installation of FreeBSD/386BSD on a 386 sounds pretty fun
22:37:00 <heat> old OSes for old hardware
22:38:00 <linear_cannon> you'd have to go old, all the BSDs (and linux) have dropped 386 support these days
22:38:00 <linear_cannon> NetBSD runs great on a 486 though.
22:38:00 <heat> yeah, that's the point
22:38:00 <linear_cannon> like, modern NetBSD
22:38:00 <heat> FreeBSD 1.0 or the OG 386BSD
22:38:00 <geist> heat: i have a few. but aside from DOS + win 3.1 i have a loadlin that starts an early slackware install on the 386
22:38:00 <mjg> freebsd technically supports i386
22:38:00 <geist> it barely fits, since the machine has 4MB memory. max
22:38:00 <nortti> heat: did you see there was a new release of 386bsd a couple years back
22:38:00 <geist> it's pretty slow
22:38:00 <mjg> of you mean literal 386?
22:38:00 <heat> nortti, yep
22:38:00 <heat> mjg, literal
22:39:00 <heat> geist even has a small OS that uses hardware task switching for his 386
22:39:00 <geist> yah i got this old 386sx a few years back off ebay becaus eit was precisely the model i had when i was a kid
22:39:00 <mjg> i don't know what's the oldest it can boot on, perf aside
22:39:00 <mjg> i suspect p3 minimum
22:39:00 <linear_cannon> no, it's a 486
22:39:00 <geist> heat: that's why i hacked https://github.com/travisg/3x86 one weekend for lulz
22:39:00 <geist> but then i eventually got bored weith it and went back to add proper 386 support to LK
22:39:00 <geist> which now runs fine on it
22:39:00 <linear_cannon> all of the bsds have the same minimum, they require cmpxchg to deal with stuff that needs atomics
22:40:00 <heat> cmpxchg? more like cmpxcringe
22:40:00 <mjg> what if you don't use smp
22:40:00 <linear_cannon> yes, it'even without smp, as far as i know
22:40:00 <mjg> hm
22:40:00 <heat> also fwiw clang can't codegen for a 386
22:40:00 <mjg> that may be
22:40:00 <linear_cannon> ^
22:40:00 <mjg> heat: shit compiler!
22:40:00 <heat> yep, shit indeed
22:40:00 <nortti> no, a C compiler. though I could see why you'd confuse the two
22:41:00 <heat> does freebsd still compile with gcc?
22:41:00 <mjg> yes
22:41:00 <heat> or will it severely warning/error out
22:41:00 <heat> oh cool cool
22:41:00 <mjg> gcc12 is actively tested
22:41:00 <geist> my experience with running halfway modern bsds on old hardware is it's really really bad
22:42:00 <mjg> :)
22:42:00 <geist> you generaly want a netbsd/etc of approximately the same era
22:42:00 <mjg> geist: there was a dude around 2010 who was protesting smpification of the kernel
22:42:00 <heat> my experience with running modern BSDs is it's really really bad
22:42:00 <geist> or say up to about +5 of when the machine would have been contemporary
22:42:00 <mjg> geist: because his vax can't handle it
22:42:00 <nortti> lol
22:42:00 <linear_cannon> i literally run netbsd on a vax :P
22:42:00 <mjg> what version?
22:42:00 <mjg> pas 5.x?
22:42:00 <mjg> past
22:42:00 <linear_cannon> 9.3, i'm about to update to 10 stable
22:42:00 <mjg> whoa
22:42:00 <heat> wtf
22:43:00 <heat> how much swap do you have
22:43:00 <heat> and why is half your hard drive
22:43:00 <linear_cannon> i'm using a bluescsi as the boot drive, and iirc only as much swap as i have ram (20mb)
22:43:00 <heat> oh wow
22:43:00 <linear_cannon> i got the machine with 12mb, but upgraded
22:43:00 <linear_cannon> 12mb was a bit too cramped
22:44:00 <heat> how does anything work?
22:44:00 <nortti> 40mb honestly sounds reasonable for a barebones modern *nix
22:44:00 <mjg> so how much is left after you boot multiuser?
22:44:00 <heat> nortti, in theory yes, in practice no
22:44:00 <geist> linear_cannon: really? on a real one?
22:44:00 <geist> my experience is recent netbsds are very unstable
22:44:00 <geist> i think i have netbsd 3.x or so on this vax
22:44:00 <heat> certain tradeoffs on real modern systems make little sense on old cramped machines
22:45:00 <geist> though it is a 32MB vax, so memory size wasn't the problem
22:45:00 <geist> mostly it just being so achingly slow doing anything
22:45:00 <linear_cannon> yes, a real one. VaxStation 3100/m38. i'd need to go boot it up to check how much is free on login - i'm currently rearranging and doing spring cleaning, so it's unplugged - but i definitely had a few megs
22:45:00 <heat> for instance my SLAB allocator is really wasteful with memory so it's definitely not as compact as a traditional, bad, slow, K&R heap
22:45:00 <geist> linear_cannon: hah same. 3100/m40 i think here
22:45:00 <geist> kazinsal picked one up too
22:45:00 <nortti> heat: oh sure, but 40MiB is also several times what k&r heap was designed for
22:46:00 <geist> linear_cannon: i did manage to port my OS to it though, kinda fun
22:46:00 <geist> i should piddle with that again
22:46:00 <mjg> hmmm
22:46:00 <nortti> heat: I have admitedly only run as far down as 192MiB recently, but that runs a gentoo install on pentium 2 nicely swapless
22:46:00 <heat> nortti, on a real boot? not really
22:46:00 <mjg> linear_cannon: would be funny if you could use *zsh* on it
22:46:00 <mjg> and still have any ram
22:46:00 <linear_cannon> lol yeah
22:46:00 <linear_cannon> i don't use zsh on anything
22:46:00 <linear_cannon> usually use mksh, or just the system ksh on netbsd
22:46:00 <sham1> A real VAX. I'm so jelly
22:46:00 <mjg> :]
22:46:00 <geist> yah for lulz i tried to compile a modern bash on the vax on netbsd. took hours
22:46:00 <linear_cannon> i'm actually rewriting dash right now also
22:46:00 <mjg> curious tho, perhaps the kernel itself could be trimmed
22:47:00 <heat> nortti, everything will get page cache'd, then you dynamically allocate structures for inodes, dentries, processes, threads and you're fucked
22:47:00 <mjg> as in not only how much ram is left but where is it spent
22:47:00 <heat> particularly since all the kernel structures can't get swapped
22:47:00 <linear_cannon> mjg, yeah, i trim the kernel and disable some services that are on by default
22:47:00 <sham1> Modern bash on a VAX. Not exactly surprising that it took hours. It's absolutely massive while also being a meh shell I'll be honest
22:47:00 <heat> bash is gr8
22:47:00 <heat> fite me
22:48:00 <heat> bash >>>>> zsh
22:48:00 <geist> sham1: yeah. was mostly just looking for something fairly meaty to compile and wait for the compiler to take forever
22:48:00 <mjg> linear_cannon: you mean default netbsd install does not do it after all?
22:48:00 <linear_cannon> bash is a warped mockery of ksh
22:48:00 <heat> geist, honestly it's surprising you can even get a compiler to run
22:48:00 <mjg> oh right
22:48:00 <mjg> what compiler even is it
22:48:00 <mjg> are they on some gcc 3x?
22:48:00 <geist> oh it's just a plain netbsd 3.x
22:48:00 <geist> so it's whateverc ompiler it was
22:48:00 <geist> runs fine, it's just slow because the cpu is slow
22:48:00 <heat> ah yes, not a modern one ok
22:48:00 <mjg> specifically for old yellers like htis one
22:48:00 <linear_cannon> mjg, it runs, but stripping the kernel of support for other systems and disabling postfix and some other stuff frees up a few megs
22:49:00 <mjg> heh postfix
22:49:00 <mjg> that's a bsd right there
22:49:00 <mjg> that or sendmail
22:49:00 <linear_cannon> netbsd 10.x runs gcc7 for vax. gcc10 was supposed to make it in but didn't, next release should have gcc11 with a *lot* of fixes
22:49:00 <sham1> bash is ksh if it fell into a vat full of GNU
22:49:00 <mjg> full fucking mta on a dekstop
22:49:00 <mjg> gcc11 supports vax?
22:49:00 <mjg> wat
22:49:00 <linear_cannon> yes.
22:49:00 <linear_cannon> specifically because of netbsd folks maintaining the support and sending in fixes
22:49:00 <heat> gcc11 supports ia64 still
22:49:00 <nortti> I think a lot of smaller arches have recently gotten more work too
22:50:00 <nortti> stuff like m68k
22:50:00 <mjg> https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/VAX-Options.html
22:50:00 <geist> yah i have a gcc for vax and everything
22:50:00 <bslsk05> ​gcc.gnu.org: VAX Options (Using the GNU Compiler Collection (GCC))
22:50:00 <mjg> so it does
22:50:00 <sham1> As long as someone keeps maintaining it, I don't see why they'd get rid of the support
22:50:00 <heat> because usually there's no one maintaining it
22:50:00 <mjg> now i'm curious how is codegen
22:50:00 <linear_cannon> vax was going to be dropped if some problems weren't fixed, and netbsd funded someone to fix them
22:50:00 <heat> despite "passionate hobbyists"
22:50:00 <heat> it's the same shit with ia64
22:50:00 <linear_cannon> ia64 got a lot closer to being dropped iirc than vax did
22:50:00 <heat> "oh yeah ia64 is gr8. bug fixing? can't bother"
22:50:00 <sham1> So NetBSD was just "nope" and fixed stuff
22:51:00 <sham1> "We want to run our VAXes"
22:51:00 <mjg> that is both impressive and quite frankly peculiar
22:51:00 <linear_cannon> all the ia64 enthusiasts i know of are perfectly aware that it's a garbage arch
22:51:00 <geist> linear_cannon: but like i said the last few times i've tried to run a modern netbsd build it was pretty unstable
22:51:00 <mjg> i'm all for good old computer necrophilia
22:51:00 <geist> would crash after a few minutes. i guess i should do my duty and debug it
22:51:00 <mjg> but running current stuff to do it is dicked up
22:51:00 <linear_cannon> yeah, file a problem report
22:51:00 <geist> now that i grok enough vax
22:51:00 <linear_cannon> people pay attention, i assure you
22:52:00 <mjg> mm
22:52:00 <sham1> Heresy. Itaniumn is great. Compile-time instruction scheduling is great
22:52:00 <mjg> linear_cannon: how long to build the kernel
22:52:00 <heat> ITAAAAAAAAAAAAAAAAAAAAAANIUUUUUUUUUUUUUM
22:52:00 <heat> geist, when are u getting one
22:52:00 <geist> well, netbsd is almost certainly cross compiled
22:52:00 <geist> heat: i had one, years ago
22:52:00 <geist> so i already did, and moved on
22:52:00 <heat> oh jeez
22:52:00 <heat> you moved on?
22:53:00 <heat> i guess ia64 really is dead
22:53:00 <linear_cannon> mjg, that's a great question. i know i compiled it on-machine, and with only 12mb of ram. the only thing i'm sure of is it took less than two days
22:53:00 <linear_cannon> it may have taken less than one
22:53:00 <mjg> hmm
22:53:00 <heat> hmm
22:53:00 <mjg> do you know if netbsd builds releases on actual vax?
22:53:00 <heat> 🤔🤔
22:53:00 <geist> well, mostly i moved on because it was a massive machine
22:53:00 <nortti> kinda sad they never made any low power / small formfactor itaniums. I like random-ass modern-enough obsolete machines, but itanium has always felt a tad too clunky for a student apartment setup
22:53:00 <mjg> despite their massive cross build support
22:54:00 <geist> was one of the early prototype HP i2000 workstations i believe
22:54:00 <nortti> currently my desk is almost entirely taken up by my main laptop and an imac g4
22:54:00 <linear_cannon> i don't think they build on vax, i think it's usually cross-compiled. it's thoroughly tested by devs, but in simh, not real hardware.
22:54:00 <mjg> oo
22:54:00 <geist> https://www.openpa.net/systems/hp_i2000.html no pics though but it was built like a tank
22:54:00 <bslsk05> ​www.openpa.net: HP i2000 Itanium Workstation – OpenPA.net
22:54:00 <mjg> well thre may be your catch the
22:54:00 <mjg> n
22:54:00 <geist> you could use it to prop up your car to get to the engine
22:54:00 <linear_cannon> that said, a number of real hardware users exist, and the *pkgsrc packages* are compiled on real hardware
22:55:00 <mjg> linear_cannon: you should ship dmesg to https://dmesgd.nycbug.org/
22:55:00 <bslsk05> ​dmesgd.nycbug.org: NYC*BUG dmesgd
22:55:00 <geist> yah also keep in mind these particular microvaxes are not fast
22:55:00 <linear_cannon> mmm yeah, lemme go plug it in and find my serial adapter
22:55:00 <geist> they're the later, single microprocessor variants
22:55:00 <geist> cost reduced, etc
22:56:00 <heat> https://twitter.com/vincentzimmer/status/1594370159862480900
22:56:00 <bslsk05> ​twitter: <vincentzimmer> I realize it’s time for a laundry day when my selection algorithm for shirts produces https://pbs.twimg.com/media/FiBXNInaAAAgLyp.jpg
22:56:00 <heat> i want a merced shirt so bad
22:56:00 <mjg> so i'm curious how is codegen era-appropriate gcc vs today
22:56:00 <mjg> clearly they could not improve it for vax
22:56:00 <mjg> but maybe it regressed?
22:57:00 <heat> why do you think its worse?
22:57:00 <geist> yeah good question. it *could* make worse decisions about inlining than the arch desires
22:57:00 <geist> and if someone didn't keep re-tweaking it it might get worse
22:57:00 <mjg> heat: i expect there was 0 benching
22:57:00 <geist> but in general the problem is modern code is so much bigger, blows the cache on these old machines much harder
22:58:00 <mjg> and it must have changed over time inadvertedly
22:58:00 <mjg> gold rule: if something was not benched, it sucks perf-wise
22:58:00 <geist> yep. also vax has a ton of options with instruction selection. it could be over time as more intermediate steps come and go in gcc, someone hasn't gone back to really realign the back end of the vax bits with them
22:58:00 <heat> is it PESSIMAL
22:59:00 <geist> so it may be choosing less and less interesting instruction forms, because that's what most other arches have
22:59:00 <mjg> that was a 100% serious comment
22:59:00 <geist> OTOH on real vaxen it's unclear which forms are ideal too. i think there's a whole pile of the same thing like there is on x86: choose simpler forms, etc
22:59:00 <mjg> it is even worse: if a codebase was not sanitized from a certain angle, you have to expect it sucks from said angle
23:00:00 <mjg> is there proifling support for vax?
23:00:00 <heat> is this mjg's law
23:00:00 <linear_cannon> as much as for any arch on netbsd
23:00:00 <geist> i kinda doubt it. but then there are a bazillion vax microarchtectures
23:00:00 <linear_cannon> there should be working dtrace
23:00:00 <mjg> linear_cannon: so a resounding "no"? :p
23:00:00 <geist> the ones we have here are the fairly low end, simple versions
23:00:00 <mjg> working dtrace on vax?
23:00:00 <mjg> wut
23:00:00 <heat> working dtrace what
23:00:00 <linear_cannon> netbsd has dtrace
23:00:00 <mjg> i know
23:00:00 <mjg> but on vax?
23:00:00 <heat> would be funny if it even JITs
23:01:00 <linear_cannon> it almost certainly doesn't
23:01:00 <geist> it would be a fun arch to jit for though. loooots of instruction form choices
23:01:00 <linear_cannon> ah, nvm
23:01:00 <mjg> i may just download simh + netbs to check
23:01:00 <linear_cannon> only x86 and arm
23:01:00 <linear_cannon> sorry
23:01:00 <heat> geist, ""fun""
23:01:00 <mjg> no bigs
23:01:00 <geist> well, sure.
23:01:00 <mjg> point is though, vax mostl ikely never profiled on netbsd
23:01:00 <mjg> even back in the day
23:01:00 <heat> x86 jitting is torture
23:01:00 <mjg> was*
23:01:00 <geist> right, that was an earlier time
23:01:00 <heat> i definitely unenjoyed it
23:01:00 <mjg> so i would expect MD code having lullers
23:02:00 <geist> heat: yeah but precisely why? was it x86 was a terrible layout of the opcode?
23:02:00 <geist> or because it was highly irregular?
23:02:00 <heat> irregular opcodes yeah
23:02:00 <geist> think of VAX as a much more logically laid out, highly regular x86
23:02:00 <linear_cannon> maybe i'll set up kernel profiling on my vax just to see if it shows me anything interesting
23:02:00 <mjg> how does that work
23:02:00 <mjg> is it kgmon?
23:03:00 <mjg> there was an ancient method which had so mucho verhead it was not even funny
23:03:00 <linear_cannon> yes
23:03:00 <mjg> you can do poor man's flamegraphs instead
23:03:00 <mjg> see ONYX for a sample imlementation
23:03:00 <heat> geist, that said, I want to retry JITting for eBPF, since eBPF registers map a whole lot more clearly to registers. might be more fun to codegen for
23:03:00 <geist> the IRQL stuff in vax would actually lend itself nicely to having a high priority timer based sampler
23:03:00 <heat> mjg, broke-ass flamegraphs
23:04:00 <mjg> heat: working class flamegraphs
23:04:00 <mjg> all that aside, i know for a fact there is tons of fs ops done during the build which don't need to be there
23:04:00 <mjg> whacking them may just be a great kick for vax
23:04:00 <heat> Signed-off-by: Karl Marx <kmarx@cpsu.ru>
23:05:00 <geist> but like i said the main thing that probably hurts old arches like this is simply size of text segment
23:05:00 <nortti> heat: isn't .su still in-use?
23:05:00 <geist> you can rearrange deck chairs all you want, but what you really want is much less code
23:05:00 <mjg> agreed
23:05:00 <mjg> geist: it would helped if you ran that code less too
23:05:00 <mjg> hence ^^
23:05:00 <geist> if you have say 8K of cache *total* you just blow it
23:05:00 <heat> nortti, ooh great idea
23:05:00 <heat> is a two letter domain name valid?
23:05:00 <mjg> onyx@no?
23:05:00 <mjg> no
23:06:00 <heat> like on.yx
23:06:00 <sham1> .su is indeed a top-level domain that still exists, and it's administered by the Russian Federation
23:06:00 <heat> surely not?
23:06:00 <geist> but really it's one of these cases wher eyou simply need less features, less complicated operating systems, etc for these old machinse to run
23:06:00 <nortti> I think they're valid, but cost a shit-ton
23:06:00 <geist> running modern stuff that does more, especially in crypto, just hurts and isn't useful
23:06:00 <mjg> hmm https://dmesgd.nycbug.org/index.cgi?do=view&id=6914
23:06:00 <mjg> geist: check this out ^^
23:06:00 <geist> except for machochism purposes
23:06:00 <geist> even something like ssh is terrible. or wget/curl with SSL
23:06:00 <mjg> i agree
23:07:00 <geist> you end up taking like 2 minutes to just ssh into it
23:07:00 <mjg> i would telnet out of it to my gateway
23:07:00 <mjg> and ssh from there :)
23:07:00 <heat> BSD dmesgs are boring
23:07:00 <geist> 100%. i usually immediately enable telnetd so i can get into it
23:07:00 <heat> linux dmesgs are exhilarating
23:07:00 <mjg> or RLOGIN for full geezer
23:07:00 <mjg> heat: loldriver (c) Pedro Pessimaldo
23:07:00 <mjg> 's what i see in linux dmesg
23:08:00 <geist> my dual sparcstation box is a bit more fun: dual 80Mhz supersparcs + 192MB ram. that actually kinda almost crosses into the modern world a little bit
23:08:00 <heat> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
23:08:00 <heat> 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
23:08:00 <heat> 2018, 2019, 2020, 2021, 2022
23:08:00 <heat> and E T E R N I T Y
23:08:00 <mjg> that used to be a problem, should be fixed onw
23:09:00 <geist> heh updating dates. i used to d othat until someone that knew a thing or two about law pointed out you dont have to keep updating the copyright date
23:09:00 <mjg> geist: that was a recent discussion at $workplace
23:09:00 <mjg> geist: turns out peolpe keep doing it because it was always done
23:09:00 <nortti> I mean, I don't think you need to put in any dates, or even a copyright header, for legal reasons
23:09:00 <mjg> geist: and a prikaz came to do it again
23:09:00 <mjg> so there ya go
23:09:00 <geist> yah $workplace also pointed out you dont have to do it so dont
23:09:00 <heat> lol
23:10:00 <mjg> must be a $workplace on the other side of the road
23:10:00 <mjg> :p
23:10:00 <heat> American Megatrends has copyright 1985 - 2023 fucking everywhere
23:10:00 <geist> the header i do because folks copy stuff out of repos and plonk them elsewhere
23:10:00 <heat> on EFI code
23:10:00 <heat> EFI in 1985
23:10:00 <geist> yah i was following something like QEMU or whatnot
23:10:00 <geist> and someone has a bot that goes through and bumps all the dates just after jan 1st
23:10:00 <geist> not sure if it was qmeu or gcc or something, but it was like okay...
23:10:00 <mjg> at least it is a bot
23:10:00 <heat> yeah, GNU has that as well I think
23:11:00 <heat> I update mine when I touch the files
23:11:00 <mjg> poor sap at work wrote a sed
23:11:00 <mjg> with mistakes in it
23:11:00 <mjg> one pointless endeavor
23:11:00 <heat> should've written an awk
23:11:00 <linear_cannon> geist, re: dual supersparc: i like to torture myself by running something juuuuuuuuust barely underneath what the modern world likes
23:11:00 <heat> you could've done it, as you know dtrace
23:11:00 <linear_cannon> sitting on my desk right now is a dual Pentium III machine running gentoo
23:11:00 <mjg> heat: that would have worked before he tried
23:11:00 <geist> yah. or a dual p3 500 machine i have floating around
23:11:00 <geist> kidna fun to actually do something with it
23:11:00 <heat> although you could accidentally hist()'d your copyright lines
23:11:00 <geist> or the P4 2.4HT. just enough that it's actually kidna usable
23:12:00 <mjg> heat: can you gnuplot copyright years
23:12:00 <mjg> linear_cannon: wut
23:12:00 <nortti> oh, was dual pentium 3 actually common? I thought multiprocessor was kinda rare on x86
23:12:00 <mjg> do you have X on it?
23:12:00 <linear_cannon> i have wayland on it
23:12:00 <mjg> a webbrowser?
23:12:00 <linear_cannon> nope
23:12:00 <mjg> lynx? :p
23:12:00 <mjg> right
23:12:00 <geist> nortti: not common, but actually at the time it was before both intel and AMD specialized their lines and created server vs non server stuff
23:12:00 <mjg> i take 'wut; back
23:12:00 <geist> so all yo uneeded was a dual mobo
23:13:00 <nortti> ah
23:13:00 <linear_cannon> i actually might be able to make a browser happen
23:13:00 <geist> actually at the time (about 1999) it was a pretty good idea. you could get a dual cpu motherboard for not that much more, if you were building a box
23:13:00 <linear_cannon> just, not yet
23:13:00 <geist> and then just later on decide to add another cpu
23:13:00 <linear_cannon> right now, the biggest barrier is rust
23:13:00 <mjg> geist: huh
23:13:00 <mjg> geist: but was &anything* able to make any use of it
23:13:00 <geist> the main thing holding back was you needed an OS that actually used more than one cpu
23:13:00 <nortti> linear_cannon: does rust require sse2?
23:13:00 <linear_cannon> and i'm fixing that barrier https://github.com/rust-lang/compiler-team/issues/543 https://github.com/rust-lang/rust/pull/108716
23:13:00 <bslsk05> ​github.com: Promote `i586-unknown-linux-gnu` to Tier 2 with Host Tools · Issue #543 · rust-lang/compiler-team · GitHub
23:13:00 <mjg> like for real
23:13:00 <linear_cannon> nortti, yep!
23:13:00 <bslsk05> ​github.com: promote i586-unknown-linux-gnu to Tier2+hosttools by goshhhy · Pull Request #108716 · rust-lang/rust · GitHub
23:13:00 <geist> mjg: what do you mean?
23:13:00 <mjg> 00:13 < geist> the main thing holding back was you needed an OS that actually used more than one cpu
23:13:00 <mjg> you kind of answered as i was asking
23:13:00 <geist> oh sure that just meant: dont run DOS/win95
23:14:00 <geist> NT, linux, bsd all had SMP support
23:14:00 <geist> i was running NT 4.0 and later win2k on it
23:14:00 <nortti> linear_cannon: I was running pentium 3 @ 650MHz a decade ago as my main system, and remember lack of SSE2 hurting with a lot of stuff already
23:14:00 <geist> actually i was running BeOS on it, which did SMP too
23:14:00 <geist> 98-2000 was my BeOS years
23:14:00 <geist> but i already had an SMP box from about 1996 (dual ppro) which I ran NT 4.0 on in college
23:14:00 <heat> 4.4BSD had "SMP Support" in the sense that they "oh well, we tried"
23:15:00 <geist> basically anything that wasn't DOS based was SMP capabile
23:15:00 <linear_cannon> i actually work with an ex-Be developer. he's a nice guy
23:15:00 <heat> but it very much didn't run on SMP systems, they explicitly stated it
23:15:00 <heat> BeOS developers are CRINGE
23:15:00 <geist> linear_cannon: oh yeah, who is it?
23:15:00 <linear_cannon> Mikol Ryon
23:15:00 <geist> oh yeah, mikol's a good guy
23:16:00 <geist> haven't seen him in some number of years, but i do follow him on facebook
23:16:00 <mjg> hmmm now one could boot an early 2000s era system ina vm with say 8 cores
23:16:00 <mjg> maybe it is not going to fall over
23:17:00 <mjg> technically they all support 256, don't they :p
23:17:00 <geist> sure. i mean again, you can say 'OMG THAT MUST HAVE BEEN CRINGE' given modern standards
23:17:00 <mjg> what?
23:17:00 <geist> but at the time, a dual cpu box running NT or whatnot was strictly better than a single one
23:17:00 <linear_cannon> there were quad-processor pentium 3 systems. i want one
23:17:00 <geist> and really past dual cpu you were getting into high end enterprise stuff
23:17:00 <geist> yah that'd be like a Compaq Proliant 7000 or so
23:17:00 <mjg> so i remember discussions from 2002 or so and people had very mixed takes
23:17:00 <mjg> i could not judge myself
23:17:00 <geist> big square box with quad cpus in it
23:18:00 <linear_cannon> or an SGI Visual Workstation
23:18:00 <mjg> so again, would be curious to see how they work out in an emulated setting
23:18:00 <geist> (i used to intern at compaq running install tests on the whole fleet)
23:18:00 <mjg> someone claimed they get a perf win when building stuff from a 2 cpu system in 2001 or 2002
23:18:00 <geist> yah i mean. by modern standards i'm sure the SMPness of these old machines was pretty bad, but then you had somewhat greater than no scaling at the time
23:18:00 <CompanionCube> linear_cannon: those have a weird firmware, don't they?
23:18:00 <linear_cannon> yeah. the SGI VW540 could do quad 900mhz, but your only option was windows since they use a very custom firmware based on their MIPS machines
23:18:00 <mjg> dude i'm not out to bash any of it
23:18:00 <geist> and since like 4 cpus was all you were goin to get (in x86 at least) it was strictly better than not
23:19:00 <mjg> i'm just trying to check realities of the era
23:19:00 <linear_cannon> even in the mid-late 2000s the jury was out on whether multiprocessor was worth it for most workloads, tbh
23:19:00 <geist> probaly got something like 250% of a single core machine weith a quad core for <arbitrary benchmark>
23:19:00 <mjg> for example they all had a globally loked scheduler
23:19:00 <linear_cannon> i remember discusssions circa 2009 about this
23:19:00 <mjg> geist: ye that would make sense for compute-bound
23:19:00 <linear_cannon> and there were readily available multicore chips and broad os support by then
23:19:00 <geist> but also remember the caches and TLBs were a lot smaller on those machines
23:19:00 <geist> so the cost of bouncing a thread around, etc was much less
23:20:00 <mjg> it would expect it was costlier to talk to other cpus
23:20:00 <mjg> so who knows
23:20:00 <geist> also posslbe the memory bandwidtch was so much less that you just saturated it almost immediately no matter what you did
23:20:00 <geist> basically a lot fo the modern day scaling factors were probably off
23:21:00 <geist> so some of the modern strategies of dealing with things may or may not apply back then, if you could time jump
23:21:00 <mjg> so again, what's the oldest 2 core-capable bsd which still gets a speed up when building itself
23:21:00 <mjg> for example
23:21:00 <geist> and/or the overhead of more modern algorithms may be net worse because of code size/etc vs cache
23:21:00 <linear_cannon> for my P3 system, with modern gentoo, SMP is clearly better than non-SMP for the stuff i do
23:21:00 <mjg> dawg do you mind not assuming i'm about to SHIT ON IT
23:21:00 <geist> yah, same
23:21:00 <mjg> modern is moden
23:21:00 <geist> modren
23:22:00 <geist> kk
23:22:00 <mjg> wait, gentoo?
23:22:00 <linear_cannon> yes
23:22:00 <mjg> linear_cannon: did you compile all of it yourself?
23:22:00 <geist> i just think about these things too, mostly saying it for my own benefit
23:22:00 <mjg> it both makes sense and does nt :p
23:22:00 <geist> kinda building up a mental model, becaus ei like to think about old vs new
23:22:00 <linear_cannon> mjg, just last week i rebuilt every package on the system
23:22:00 <linear_cannon> no distcc, all on this machine
23:22:00 <geist> yah i have a gentoo on dual p3 box here too
23:22:00 <mjg> do you have 'time' from it?
23:22:00 <mjg> and how many pkgs is it
23:23:00 <linear_cannon> from the rebuild? no, but it took most of a week
23:23:00 <geist> it takes days dont get me wrong
23:23:00 <mjg> heh
23:23:00 <mjg> aight
23:23:00 <geist> but lots of time is spent in a few packages that use beefy language stuff
23:23:00 <mjg> ye i remember building kde update on my p3 700 running freebsd 4
23:23:00 <mjg> single core
23:23:00 <mjg> took the entire night
23:23:00 <geist> was thinking about that actually. like say a 500MB gcc instance chewing on some C++ file
23:23:00 <geist> say every second it touches like 50% of its memory that it has built up
23:23:00 <mjg> c++ is the worst
23:24:00 <geist> well, the machine itself can only push about 100MB/sec to DRAM at best case
23:24:00 <geist> so it's already going to be almost by definition spending most of its time just sitting there waiting on ram
23:24:00 <geist> and hell that's 5 seconds just to touch all of that memory once
23:24:00 * mjg says good grief
23:25:00 <linear_cannon> on my system i get about 70MB/s to pci storage controllers, i'd hope i get more than 100MB/s to DRAM
23:25:00 <linear_cannon> but i haven't benched it
23:25:00 <geist> linear_cannon: yeah dont. you'll be dissapoint
23:25:00 <geist> i think this one has fairly standard SDRAM 133Mhz at the time? maybe 100
23:25:00 <geist> because it's a dual p3 500, Katmai. i think the bus ran at 100Mhz
23:25:00 <mjg> hm
23:25:00 <linear_cannon> yeah i've got PC133
23:25:00 <linear_cannon> there's a few boards that did RDRAM or DDR, but they're uncommon
23:26:00 <linear_cannon> (but i want one)
23:26:00 <mjg> so what's the overhead of ping ponging a line over there?
23:26:00 <geist> so that sets it at like 200MB/sec max? i think it's 64bit wide, so that's 200MB/sec max bus bandwidth
23:26:00 <geist> dunno
23:26:00 <linear_cannon> ok, after a quick depclean: my p3 box has 531 packages installed
23:26:00 <linear_cannon> 32 in world, 48 in system, the rest are dependencies
23:26:00 <geist> but that was a fairly fast machine at the time, the idea of running a single process that eats 500MB of RSS was insane
23:27:00 <mjg> linear_cannon: would you be willing to comple this real quick: https://github.com/antonblanchard/will-it-scale.git
23:27:00 <linear_cannon> absolutely
23:27:00 <geist> and of course the only reason i can do that is i maxed out ram with 1GB, which would have been crazy expensive at the time
23:27:00 <mjg> you will need hwloc
23:27:00 <mjg> no idea gentoo package
23:27:00 <linear_cannon> no problem
23:27:00 <linear_cannon> i use hwloc on other systems
23:27:00 <linear_cannon> i can grab it
23:27:00 <mjg> aight
23:27:00 <geist> at the time i bought it i think i had 128MB which was IIRC a fairly large amount
23:27:00 <linear_cannon> "other systems" here mainly == xeon phi
23:27:00 <linear_cannon> i should run this there too
23:27:00 <geist> would be like 64GB for a desktop nowadays. more than you need but not ridiculous
23:27:00 <mjg> linear_cannon: would be funny if the lbi did not support i386 :p
23:28:00 <mjg> linear_cannon: if so i have a patched file to skip the dep
23:28:00 <geist> mjg: re bouncing a line. would also need to look into whether or not P3 had direct line transferral. wouldn't be surprised if it had to pushi t through ram
23:28:00 <geist> and there's no L3 of course
23:28:00 <linear_cannon> hmm, if i try to run this on the xeon phi i'll have to figure out how to suspend my wife's compute project on there
23:29:00 <linear_cannon> would just ask but wife is in bed sick
23:29:00 <mjg> dude
23:29:00 <geist> oh no, dont anger the wife
23:29:00 <mjg> the point is to run it on pentrium 3
23:29:00 <mjg> the dual cpu one
23:29:00 <linear_cannon> yeah i know
23:29:00 <linear_cannon> i'm doing that too
23:29:00 <linear_cannon> i'm just curious
23:29:00 <mjg> xeon phi reslts are gonna suck
23:29:00 <geist> i'd run it on mine but last time i fired it up the drive died. but i'm not sure it's the drive. i'm starting to think it's a failing power supply
23:30:00 <mjg> i can give you any cascade lake result you want right now
23:30:00 <geist> since it seems like any drive i stick in it eventually dies. and that's suspicious
23:30:00 <mjg> 96 threads
23:30:00 <mjg> geist: you plug in actual hdds?
23:30:00 <mjg> not some sdcard?
23:30:00 <heat> mjg, do you have the no hwloc patch anywhere?
23:31:00 <heat> for willitscale
23:31:00 <mjg> heat: https://people.freebsd.org/~mjg/.junk/64/main.c
23:32:00 <mjg> may need an extra fix up on linux
23:32:00 <mjg> anyhow here is the magic command list to bench: https://dpaste.com/GTDKJWH8F
23:32:00 <bslsk05> ​dpaste.com <no title>
23:33:00 <mjg> actually lemme tweak it:
23:33:00 <geist> mjg: honestly no because a) i have a bunch of old drives, though tghey're failing over time and b) it's much more fun to hear drives clicking in old machines
23:33:00 <mjg> https://dpaste.com/2Z3HDPWQW
23:33:00 <bslsk05> ​dpaste.com <no title>
23:33:00 <geist> in modern machines, obviously SSD is better, but for old ones. you want the full experience
23:33:00 <mjg> geist: not disagreeing, but the sd card is the common solution
23:34:00 <mjg> people notoroiusly skip the hdd and floppies
23:34:00 <linear_cannon> or compactflash
23:34:00 <mjg> perhaps lack of actual hw
23:34:00 <geist> yup eventually i'll need to get more of those. i only have a sd to scsi adaptor
23:34:00 <geist> never got around to getting a sd to ata one, etc
23:34:00 <linear_cannon> ide->compactflash is basically passive
23:34:00 <geist> but yeah i think it's mostly because dealing with old drives is a PITA
23:34:00 <geist> but i kinda like it, but it's all part of the same necrophilia
23:35:00 <mjg> so what's your opinion on people who mod their amigas with fpga cards
23:35:00 <mjg> you basically are running new hw in the old box
23:35:00 <mjg> and larping otherwise
23:35:00 <geist> no opinion, but i wouldn't do it because of that reason
23:35:00 <mjg> right
23:35:00 <mjg> anyway https://dpaste.com/2Z3HDPWQW 's the thing to run on the 2 cpu sucker
23:35:00 <geist> it' starts to get into the same territory as a C64 clone with a raspberry pi in it
23:35:00 <mjg> key points are 1. scalability of things which shoudl be linear 2. ... and the other one
23:35:00 <geist> not that i dont have a few of those kinda things, but those are for things that i wont realistically get real hardware
23:36:00 <linear_cannon> i'm fine with the fpga thing if you're treating it like it's a new thing, and not like it's the old thing
23:36:00 <mjg> geist: ye it would ruin the experience for me
23:36:00 <geist> ie, a PDP8 clone, a PDP11 clone, and an altair clone, which are all using some emulaiton of one type or another
23:36:00 <mjg> linear_cannon: there are people who try to use it as a daily driver
23:36:00 <linear_cannon> yeah, that's fine imo, if you can make it work
23:36:00 <mjg> i also know there are demos and games which *require* the new hw
23:37:00 <mjg> kidn of interesting they went that route, but it is their kink to have :)
23:41:00 <geist> yah, like 'had amiga kept developing we could have done this' i guess
23:41:00 <geist> the apple 2gs folks hae this transwarp thing that is increasingly hard to get ahold of
23:41:00 <geist> but was a huge speed increase *at the time* (like 2Mhz -> 13Mhz)
23:41:00 <geist> and kinda similar, some of the later 2gs games more or less required it
23:42:00 <linear_cannon> that was kind of a weird scenario since there was no technical reason the IIgs couldn't have shipped with a faster processor in the first place
23:42:00 <geist> so that falls into a weird territory where it's not technically out of the era to have one of these accellerators
23:42:00 <mjg> so i learned atari 65 xe has space on the board for liek 4 x the ram
23:42:00 <mjg> and it supports it
23:42:00 <geist> linear_cannon: yeah
23:42:00 <linear_cannon> they just didn't want the IIgs to overshadow the macintosh
23:43:00 <heat> geist, i've just noticed Zcmp actually only supports s0-s12 + ra
23:44:00 <heat> this is very very CISC
23:45:00 <heat> in any case this is embedded only, which sucks
23:45:00 <geist> heat: yeah they only have a 16 bit opcode, so the fact that they were able to squeeze it in
23:45:00 <geist> actually worse, because s10 for some reason is not in the list
23:45:00 <geist> i think it's probably ra is the s10 bit
23:45:00 <heat> ah yeah maybe
23:46:00 <geist> i noticed it because there was a chat about the layoutof a stack frame, and ra + s0 are inverted relative to what Zcmp will toss down
23:46:00 <geist> because the order, is i guess (bottom to top) ra, s0+
23:46:00 <geist> and currently when using a frame pointer, which is s0, it's [s0, ra] incrementing
23:47:00 <mjg> linear_cannon: so when do you think you can get around to that p3 vs will-it-scale
23:47:00 <heat> yep
23:47:00 <linear_cannon> mjg, it's running right now
23:47:00 <mjg> linear_cannon: kewl
23:47:00 <heat> I don't think it matters much but it's actually annoying
23:47:00 <heat> one day i'll need to grok riscv and JIT for it
23:47:00 <geist> heat: side note, in case you use frame pointers to backtrace, i debugged and discovered that riscv usea slightly nonstandard frame pointer layout
23:47:00 <heat> riscv opcodes that is
23:48:00 <heat> oh yeah? how so
23:48:00 <geist> notably the riscv frame pointer (s0) points to the CLA of the stack, not the old frame pointer
23:48:00 <geist> which effectively just means it points to +16 (on riscv64) from where the old frame pointer is
23:48:00 <geist> unlike at least x86 and arm
23:48:00 <geist> arguably what RV does here makes more sense, but it is technically different
23:48:00 <geist> i had to tweak the zircon backtracing code for this
23:49:00 <heat> oh yes, I take that into account
23:49:00 <heat> *(fp - 1) = ip, *(fp - 2) = nextfp
23:49:00 <geist> correct. instead of fp[1], fp[0]
23:49:00 <heat> yall have generic backtracing code?
23:50:00 <geist> yeah, i mean it's not that complicated, but we always build the kernel with frame pointers, and then just follow them backwards
23:50:00 <heat> or was it a part of the good ol' ctrl-c+ctrl-v arch/
23:50:00 <geist> no it's generic. down in the Thread class
23:50:00 <heat> odd
23:50:00 <heat> do most architectures follow the x86 way?
23:51:00 <geist> it's partially because you can also ask for a backtrace of a context switched thread, so the logic is basically Thread->GetBacktrace(&bt_struct)
23:51:00 <geist> and it figures out if it's the current thread or some thread that's blocked somewhere and starts accordingly
23:51:00 <geist> i think most arches follow the x86 way
23:52:00 <geist> i dont have it handy but there's a whole bug i think on github somewhere about it
23:52:00 <geist> and why RV did it one way vs the other
23:52:00 <geist> and most of the answer is: beause someone chose it that way and now we have it forver
23:53:00 <heat> yeah
23:53:00 <heat> some decisions in riscv really backfired
23:53:00 <geist> ah here's the discussion: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/18
23:53:00 <heat> AFAIK there's some regrets about having gp at all
23:53:00 <bslsk05> ​github.com: Consider standardising which stack slot fp points to · Issue #18 · riscv-non-isa/riscv-elf-psabi-doc · GitHub
23:54:00 <geist> yah we just went ahead and recycled gp in the kernel for current cpu. works great for that
23:54:00 <heat> huh
23:54:00 <heat> thats weird
23:54:00 <heat> how does codegen work?
23:54:00 <heat> surely you disable all relaxations?
23:54:00 <geist> you just dont get the gp relaxation
23:55:00 <geist> if you just omit the __global_pointer$ symbol from your linker script, the linker can't relax anything into small sections
23:55:00 <heat> oh, TIL
23:55:00 <geist> so it doesn't get it, and since GP is otherweise completely untouched by the compiler, it's just a free register
23:55:00 <heat> yeah
23:55:00 <geist> though i think there may be a more correct switch to disable it
23:56:00 <geist> something like --small-data-size=0 or something
23:56:00 <heat> does it (gp relaxation) make little sense in the kernel? or in general
23:56:00 <geist> where the compiler doesn't even assume the sdata and whantot exists
23:56:00 <heat> I haven't really tested it, just read some maskray rants
23:56:00 <geist> i dont think it does really. unless you can strictly control it. maybe f you set the automatic data size to 0, and thene xplicitly put critical stuff in the sdata or whatnot
23:56:00 <geist> then you can carefully control what gets the relaxation
23:57:00 <geist> my experience with futzing around wit it in LK is onc eyou have >2K of small data it becomes some crap shoot what goes in it
23:57:00 <geist> or you can reuse the register for something else
23:57:00 <mjg> linear_cannon: well? :)
23:57:00 * heat nods
23:58:00 <linear_cannon> it's still running. currently on malloc1
23:58:00 <heat> I guess cpunr is useful-ish
23:58:00 <geist> you only get 4K of small data, so it seems like a waste of a whole register
23:58:00 <mjg> linear_cannon: i'm trying to go to sleep mate, don't leave me hanging
23:58:00 <mjg> linear_cannon: duuude
23:58:00 <heat> although I personally have cpu_nr as a pcpu var
23:58:00 <mjg> linear_cannon: feel free to run all of them later, right now the set i linked would be the-besterested: https://dpaste.com/2Z3HDPWQW
23:58:00 <heat> so ld offset(tp), reg
23:58:00 <mjg> linear_cannon: it will take literally one minute and be short enough to paste into dpate
23:58:00 <geist> same. that's used all over the place, especially inside say a spinlock routine
23:58:00 <linear_cannon> ok, doing that
23:58:00 <geist> being able to load the current cpu nr from it would be nice
23:59:00 <geist> but honestly worst cas eyou could literally put the cpu nr in gp
23:59:00 <geist> only gotcha there (and i've been bit by that) is dont save/restore it in IRQ context
23:59:00 <heat> oh
23:59:00 <heat> I thought you were literally just stashing the cpunr in gp
23:59:00 <geist> oh gosh no. i meant put a pointer to the current cpu struct
23:59:00 <heat> and then using tp for the regular pcpu stuff
23:59:00 <heat> ah, so are you not using tp?