klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
cross has joined #osdev
FreeFull has quit [Ping timeout: 255 seconds]
FreeFull has joined #osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
smach has joined #osdev
Burgundy has quit [Ping timeout: 272 seconds]
vdamewood has quit [Quit: Life beckons]
<heat> gog, hello gogger, how read Breiðablik ungmennafélag
<heat> it looks like mumbo jumbo
<moon-child> wasn't Griwes going to write the STL from scratch?
nick64 has quit [Quit: Connection closed for inactivity]
<kaichiuchi> i've calmed down
<kaichiuchi> but
<kaichiuchi> I need to see the fruits of my labor sometimes
<heat> moon-child, Griwes is also a member of the committee
<heat> we and him are not the same :P
<kaichiuchi> ...is he?
<heat> yes
<kaichiuchi> that's actually pretty awesome
[itchyjunk] has quit [Ping timeout: 248 seconds]
[itchyjunk] has joined #osdev
FreeFull has quit []
smach has quit []
<kaichiuchi> okay
<kaichiuchi> so I started using std::byte and I can't increment it
<kaichiuchi> back to uint8_T
<heat> yes, std::byte is a raw byte, no increments
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
heat has quit [Read error: Connection reset by peer]
xenos1984 has quit [Read error: Connection reset by peer]
heat has joined #osdev
xenos1984 has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
<kaichiuchi> hi
<heat> i thought I had found a way to create a better looking version of acpica but it turns out their utility is broken af
<kaichiuchi> my cousin called me an hour ago
<kaichiuchi> he's 12, bear this in mind
<kaichiuchi> I gave him my K&R book because he wants to be a programmer one day
<kaichiuchi> apparently, his dog quite literally ate my K&R book.
<heat> >he wants to be a programmer one day
<heat> no
<kaichiuchi> yes
<heat> no
<kaichiuchi> well, more accurately, he wants to do game dev
<heat> god oh god no
<kaichiuchi> and I warned him what he was getting himself into
<heat> c r u n c h
<kaichiuchi> but, he wants to do it
<heat> he's 12
<kaichiuchi> yes
<kaichiuchi> I'm sure it'll wear off
<heat> he has plenty of time to change his mind
<kaichiuchi> I hope it does
<kaichiuchi> because I don't want to be there when he realizes they work 90 hour weeks with low pay and constant layoffs
<kaichiuchi> now, again, he's 12
<kaichiuchi> he doesn't understand any of that
<heat> tell him to become a doctor
<heat> do something noble
<heat> not this shit
<kaichiuchi> i'm certainly not going to discourage him from doing what he wants to do
<kaichiuchi> i wanted to be a doctor at one point
<kaichiuchi> pathologist
<kaichiuchi> but I'm more in tune with pharma
<kaichiuchi> one of the biggest mistakes I made in my life was doing what I love to do (programming, despite my rants) as a career
<kaichiuchi> heat: being a doctor isn't exactly as noble as you might think
<heat> god i feel you
<heat> why not
<kaichiuchi> having worked in a hospital, I've met plenty of them
<kaichiuchi> they're all miserable assholes
<kaichiuchi> I think a lot of them are miserable because they found out being a doctor isn't all it was cracked up to be
<heat> you can be a miserable asshole all you want, you still put your ass on the line to save lives
<kaichiuchi> when I worked at the hospital I was there when COVID was beginning
<heat> i can't imagine what it is to work a 24h+ shift lol
<kaichiuchi> the era of "you have COVID? doesn't matter who you are or what you are, you are DEAD"
<kaichiuchi> doctors and nurses were, of course, absolutely completely shit on by budgetary and political forces
<kaichiuchi> if you go to my GitHub page my profile picture has me in a lab coat
<kaichiuchi> that's because I was in the lab, but I saw a lot of nightmarish shit
<kaichiuchi> heat: one of the residents was so sleep deprived when he was woken up to take care of a trauma he was completely shell shocked and didn't know what to do, so he brushed his teeth and went back to sleep
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<kaichiuchi> I worked at 20 hour shift at one point
<kaichiuchi> what an experience
heat_ is now known as heat
<kaichiuchi> and as far as "doing what I love to do as a career" goes
<kaichiuchi> the money is good and I have to eat
<kaichiuchi> otherwise I would be perfectly content pushing carts at walmart
<heat> i mean, absolutely, that's why it's noble, you actually make an impact and sacrifice good chunks of your life
<kaichiuchi> man
<kaichiuchi> they talk so much shit on patients
<heat> I don't know any doctor that actually knew what they were getting into
<kof123> that's essentially supposed to be the story of house...observations from real life
<kof123> what if they said that to your face lol
<kaichiuchi> here's the problem, at least in the US: the debt is extreme, they're not paid *STARTING OUT* super well, and again, COVID idiots
<kaichiuchi> do you know how many doctors I've seen fight with patients about vaccinations
<heat> i made a good chunk more as an intern than a doctor starting out (after 6-7 years of medical school)
<heat> it's nuts
<kaichiuchi> they're miserable assholes because they're burned out and they're tired of getting shit on every day
<kaichiuchi> they really do not feel like they have as much of an impact as one might think
<heat> that's not exclusive to doctors :)
<kaichiuchi> of course not
<kaichiuchi> but I would say they have it worse
<kaichiuchi> when you're dealing with people's lives and they want to be idiots about it
<kaichiuchi> I would take being shit on every day in a PR over being shit on every day in an ER setting
<heat> well ofc but tech workers are VERY privileged compared to everyone else
<kaichiuchi> yeah...
<kaichiuchi> I don't even really do anything at my job
<kaichiuchi> my bug fix was one line and that was my entire work for the day
<kaichiuchi> i can definitely understand though, wanting to do something that makes an impact
<kaichiuchi> I would feel elated if one day I got to work on code for medical products and also fucking *terrified* that I might inadvertently kill someone
<kaichiuchi> heat: perhaps that's something you should consider doing
<kaichiuchi> would be a good middle ground
<kaichiuchi> it's not the first time you've mentioned "doctor"
<heat> nah
<heat> those are mostly jokes lol
<kaichiuchi> oh
<heat> although in a way I sometimes do question if this is the path I want to take for my life
<heat> at the end of the day who gives a shit for $misc_improvement for $software?
<kaichiuchi> at the end of the day who gives a shit*
<kaichiuchi> fixed that for you
<heat> I also question if my hobby becoming my day job will actually negatively affect my happiness
<kaichiuchi> i can only speak for myself
<kaichiuchi> it kind of does
<kaichiuchi> it's tempered by the fact I'm making good money for the first time... ever
<kaichiuchi> but I'm restricted to "rules" and "regulations" and "meetings"
<kaichiuchi> so much joy, gone
<heat> right :/
<kaichiuchi> and besides, I don't think you really want to make a super large impact, because then you end up being public and notable and your privacy is gone forever
<kaichiuchi> and every word you say is scrutinized
<heat> theres like, so much shit i'd love to do with my life
<kaichiuchi> you basically have to watch every single word you ever say in public again for the rest of your life
<heat> doing what I do best is only a small fraction of the fuckton of things I would love to do, learn, explore
<kaichiuchi> if I can get my gameboy emulator really really performant on a 386 that'd be cool, might earn me a blog post somewhere
<kaichiuchi> and that terrifies me.
<kaichiuchi> man
<kaichiuchi> you and I are young
<kaichiuchi> there's time
<heat> true
<heat> i just really feel out of place sometimes
<kaichiuchi> for me it's just imposter syndrome
<kaichiuchi> every day I feel like I don't know what I'm doing
smeso has quit [Quit: smeso]
smeso has joined #osdev
vdamewood has joined #osdev
rorx has quit [Ping timeout: 272 seconds]
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
lentement has joined #osdev
rorx has joined #osdev
lentement has quit []
gog` has joined #osdev
gog has quit [Ping timeout: 260 seconds]
scoobydoob has joined #osdev
scoobydoo has quit [Ping timeout: 272 seconds]
scoobydoob is now known as scoobydoo
jjuran has quit [Ping timeout: 265 seconds]
jjuran has joined #osdev
bgs has joined #osdev
bgs has quit [Remote host closed the connection]
heat has quit [Ping timeout: 260 seconds]
scoobydoo has quit [Ping timeout: 256 seconds]
scoobydoob has joined #osdev
scoobydoob is now known as scoobydoo
gog` has quit [Ping timeout: 272 seconds]
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eroux has joined #osdev
cyao has joined #osdev
<cyao> Hello, does someone have a working driver for ATA PIO write (28 bit mode)? Can't figure out why my driver is not working
smach has joined #osdev
gog` has joined #osdev
fwg has joined #osdev
gog` has quit [Client Quit]
gog has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
<geist> hmm, should be a few of these floating around
gildasio has quit [Ping timeout: 255 seconds]
<cyao> @geist couldn't find anything XD
xenos1984 has quit [Read error: Connection reset by peer]
<kazinsal> chances are there are enough of us here who don't have a driver for reference but can probably guess the problem with enough faulty code
<geist> yah i dont have one offhand. always meant to write a PIO ATA just to do it
<geist> but last i had checked it looked like a bunch of un-fun, so i always decide to work on something more fun
<kazinsal> same. goes on the pile of "do it at some point as a last resort post-panic thing"
<kazinsal> eg. if everything has collapsed to the point that DMA is no longer reliable then PIOing a panic dump to some reserved part of the boot partition should theoretically be doable, but that's an extremely last resort level of "oh shit"
<geist> yah main reason i'd do it is for lulz on some old 386 machine flaoting around
<kazinsal> for sure
<kazinsal> eventually if I get back into osdev then my "target market" is still very much compute and memory heavy being network based
<geist> yah reminds me i should give another stab at this little arm router like board thing
<kazinsal> so the peak performance benefits of a disk in IDE mode vs AHCI mode vs PCIe mode are so minimal
<geist> nvme FTW!
<kazinsal> AHCI mode gives you command queueing and PCIe mode gives you... idk, magic 32 gigs a second of data going fwoosh
<kazinsal> I care more about 32 gigs of fwoosh when I'm loading up call of duty than when I'm starting up a router
<cyao> Ok so my problem is that my Write ATA PIO function just keeps polling never breaks from the loop.
<bslsk05> ​github.com: AchieveOS/main.c at master · cheyao/AchieveOS · GitHub
<cyao> I think I done everything right, but it doesn't work on bochs and qemu
<cyao> If I add a timeout to the loop, it works on bochs, and half-works on qemu
x8dcc has joined #osdev
<cyao> Can anyone help me see what am I doing wrong?
<kazinsal> wait, is that ATAPI
<kazinsal> are you burning CDs
<kazinsal> because that's a whole new can of worms
<cyao> No its ATA PIO
<cyao> (Yes i putted it into the cdrom folder)
<cyao> (The cdrom folder is actually a separate thingy to burn all my files from the cdrom onto the hard disk)
<x8dcc> what does ".set" exactly do in gas? is it like a macro, like nasm's "%define"?
xenos1984 has joined #osdev
cyao has quit [Read error: Connection reset by peer]
cyao has joined #osdev
gildasio has joined #osdev
cyao has quit []
<geist> though it's an old doc, https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_chapter/as_7.html seems to say something like that yes
<bslsk05> ​ftp.gnu.org: Using as - Assembler Directives
<geist> it sets a symbol though and it seems that you can set it many times i thes ame doc
<geist> so it's kinda like a variable
GeDaMo has joined #osdev
<x8dcc> I think I found what I was looking for, not exactly define but similar. thanks anyway
Burgundy has joined #osdev
bnchs has quit [Ping timeout: 272 seconds]
bnchs has joined #osdev
Burgundy has quit [Ping timeout: 268 seconds]
SGautam has joined #osdev
x8dcc has quit [Quit: leaving]
smach has quit []
andreas303 has quit [Quit: fBNC - https://bnc4free.com]
dennis95 has quit [Ping timeout: 248 seconds]
lkurusa has joined #osdev
dennis95 has joined #osdev
andreas303 has joined #osdev
<kaichiuchi> hi
sham1 has quit [Ping timeout: 268 seconds]
sham1 has joined #osdev
smach has joined #osdev
SGautam has quit [Quit: Connection closed for inactivity]
smach has quit [Client Quit]
dude12312414 has joined #osdev
<Griwes> moon-child, /cc kaichiuchi heat: also, the primary part of my work description is working on a fork of libc++ lol
<kaichiuchi> so does this mean i can yell at you when i get mad
<kaichiuchi> (joke)
<ddevault> right
<ddevault> back to aarch64 problems
bgs has joined #osdev
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: boot/+aarch64/ - sourcehut git
<ddevault> current issue is that my higher half identity mapping works, but the kernel mapping does not work
<ddevault> I'm trying to map it at 0xffff800000020000
<ddevault> my L0 table has an entry at offset 0x80 with PT_TABLE and PT_AF
<ddevault> then there's a series of entries pointing to L1, L2, L3, and L4
<ddevault> L4 has PT_BLOCK | PT_NORMAL (Attr0, MAIR == 0 for that attr), PT_AF, PT_ISM, and PT_RW
<ddevault> plus the physical address to be mapped, not shifted or masked or anything, just OR'd in
<ddevault> to test it I just make an *int pointing to 0xffff800000020000 and dereference it, data fault
<ddevault> ruling out stupid mistakes: the page tables are all aligned on 4096, so is the physical and virtual addresses
<ddevault> walking the tables in gdb yields expected results
<j`ey> decode the esr!
<kaichiuchi> wait a minute, aren’t you the Sway guy?
<kaichiuchi> it just occurred to me
<ddevault> here's the bootfat.img that reproduces the issue given the same qemu setup as the other day: https://mirror.drewdevault.com/bootfat.img.gz
<ddevault> kaichiuchi: yeah
<kaichiuchi> ah neat
<ddevault> j`ey: for the life of me I have not been able to find the details in the manual for decoding it
* j`ey mkdir /tmp/drew
<ddevault> but here's the output from qemu -d int https://paste.sr.ht/~sircmpwn/964c6d20e344f9b36f428d55c585d77abcb1e930
<bslsk05> ​paste.sr.ht: paste.txt — paste.sr.ht
<j`ey> level 0
<j`ey> so there's an issue with the topmost table somehow
<ddevault> topmost table is all zeroes save two entries
<ddevault> 0x00 points to my identity map with PT_TABLE | PT_AF, which is a bunch of 1 GiB mappings, and works
<ddevault> 0x80 points to L2_kernel... wait
<ddevault> okay it should have pointed to L1_kernel
<ddevault> fixing that does not address the problem, though
<j`ey> same esr?
<ddevault> yes
<ddevault> bootfat.img.gz updated on my server with the fix
<j`ey> can you link the qemu line again
<ddevault> yeah
<bslsk05> ​paste.sr.ht: paste.sh — paste.sr.ht
<ddevault> adapt the AAVMF path according to your system
<ddevault> my AAVMF_CODE.fd.gz is available on mirror.drewdevault.com
<j`ey> thanks, Im actually busy with my own aarch64 exception issue, but I will try have alook in a bit
<ddevault> thanks :)
<ddevault> gonna keep bumbling around
<ddevault> can you help me find the details on decoding ESR real quick?
<j`ey> it's just in the ESR_EL1 section in the manul isnt it?
<j`ey> it's quite a long sectio
<j`ey> under 'general system control registers' chapter
<ddevault> it is
<ddevault> thanks!
<ddevault> hrm
<ddevault> ic ialluic doesn't help, so it's probably not the cache
<ddevault> nor dc ivac on the affected virtual addresses
<j`ey> ddevault: I cant find the code
<ddevault> ooh
<j`ey> sorry you linked it earlier
<ddevault> I got ESR to change
<ddevault> if I map my L1 table into every slot in the L0 table I get a L3 fault
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: boot/+aarch64/mmu.ha - sourcehut git
<ddevault> maybe I'm decoding virtual addresses incorrectly
<j`ey> yes I think so
elastic_dog has quit [Read error: Connection reset by peer]
elastic_dog has joined #osdev
* j`ey back to my issue
<zid> where heat
vai has quit [Quit: locale reset]
vai has joined #osdev
<vai> hi all
vai has quit [Client Quit]
<ddevault> well, now I have an L3 fault
<ddevault> so that's progress
<j`ey> re-up boot
<ddevault> for my L4 table index I do (vaddr >> 12) & 0x1ff
<ddevault> re-upped
<ddevault> 9 bits of virtual address resolved per table
<ddevault> 2^9-1 == 0x1ff
<ddevault> 12 bits for the page offset, so shift them off
<ddevault> seems like the right way to find the table offset
<ddevault> err, I think I have one too many page tables
<ddevault> need L0 => L1 => L2 => L3, no L4
<ddevault> but fixing that does not fix the problem nor change ESR
<j`ey> did you reupload? I seem to get the same ESR
<ddevault> just reupped without L4
<ddevault> I get ESR...
<ddevault> 0x96000007
<ddevault> which indicates a L3 fault
heat has joined #osdev
<ddevault> make sure you grab the gz'd one
<ddevault> lemme delete the others, they're bork
<j`ey> 0667988083ec2e6085345a1228b8177d bootfat.img
<j`ey> (md5)
<ddevault> I have 5fd1e93053e00fff5075197c474ccaec
<ddevault> err, that's unzipped fyi
<ddevault> zipped is 24c3bf867c3715b2d59573925db720fb
<ddevault> matches the one on the mirror, double checked
<ddevault> curl https://mirror.drewdevault.com/bootfat.img.gz | md5sum - # 24c3bf867c3715b2d59573925db720fb
<j`ey> 24c3bf867c3715b2d59573925db720fb bootfat.img.gz
<j`ey> 0667988083ec2e6085345a1228b8177d bootfat.img
<ddevault> no repro?
<heat> zid, hello, am warmth
<j`ey> o_o
<ddevault> my builds are not reproducible so this is gonna be annoying, but
<zid> heat: A friend was doing advent 13, I told him to run my input and tell me the answers to each [[2],3] pair, I updated my code to match his answers.
<ddevault> fresh build: .img 6859a468255d978e737c1b3f56b0ad12 .gz b090be87833b7fdf1837bc3a5eed54bb
<zid> Sorry your answer is incorrect.
<ddevault> uploaded to mirror
* zid stabs in the dick
<heat> lol
<ddevault> gives ESR=0x96000007 for me
<zid> He passes his own input but fails mine
HeTo has quit [Read error: Connection reset by peer]
HeTo has joined #osdev
<j`ey> ddevault: ok repros now
<ddevault> okay cool
<ddevault> was running around with my head cut off there trying to figure it out
<j`ey> ddevault: can you also put your most recent code up?
<ddevault> yep
<ddevault> 1sec
<ddevault> lemme clean out some debug stuff
<ddevault> pushed
<j`ey> PT_BLOCK, that should be PT_PAGE in level3, right?
<j`ey> in kmmap
<ddevault> hm
<ddevault> there is no PT_PAGE
<j`ey> it's 11
<ddevault> hrm
<j`ey> (0b11)
<ddevault> isn't that PT_TABLE?
<ddevault> I thought there were just two kinds, TABLE and BLOCK, and the latter mapped memory and the former mapped another table
<heat> haha
<heat> no!
<heat> I've fallen for that before
Vercas has quit [Remote host closed the connection]
<ddevault> the fuck is TABLE supposed to be then
<ddevault> my table value is 0b11
<heat> the last level has a PAGE for pages
<j`ey> dereferenced: 1179403647
<ddevault> are they both 0b11?
<heat> if you try BLOCK it doesn't work
<j`ey> ddevault: is that the right output?
<ddevault> ah, one of those hard questions
<ddevault> yes
<ddevault> translate it to hex and it's an ELF magic :D
<heat> i swear to fucking god j`ey is such a fucking expert at arm
<heat> god
<j`ey> pls no im dumb
<heat> ok demoted
<j`ey> oof
<ddevault> thanks j`ey <3
<j`ey> np
<j`ey> back to my own issue again, pain
<ddevault> good luck!
<j`ey> thanks. linux is hanging under kvm, painful to debug
<ddevault> ouch
<ddevault> 'course something is still wrong with my loader but that's an easier problem to solve
<ddevault> no spooky magic platform nonsense
Vercas has joined #osdev
k0valski18891 has quit [Ping timeout: 272 seconds]
<heat> j`ey, does BLOCK even mean anything in L3?
<heat> it's really weird that they created a PAGE instead of using BLOCK for L3 too
<j`ey> it's reserved
<heat> makes very little sense to me
<kaichiuchi> i’m starving
<kaichiuchi> my coworker gave me another eval board
<heat> eval board = C++ depression
<heat> don't get more eval boards
<kaichiuchi> nah I think I’m okay
<kaichiuchi> i was just doing too much too fast
<kaichiuchi> don’t know what I need to implement until the problem is solved in “idiomatic” C++
<kaichiuchi> and then optimize accordingly
immibis_ has quit [Remote host closed the connection]
immibis_ has joined #osdev
Left_Turn has joined #osdev
<ddevault> ✓ bootloader
<heat> woot
<kaichiuchi> nice
<mjg> heat: lol so mapple syroup went in without addressing the regression?
<heat> yes because it's a synthetic regression that doesn't affect real workloads
<mjg> wut
<mjg> u sure it does not
<kaichiuchi> what’s mapple syroup
<zid> bordo
<bslsk05> ​lore.kernel.org: [linus:master] will-it-scale.per_thread_ops -40.2% regression in mmap1 benchmark - kernel test robot
<kaichiuchi> that’s amazing
<mjg> heat: was this discussed anywhere
<bslsk05> ​lore.kernel.org: Re: [linus:master] will-it-scale.per_thread_ops -40.2% regression in mmap1 benchmark - Liam Howlett
<zid> in the reply by liam? :P
<zid> it makes sense, dumb data structure -> clever data structure, lowers some random insert/delete case's performance in exchange for more of some other thing
<mjg> > The regression was taken as an
<mjg> acceptable trade off for the gain on the read speed.
<mjg> this may or may not make sense, but as is it does sound very handwaivy
<mjg> i would expect a profile shipped to demonstrate what's going on
<mjg> for the change to be this big i strongly suspect they are doing something stupid which they don't realize, and which they never profiled for
<mjg> unfortunately there is no immediate info how much is the perf shafted by mitigations alone
<mjg> as in, if the test bot runs on a cpu where syscall rate is low, the actual mapple syroup impact is FUCKING ENORMOUS and undermeasured
<mjg> even with the 40% drop
<zid> this is a scaling test btw
<zid> not an actual perf test
smach has joined #osdev
<mjg> maybe i'll play with it later
<kaichiuchi> I wanna go home
<kaichiuchi> IAR is seriously one of the worst compilers I’ve had to use
<kaichiuchi> and my clang stuff isn’t mainline yet
<heat> kaichiuchi, so historically the vm region tree (which is THE source of info for most of the vm subsystem) has been a red-black tree with a huge rw lock around it. the red black tree isnt trivially RCU-able and the rw lock thing has sucked for performance, such that they did get region caches and shit (which were also poorly implemented as a linked list, go figure). the maple tree is a btree-like thing which also can do RCU
<heat> I can't properly explain what a maple tree is because tbh I don't quite understand it either, yet
<kaichiuchi> i got everything except maple tree
<heat> but if you dig around in lwn or linux docs iirc it's well explained there
<heat> anyway this is probably the largest change to linux vm in 20 years
<j`ey> omg im so dumb, wasted so long debugging this crap. just remembered 'earlycon' and I immediately get some useful output :|
nshp has joined #osdev
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
FreeFull has joined #osdev
Burgundy has joined #osdev
xenos1984 has joined #osdev
<kaichiuchi> we’ve all been there
<Ermine> heat: maybe there are papers on maple trees?
<heat> Ermine, not really, this is a new linux thing
<Ermine> I want to try to implement in minix or xv6
<bslsk05> ​lwn.net: Introducing maple trees [LWN.net]
<heat> you need RCU, good luck have patent
<Ermine> patent??? Well...
<Ermine> They all have expired.
<heat> nope
moberg has quit [Remote host closed the connection]
<Ermine> Those listed by wikipedia are.
<heat> RCU has like 15 patents or some ridiculous shit
<heat> you can't know if what optimization you're building is part of a patent that's still active or dead
<kaichiuchi> hey heat
<kaichiuchi> why do you work here?
<heat> work where
<kaichiuchi> someone in another division at my job wants to write the new project in C++
<heat> I would never do that, unless it's exactly my brand of C++
<kaichiuchi> but, I think in this case etlcpp is the Thing
wootehfoot has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
<mjg> heat:
<mjg> +#define MP_MAXDIGITS 21 /* strlen("16,000,000,000,000,000,000") == 21 */
<mjg> ... except that's 26
<heat> LMAO
<mjg> delivered by the venerable freebsd codebase
<mjg> i mean, an old geezer wrote it, so it must make sense
<mjg> amiright
<heat> where? I can't find it
<bslsk05> ​github.com: Search · MP_MAXDIGITS · GitHub
<mjg> rmoved now, see 6eeac1d921b573e39001e0bf47967060d6fb4347
<mjg> introduced 2008, disappeared 2021
<heat> Reviewed by: various
<heat> this is the kind of shit I like
<mjg> various is my middle name
<heat> ok *@
<FireFly> mjg: I was gonna say "I wonder if someone added the commas later", but I suppose removing down would make the strlen 20..
<mjg> it came with the initial commit
* FireFly shrugs
<mjg> distinguished bsd scholarly aside, this is a nice reminder to not trust comments
<kof123> yeah i was thinking this was nitpicking but implying that strlen() includes \0 is not a good sign
<kof123> i would totally do such things, and use +1 ...but a comment "+1 for terminating \0" etc.
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<Ermine> heat: anyway I'm not going to publish it.
<kaichiuchi> hi
<Ermine> hewwo
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
moberg has joined #osdev
gorgonical has joined #osdev
<gorgonical> A quick qemu question: does anyone know if the serial monitor on qemu behaves differently for input if you're in single stepping mode or attached via gdb?
<gorgonical> I get output just fine but input doesn't work
<gorgonical> this is for risc-v but probably applicable also to at least the arm qemu
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
smach has quit []
bgs has quit [Remote host closed the connection]
<heat> gorgonical, are your interrupts borken?
<heat> mjg, ofc you shouldn't trust interrupts, you need to trust your god-given man(9) pages
<heat> s/interrupts/comments/
<heat> me borken too
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
gog has quit [Read error: Connection reset by peer]
<geist> heat: nothing definitive right now but fiddled a bit with trying to get the dynamic stuff working on riscv last night. mostly a bunch of upgrading my linker scripts
<heat> I can't get Wl,--export-dynamic to not create a got and plt
<heat> which is a deal breaker
<geist> it seems to only be on arm64
<heat> and x86_64
<geist> note that using a got doesn't seem to be the problem, it's that in my case it doesn't *initialize* the got if you're exporting dynamic
<heat> at least on lld
<geist> it's like it expects you to fill it in because you got these fancy REL entries right here
<heat> man I get full blown relocations
<geist> --no-pie seemed to help i think
<heat> it's not the kind of thing I'm looking forward to have :)
<heat> I already pass no-pie
<geist> but yeah lld i expect is a completely different set of broken behavior
<heat> if this weird behavior entirely depends on the linker it might be a poor choice
gog has joined #osdev
<geist> well yeah that's the problem
<geist> is there some stable island of linkers and features to get it to generate this without needing local relocations. basically i just want a non relocatable library with exported dynamic section
<geist> it's the non relocatable part that's hard, because there's this built in assumption that exporting symbosl == relocatable
<heat> exactly
epony has quit [Ping timeout: 268 seconds]
<heat> i hate intel's fw C coding style
<heat> why am I looking at acpica
<heat> fuck
<Ermine> They use MS style don't they?
<heat> not quite
<heat> it's more fucked up
<heat> so this utility "acpisrc" can generate linux versions of ACPICA, which generally uses a more tolerable coding style
<heat> this util is very broken and doesn't generate correct code
epony has joined #osdev
<heat> at least acpica doesn't use STATIC VOID
<gog> heat
<heat> that's a plus right?
<heat> gog
<heat> gog
<heat> gog
<heat> gog
<gog> the breithablikk youth association
epony has quit [Read error: Connection reset by peer]
epony has joined #osdev
<gog> breiðablik ungmennafélagið?
<gog> is that what you said
<heat> yes
<gog> yeah
<gog> that's what it means
<gog> idk what it is
<heat> i got them in the europa conference league in my football manager game
<zid> it's the breiðablik youth association
<gog> bo
<gog> oh
<gog> that's a football conference here
<gog> iirc
<heat> poor fellas are semi-pro and still win the icelandish league
<heat> they got pounded by my manchester united
<heat> ez
<gog> man u is a premier league team in a large federation
<gog> iceland is small fish in that pond
<heat> absolutely
<heat> literal plumbers probably
<gog> nah the plumbers woudl be polish or romanian
<gog> their managers tho
<gog> all icelandic
<zid> That's great for them though
<zid> that their sunday league team gets to play manur
<gog> we live in a deeply neoliberal state
<bslsk05> ​www.uefa.com: Breidablik | UEFA Europa Conference League | UEFA.com
<heat> 3 wins 3 losses not horribl
<zid> heat: We should start a 5 a side team, register it in iceland, qualify for euros by virtue of being iceland's sole entry
<zid> and lose to real madrid in groups
<zid> because final seed vs 1st seed
<heat> champions league groups don't work like that
<zid> ah yes sorry, that's the flaw in that plan
<heat> basically we'd be in pot 4 with the shittier teams, every group has a member from each pot (1, 2, 3, 4)
<heat> we'd totally beat them btw
<heat> sheriff tiraspol (from transnistria, a separatist region in moldova) beat them, so why wouldn't we?
<zid> oh yea we'll absolutely smash em then
<gog> operating system development
<zid> we're devising an operational system for beating real madrid
epony has quit [Ping timeout: 246 seconds]
<zid> I don't either
<gog> luv me programmin
<gog> love me computer
<gog> 'ate going outside
<gog> 'ate sport (not raisist, just don loik it)
<gog> simple as
fwg has quit [Quit: so long and thanks for all the fish.]
atlas1 has joined #osdev
<zid> perfect
<zid> I just need to quadruple my bodyweight and shave my head
epony has joined #osdev
<heat> luv me web development
<heat> luv me javascript
<heat> 'ate C
<heat> simple as
<atlas1> hey, what
<atlas1> s up
<heat> not much
<heat> watchu wearin
<atlas1> Meaning?
<heat> watchu wearin
<atlas1> Shorts and a T
<heat> hot
<heat> wait
<heat> shorts????
<heat> what the fuck
<heat> it's like literally winter
<atlas1> Siberian guy, that moved to warmer country
<zid> heat: adidas, a polo, and a sweater
<heat> i'm also wearing adidas omgggg twiiiiiiiiiiins
<atlas1> zid, get a buzz cut, feels good to wear one
<zid> well we are hetero life partners afterall heat
* geist looks at everyone dissaprovingly
<heat> let me guess, you're wearing nike
<zid> It's okay geist, you can get your own adidas hetero life partner
<geist> heh wearing warm slippers actually
<geist> but i do have nike shoes
<zid> heat always trying to get into my adidas, smh
<atlas1> os development? Like, bruv, we are talking about drip only