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=21&m=11&d=23

Tuesday, 23 November 2021

00:10:00 <gog> https://www.youtube.com/watch?v=kWMmGEQbbgg
00:10:00 <bslsk05> ​'I am Borg' by MyRandomUploads (00:00:21)
01:29:00 <rustyy> geist: so, to avoid cache line bouncing between multiple cores and especially between numa nodes where cache line bouncing is much more expensive, instead of having only one global spinlock variable, you also introduce local copies of that spinlock, so that every cpu spins on the local variable while trying to lock the spinlock and thus avoids cache line bouncing. and the implementation is that global
01:29:00 <rustyy> spinlock, now, instead of having only 0 and 1 value also has an address/tail pointer in it, in its higher bits. and that address/tail ptr points to a last element (local spinlock variable) in the linked list, that list represents a queue of cpus trying to get that lock, the head of that list is the current owner of the spinlock. every time a new cpu wants to take a spinlock, it swaps the value/upper bits in
01:29:00 <rustyy> global lock, and updates old tail pointer "next" to itself. and so when any given cpu releases the lock it notifies only the next cpu that lock is available, booyakasha! =)
01:30:00 <rustyy> geist: i learned that from https://vimeo.com/484896774 my best wishes to the author!
01:30:00 <bslsk05> ​'Vegard Nossum - Parallelisation in the Linux Kernel' by Handmade Seattle (00:46:53)
04:43:00 <geist> rustyy: nice. yeah was curious where you learned it from
09:32:00 <klange> f*** it, I'm writing a POSIX shell in Kuroko, try to stop me
09:32:00 <kazinsal> doooo iiiiit
09:32:00 <gog> nice
09:33:00 <auronandace> my you have great success
09:33:00 <auronandace> may
09:33:00 <klange> it's mostly string manipulation, right? the actually "running stuff" bit is secondary~
09:33:00 <zid> process scripts, prepare execve calls, ???, crash
09:34:00 <kazinsal> some magic job control stuff if you dare
09:34:00 <gog> crash on ctrl-z
09:34:00 <gog> job handled
09:34:00 <klange> My current shell supports job control, but ooh boy is it throwing shit at the wall and seeing what sticks
09:35:00 <klange> actually the only reason I feel remotely confident in doing this in kuroko is because I already did the "running stuff" part and I really need to focus on the "string manipulation" part.
09:43:00 <bauen1> it's always fun to watch somebody slowly decent into madness when trying to implement POSIX ...
09:44:00 <gog> fuck it, POSEVEN
09:44:00 <gog> i'm putting on my programming socks
09:44:00 <kazinsal> the POSIX standard is succeeded by POSX, itself succeeded by POSXI
09:45:00 <gog> that's a technically funnier joke than mine
09:49:00 <moon-child> programming socks!
09:49:00 <gog> yes
10:02:00 <FireFly> they good
10:13:00 <gog> oh hey i know you
10:13:00 <gog> :3
10:14:00 <zid> I hate socks
10:17:00 <moon-child> well
10:17:00 <moon-child> I hate you
10:17:00 <zid> they either fall down, or make my legs hurt
10:17:00 <gog> harsh
10:17:00 <gog> have you tried a garter belt?
10:18:00 <zid> I could just wax my legs I guess
10:18:00 <moon-child> stockings!
10:34:00 <FireFly> gog: :p
15:27:00 <ornxka> im riscv64 in qemu
15:28:00 <ornxka> i set bit 7 of the mie and interrupts are enabled globally and i wrote to the mtimecmp register, but i dont get my interrupt..
15:29:00 <ornxka> i get other interrupts, and i loop until mtime >= mtimecmp, so i know at some point point mtime > mtimecmp, but i never get an actual interrupt for it
15:29:00 <ornxka> any ideas?
15:41:00 <Piraty> klange: better join landley for his toybox shell applet ;)
15:44:00 <Piraty> "Let's just say that klange is a bloody genius" -- lol (src: https://www.publish0x.com/hatty-hacking/installing-kuroko-lang-on-openbsd-xznzgzz )
15:44:00 <bslsk05> ​www.publish0x.com: Installing Kuroko Lang on OpenBSD
15:52:00 <ornxka> update: i was off by one in my indexing of the bits in mie lol
20:08:00 <geist> ornxka: oh good. i was looking at your question initially and didn't see aything wrong
20:16:00 <zid> did you get your page tables and pci working geist?
20:16:00 <zid> If so your code is as advanced as mine :P I really should finish that network stack
20:16:00 <geist> i did, thought i haven't worked on it much yesterday
20:17:00 <geist> but i also remembered there were a fair amount of deficiencies in the x86 mmu code, which was mostly submitted by someone else
20:17:00 <geist> for zircon we had more or less completely rewritten it as a result
20:17:00 <zid> My mmu is even more deficient, it can map and it can
20:17:00 <geist> i need to write more unit tests for the mmu code and then really spiff them up
20:17:00 <zid> That's the end of that sentence
20:17:00 <geist> yah map/unmap/protect/query are the basic ops
20:17:00 <zid> unmap is for suckers
20:18:00 <zid> just leak all the pages and forget your cr3 value
20:18:00 <gog> memory protection is pointless anyhow
20:18:00 <geist> yah if you dont deal with unmap or protect you never have to deal with TLB shootdown
20:18:00 <zid> could also just never unmap anything, yea
20:18:00 <zid> bogo alloc won't fail for a while
20:20:00 <GeDaMo> One page table to bind them all and in the darkness map them :P
20:23:00 <zid> GeDaMo go back to your asm cave
20:24:00 <GeDaMo> I'm still there! :P
23:22:00 <ZetItUp> biggest brainfart in history... 31 to 38 thats 7 bytes
23:39:00 <rustyy> fencepost error? https://en.wikipedia.org/wiki/Off-by-one_error ?
23:39:00 <bslsk05> ​en.wikipedia.org: Off-by-one error - Wikipedia
23:42:00 <ZetItUp> yes :D
23:49:00 <klange> i feel so close yet so far from having this Surface be usable test machine https://cdn.discordapp.com/attachments/783369041661394995/912851932815716362/IMG_8514.jpg
23:51:00 <klange> boots to gui, all eight (eh, four with two threads each?) cores started, can talk to the xhci controller, just... need a driver for it, and will probably need to figure out some IRQ stuff because my love for the legacy PIC likely comes to an end here
23:54:00 <gog> nice
23:58:00 <kazinsal> I'm guessing there's some horrid AML bytecode system for figuring out which processors are SMT pairs
23:59:00 <kazinsal> for your own sanity re: IRQs I'd recommend just skipping the IOAPIC and going straight to MSI/MSI-X because modern hardware should support it no problem