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
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
craigo has quit [Ping timeout: 255 seconds]
<klange> Something sounds seriously wrong with your compiler.
<heat> nope
<heat> retried with clang, same long ass compile time for some files
<klange> `-E | wc -l` is only 10k lines; there are no shenanigans at play
<heat> also it doesn't fully work with clang atm
termin has joined #osdev
<heat> obj_numeric.c chokes up because __builtin_floor() calls floor()
<klange> LDLIBS=-lm CC=clang make
<heat> that's not how the meson build works :)
<klange> then just link with libm in general, this sounds like a you problem
<heat> why?
<epony> the colon parenting thesis is a failure from the initial thinko, only polips there
<heat> I don't think the makefile does
<heat> you calling __builtin_floor seems like you're hoping you don't have to call floor()
<heat> which seems to work for gcc and not clang
<heat> ... now the build is a good bit faster
<heat> confusion.jpeg
<klange> were you burning all your CPU cores with something else?
<klange> > laptop
<klange> Maybe you were power throttled.
<heat> i don't think so
<heat> compiler.c is now down to 3.9s
<klange> I should just replace that __builtin_floor with a standard ieee double floor implementation, I already have an implicit requirement for ieee floats elsewhere...
<heat> why not just a cheeky -lm?
<klange> It is literally the only thing that would pull in lm (without `import math`, which is a shared object module) and it's just to get int//float to work.
<klange> And "LDLIBS=-lm make" _is_ my cheaky `-lm` ;)
<heat> fwiw some libraries don't actually have the separation
<klange> Yes, like mine.
<heat> so libc pulls in all of libm
<moon-child> why not just always link libm?
<heat> python seems to
<klange> CPython has a lot more integrated libm stuff.
<heat> I don't think you would lose much by bringing in libm
<heat> static just brings in that single func, shared should demand fault ~only the floor func
wereii_ has quit [Quit: ZNC - https://znc.in]
<klange> It's a matter of principles - being able to say the core interpreter requires only a minimal libc.
wereii has joined #osdev
gabi-250_ has quit [Ping timeout: 255 seconds]
<heat> klange, testing if -lc has it and gnu-lib'ing your own is an option
gabi-250_ has joined #osdev
<heat> particularly in meson. make may be more complex
<heat> (you could also switch to AUTOCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONF)
<klange> I could jump off a briodge.
<heat> jumping off a bridge over using autoconf is a valid option
<heat> *opinion
<klange> I thought I mentioned this in the readme or docs somewhere but I guess not, but my approach here really is "if the build complains about floor, try adding LDLIBS=-lm and see if that helps". If you would like to automate that process for the Meson build, feel free.
<klange> That single panel strip has a wikipedia article. https://en.wikipedia.org/wiki/Cow_Tools
<heat> moon-child, you're incredibly based
<klange> A quick way to check if __builtin_floor works sufficiently would be to try to build 'int main(int argc, char * argv[]) { return printf("%f\n", __builtin_floor(atof(argv[1]))); }' and see if it fails to link. That covers both `__builtin_floor` being inlined and libc having `floor`.
baine has quit [Ping timeout: 268 seconds]
<klange> and shit like that is how any configure script, autoconf or not, essentially works
baine has joined #osdev
<mrvn> and that should really be something that is provided pre-computed by the OS
<klange> that one is a bit... esoteric
<klange> but plenty of other stuff, yeah, there could definitely be a database of all the things a configure script would care to look for
<mrvn> well, half. having math stuff in libc isn't that uncommon.
<mrvn> or math stuff available by the FPU
<klange> just take the most complicated configure script and store its cache somewhere
<heat> surely you mean AC_CHECK_FUNC
<mrvn> klange: yeah. a os/arch/system cache for autoconf tests would be nice.
<bslsk05> ​github.com: Add meson build system support by heatd · Pull Request #38 · kuroko-lang/kuroko · GitHub
<heat> i could also actually check if __builtin_floor works but damn that would kind of suck wouldn't it
<mrvn> in this case gcc should provide autoconf tests for all builtin functions that may be problematic.
<mrvn> i.e. builtins that actually aren't builtin but make library calls.
nyah has quit [Quit: leaving]
<bslsk05> ​gist.github.com: meson.build · GitHub
<heat> eww
<heat> actually, I don't need that do I
<heat> wait... hmm
<heat> yeah I probably do
<klange> This does pretty much exactly what it's supposed to do. Any cleanup would be around getting rid of the stdlib/stdio bits, but I wanted to ensure it wasn't evaluating a constant or something silly.
<heat> yep
<klange> maaaybe replace atof with strtod since I don't actually use 'atof' but I do expect 'strtod' to exist as the compiler uses it.
<klange> so if you get extraneous failures from either of printf or strtod you are extra fucked anyway :)
<mrvn> atof() is horrible. You should replace that anyway regardless of other concerns.
baine has quit [Quit: WeeChat 3.7.1]
xvanc has quit [Remote host closed the connection]
baine has joined #osdev
xvanc has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
vdamewood has quit [Quit: Life beckons]
xvanc has quit [Ping timeout: 264 seconds]
<epony> avoid a2m
frkazoid333 has joined #osdev
<klange> At least make sure the "a" is clean and sanitary first.
<heat> klange, re codecs, that is SUPER awkward
<heat> is there no way those scripts could be idk, shell scripts?
<heat> cuz this forces a cross compile to build two kurokos
pog has quit [Ping timeout: 256 seconds]
<klange> Uh, no, they are huge complicated Kuroko scripts - and I didn't even write them.
<klange> Meson doesn't support "build the thing, then use it to build other things"?
Arthuria has joined #osdev
<heat> yes
<heat> it's just awkward
riverdc has quit [Quit: quitting]
riverdc has joined #osdev
<klange> I guess we _could_ commit the results...
<klange> but they're, like, 3M for dbdata.krk and 1.3M for dbextra_data_8bit.krk
xvanc has joined #osdev
xvanc has quit [Ping timeout: 255 seconds]
xvanc has joined #osdev
elderK has joined #osdev
bitterlollipop has joined #osdev
baine has quit [Ping timeout: 256 seconds]
baine has joined #osdev
bitterlollipop has quit [Ping timeout: 255 seconds]
jjuran has quit [Read error: Connection reset by peer]
jjuran has joined #osdev
m5zs7k has quit [Ping timeout: 268 seconds]
m5zs7k has joined #osdev
m5zs7k has quit [Ping timeout: 260 seconds]
m5zs7k has joined #osdev
bliminse_ has quit [Ping timeout: 256 seconds]
m5zs7k has quit [Ping timeout: 256 seconds]
bliminse has joined #osdev
m5zs7k has joined #osdev
termin has quit [Read error: Connection reset by peer]
baine has quit [Quit: WeeChat 3.7.1]
baine has joined #osdev
heat has quit [Ping timeout: 256 seconds]
elastic_dog has quit [Ping timeout: 256 seconds]
elastic_dog has joined #osdev
baine has quit [Quit: WeeChat 3.7.1]
baine has joined #osdev
baine has quit [Client Quit]
Vercas3 has joined #osdev
Vercas has quit [Ping timeout: 255 seconds]
Vercas3 is now known as Vercas
Arthuria has quit [Remote host closed the connection]
baine has joined #osdev
bradd has quit [Remote host closed the connection]
elastic_dog has quit [Ping timeout: 264 seconds]
bradd has joined #osdev
elastic_dog has joined #osdev
JerryXiao has quit [Quit: Bye]
JerryXiao has joined #osdev
bgs has quit [Remote host closed the connection]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
slidercrank has joined #osdev
moon-child has quit [Quit: !]
moon-child has joined #osdev
baine has quit [Ping timeout: 255 seconds]
baine has joined #osdev
danilogondolfo has joined #osdev
GeDaMo has joined #osdev
elastic_dog has quit [Ping timeout: 264 seconds]
elastic_dog has joined #osdev
gog has joined #osdev
remexre has quit [Read error: Connection reset by peer]
remexre has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
danilogondolfo has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
nyah has joined #osdev
jjuran has quit [Ping timeout: 252 seconds]
jjuran has joined #osdev
baine has quit [Ping timeout: 255 seconds]
baine has joined #osdev
bauen1 has joined #osdev
V has quit [Remote host closed the connection]
V has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas has joined #osdev
xvanc has quit [Remote host closed the connection]
Vercas5 has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas5 is now known as Vercas
<klange> Can do that little __builtin_floor check in the Makefile: https://gist.github.com/klange/4f712b43273344e85a78c0b4fecd8a2a (adds maybe ~0.02s of time to each make invocation on my desktop)
<bslsk05> ​gist.github.com: diff.patch · GitHub
baine has quit [Ping timeout: 268 seconds]
baine has joined #osdev
MuonNeutrino has quit [Quit: Ping timeout (120 seconds)]
MuonNeutrino has joined #osdev
Andrew has quit [Remote host closed the connection]
Andrew- has joined #osdev
xvanc has joined #osdev
xvanc has quit [Remote host closed the connection]
wand has quit [Ping timeout: 255 seconds]
nyah has quit [Ping timeout: 260 seconds]
Andrew- is now known as Andrew
nyah has joined #osdev
gabi-250_ has quit [Ping timeout: 255 seconds]
gildasio has quit [Ping timeout: 255 seconds]
gabi-250_ has joined #osdev
wand has joined #osdev
baine has quit [*.net *.split]
epony has quit [*.net *.split]
moon-child has quit [*.net *.split]
mahk has quit [*.net *.split]
ZipCPU has quit [*.net *.split]
sprock has quit [*.net *.split]
matthews has quit [*.net *.split]
bnchs has quit [*.net *.split]
energizer has quit [*.net *.split]
thaumavorio_ has quit [*.net *.split]
dminuoso_ has quit [*.net *.split]
k4m1 has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
grange_c0 has quit [*.net *.split]
aws has quit [*.net *.split]
ebb has quit [*.net *.split]
Archer has quit [*.net *.split]
j`ey has quit [*.net *.split]
Stary has quit [*.net *.split]
meisaka has quit [*.net *.split]
particleflux has quit [*.net *.split]
DoubleJ has quit [*.net *.split]
night has quit [*.net *.split]
gildasio has joined #osdev
energizer has joined #osdev
baine has joined #osdev
sprock has joined #osdev
moon-child has joined #osdev
dminuoso_ has joined #osdev
k4m1 has joined #osdev
grange_c0 has joined #osdev
Archer has joined #osdev
aws has joined #osdev
j`ey has joined #osdev
Stary has joined #osdev
DoubleJ has joined #osdev
mahk has joined #osdev
bnchs has joined #osdev
meisaka has joined #osdev
matthews has joined #osdev
thaumavorio_ has joined #osdev
ZipCPU has joined #osdev
fkrauthan has joined #osdev
particleflux has joined #osdev
night has joined #osdev
bradd has quit [Ping timeout: 260 seconds]
gildasio has quit [Ping timeout: 255 seconds]
ebb has joined #osdev
Left_Turn has quit [Ping timeout: 252 seconds]
gildasio has joined #osdev
nyah has quit [Ping timeout: 252 seconds]
nyah has joined #osdev
nur has quit [Remote host closed the connection]
grange_c01 has joined #osdev
grange_c0 has quit [Quit: Ping timeout (120 seconds)]
grange_c01 is now known as grange_c0
johngammerson has joined #osdev
<johngammerson> ey hey
<johngammerson> hey
johngammerson is now known as ilovethinking
nj0rd_ has joined #osdev
<nikolar> Hello there
nj0rd has quit [Ping timeout: 255 seconds]
<ilovethinking> is it an elegant "hack" to make my grub image in a vm
<ilovethinking> and then run it on my host
<Mutabah> eh, not really elegant or a hack? Seems maybe practical though
epony has joined #osdev
sinvet has quit [Remote host closed the connection]
sinvet has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
elastic_dog has quit [Killed (tungsten.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
<gog> hi
<zid> goggle
<gog> ziddle
<gog> what's crackin
<zid> I take it I was banned from playing factorio for my staunch anti-gog stance
<zid> and pro-tree
<gog> no i just quit playing again
Brnocrist has quit [Ping timeout: 255 seconds]
Brnocrist has joined #osdev
baine has quit [Ping timeout: 268 seconds]
jjuran has quit [Ping timeout: 255 seconds]
baine has joined #osdev
baine has quit [Quit: WeeChat 3.7.1]
baine has joined #osdev
Vercas1 has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas1 is now known as Vercas
nur has joined #osdev
levitating has quit [Ping timeout: 246 seconds]
levitating has joined #osdev
marshmallow has joined #osdev
dude12312414 has joined #osdev
slidercrank has quit [Ping timeout: 248 seconds]
<pitust> ilovethinking: why are you hell-bent on using grub?
ilovethinking has quit [Quit: WeeChat 3.8]
<gog> heh
<pitust> lmao
<pitust> i think that answers that question doesn't it
<gog> not really
<pitust> he was banned from the osdev discord before joining here
<gog> heh
<pitust> soo
<gog> do you know why
epony has quit [Remote host closed the connection]
<pitust> gog: why he was banned? "discord ban evasion"
epony has joined #osdev
<gog> ooh
<zid> doesn't surprised me he'd get banned from anywhere with moderation
<gog> i should be working but my boss went home and i already did two tickets today
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
xvanc has joined #osdev
<gog> i'm doing the opposite of working and looking at ilovethinking's code
[itchyjunk] has joined #osdev
elastic_dog has quit [Remote host closed the connection]
elastic_dog has joined #osdev
gog has quit [Quit: Konversation terminated!]
baine has quit [Ping timeout: 264 seconds]
baine has joined #osdev
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
zxrom has quit [Ping timeout: 246 seconds]
johngammerson has joined #osdev
<johngammerson> hewwo fwend
<johngammerson> s
zxrom_ has joined #osdev
zxrom_ is now known as zxrom
sinvet__ has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
sinvet has quit [Ping timeout: 255 seconds]
bauen1 has joined #osdev
ptrc has quit [Remote host closed the connection]
ptrc has joined #osdev
Celelibi has quit [Ping timeout: 246 seconds]
gog has joined #osdev
Celelibi has joined #osdev
mctpyt has joined #osdev
air has quit [Ping timeout: 255 seconds]
mctpyt has quit [Ping timeout: 246 seconds]
Left_Turn has joined #osdev
Left_Turn has quit [Max SendQ exceeded]
Left_Turn has joined #osdev
sinvet__ is now known as sinvet
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
johngammerson has quit [Ping timeout: 264 seconds]
FreeFull has joined #osdev
* geist yawns
<geist> think i have a cold :(
<geist> also my cat left a dead mouse next to my bed
<geist> though thats actually kinda cute
<mjg> that's like giving you a dead fish in a mafia movie
<mjg> nobody gets this
johngammerson has joined #osdev
johngammerson is now known as ilovethinking
<ilovethinking> hey, good news: i managed to get grub-mkrescue work on docker
<ilovethinking> bad news, im trying to put OK onto the screen but there's nothing
<ilovethinking> mov dword [0xb8000], 0x2f4b2f4f
<ilovethinking> it just does nothing, what can be the reasons to this?
wand has quit [Ping timeout: 255 seconds]
baine has quit [Ping timeout: 260 seconds]
<gog> geist: ew but aw
<geist> gog: yeah, shes a sweetie when it comes to murdering smaller animals and presenting to me
<geist> but she is a cat, and thus thinks of murder all day
<gog> one of the local cats that we used to let in brought a huge rat and a bird in
<gog> we stopped letting her in after that lol
<ilovethinking> ew gog
<ilovethinking> i thought u were nice
baine has joined #osdev
<gog> the rat i found right away, the bird was under my bed for a couple days i think :|
wand has joined #osdev
<nikolar> Did you find it by smell
frkazoid333 has quit [Ping timeout: 252 seconds]
<gog> no i saw her go under the bed with the rat so i looked and also found the bird
<gog> glad i did because i didn't want to find it by smell lmao
<zid> my mother did a good one
<zid> found an injured bird and left it on the window sill
<zid> it was missing when she came back to check on it, shut the window and forgot about it
<zid> found it a few days later rotting on the floor
slidercrank has joined #osdev
<gog> oops
craigo has joined #osdev
ilovethinking has quit [Ping timeout: 268 seconds]
bauen1 has quit [Ping timeout: 264 seconds]
gorgonical has joined #osdev
<gorgonical> Who allowed the arm people to name two very different registers one letter different: midr_el1 and mpidr_el1
<gorgonical> I've got secondary core bringup saying it's initializing core #4294967295 and while I don't know much I'm pretty sure this SBC doesn't have that many cores
<GeDaMo> Easter egg! :P
<geist> heh. well, yeah
<geist> they like their letter soup for registers
<geist> also if you note: mpidr has some high bits that means something
<geist> so yo uneed ot mask those out to get the raw number
<gorgonical> yeah like cluster naming or something right
<geist> there are 3 or 4 8 bit fields (AFF0, AFF1, etc) and iirc bit 31 or whatot is 'this is part of a SMP system' bit
<gorgonical> yep yep
<geist> or something like that, it's useless now, but you hae to mask it out
<geist> or there's an MT bit i think, saying if this is SMT or not
<gorgonical> "arm64 is better because it doesn't have the x86 legacy" is increasingly untrue
<gorgonical> but it's better
<geist> it may be more logical because it has less legacy, but it's also designed by computer engineers
<geist> so they tend to be less friendly, more 'up your game' to deal with it
<gorgonical> "don't like how the chip works? make your own lmao"
<geist> "as long as it conforms to these 1700 details on this checklist"
<gorgonical> computer engineers are crazy people
<geist> riscv is like dealing with a go-kart in comparison. kinda fun, though as soon as you start really trying to compete you realize you're way behind
<geist> and lots of smart people are having lots ofmeetings to add more layers of complexium that is inevitable
<gorgonical> my uncle in law is a process engineer at ibm and his entire career is predicated on the chemistry of increasingly miniaturizing components
<mjg> > uncle in law
<mjg> lol
<mjg> or is that something people actually say
<gorgonical> i mean he's my partner's uncle so
<gorgonical> lol
<gorgonical> i suppose specifying the relationship is unneeded and just uncle would have been good enough
<mjg> that much i understood
<mjg> i'm saying it sounds funny
<gog> i'm your mother's cousin's houskeeper's brother's former college roommate
<sbalmos> your'... DAMMIT
<mjg> mother in law's
<sbalmos> damn you gog
<gog> :D
<gorgonical> i could never have guessed the flak I'm getting for this
<mjg> what flack
<sbalmos> nobody expects The Spanish Inquisition
<mjg> i'm sayng it is funny, not that you should contriburte to openbsd
<mjg> arthur flak
<gorgonical> that's a deep cut
<geist> yah i always thought 'in law' sounds bad
<geist> for no particular reason, i just dislike saying it too
<gorgonical> i propose an alternative set of words: wuncle/huncle/spuncle and waunt/husbaunt/spaunt depending on what you call your martial partner
<gorgonical> >martial partner
<gorgonical> I'm full of it today huh
<mjg> :]
<mjg> step uncle
<gorgonical> stuncle
<gorgonical> speaking time parsimony
<mjg> ex-lawyer in law
<mjg> i wrote a patch 7 months ago, worked like in a shampoo commercial
<mjg> rebased it today, liek 0 conflicts
<mjg> ... and it crashes
<xvanc> ex-half-sister-in-law, thrice removed
* mjg <-- sad panda
<gorgonical> can we just get back to lojban in terms of linguistic density with kinship terms this way?
<gorgonical> so not "rebase, commit, repeat"?
<mjg> did you know that git has a command literally named 'rerere'?
<gorgonical> what in tarnation
<gorgonical> "Reuse recorded resolution of conflicted merges"
<bslsk05> ​git-scm.com: Git - git-rerere Documentation
<gog> heh wish i knew to tell my boss about this one
<gog> he was in merge hell yesterday (because of me but also him)
<sbalmos> git still doesn't have a git wuewuewue though
<gog> when will they have git wololololo
<mjg> :]
<gog> so you can convert peasants
<mjg> that cuold easily be cvs import
<gorgonical> a tool for converting other cvs systems to git repos
<gog> yes!
<gog> hahaha
<gog> do it for the dank meem
<sbalmos> can I have git lalala which ignores all merge conflicts and just shoves everything up the pipe?
<gorgonical> that's just git push --force
<sbalmos> I know, but lalala sounds better. ignores more.
<mjg> you forgot git add and commit
<gorgonical> git justfuckingdoit
<bslsk05> ​'Don't Push It Don't Force It' by Leon Haywood - Topic (00:05:27)
<mjg> alias ffs=sudo !!
<mjg> protip^^
<gorgonical> an interesting idea would be a git dwim tool that attempts to guess what you want to do based on context, like emacs packages do
<gorgonical> git dwim; !!; !!; !! should result in a succesful commit merge push cycle
<gorgonical> automagically
<gorgonical> it would have the added bonus of being enormously cursed
<mjg> how about the following extension
<mjg> checks how much of a spaghetti your lcal clone is
<mjg> and tells you to get a job at mcdonalds instead of coding
* mjg hacks it up real quick
<gorgonical> "if you like spaghetti so fucking much get a job at olive garden"
<gog> ngl i should be working in food service rather than coding
<sbalmos> git down && boogey
<geist> git on up && git down
<gorgonical> thoughts on whether wednesday should be pizza day lads
Left_Turn has quit [Ping timeout: 252 seconds]
<sbalmos> geist: Returned E_OWW!
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
knusbaum has joined #osdev
<mrvn> gorgonical: git can import cvs, svn, hg
<mrvn> probably even rcs
<gog> cvs is just spicy rcs
<mrvn> importing cvs is a real pain though because you have to figure out what makes a version across all the files.
<gog> i never really used it much
<gog> i only know that it's based on rcs which i never used directly :P
<mrvn> every file has a version but you might have "foo.h v1.2" and "foo.c v1.1.3" because they are all versioned separately.
<mrvn> Note: . means a fork
<FireFly> that sounds like pain
<gorgonical> that's really how the versioning works? jesus christ
<gorgonical> that's ridiculous
<gog> i did use svn a bit more and i remember it being annoying
bauen1 has joined #osdev
<zid> svn is cvs done right though!
elderK has quit [Quit: Connection closed for inactivity]
<zid> Meaning it actually supports commits, being the main change
<gorgonical> an actual osdev question: this secondary core bringup has got garbage in the cpu_id field, but I know I'm setting it on the first core. This smells like a cache coherence problem, but it's unclear how I could be sure. I was pretty sure I ironed this problem out before.
<gorgonical> Because the value goes from 0 to 1 on the first core, but the second core reads some garbage value. So it sounds like cache pollution or coherence. Does anyone know if it's possible to force coherence with flushes or similar? E.g. to figure out if my page tables are misconfigured or whatever?
<gorgonical> Before I delve into the tags and manuals and such
<gorgonical> this isram64
<gorgonical> arm64*
<FireFly> is a VCS without commits even a VCS? :p
<gorgonical> oh wait. I just realized this value is 0xffffffff, which makes me think I'm setting this somewhere else
<gorgonical> So someone is infact setting this value elsewhere. But y tho
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas has joined #osdev
jjuran has joined #osdev
air has joined #osdev
Matt|home has joined #osdev
<mrvn> gorgonical: cores come up without caches and atomic operations do not work without that. So having some reference count for the core-id that each core increments is not going to work.
<mrvn> ARM has a special opcode to reading a core id. you should probably just use that
<mrvn> FireFly: that deepends on what a version is
<geist> mrvn: hmm? not that i know of
<geist> gorgonical: are you using PSCI to boot the secondaries?
<gorgonical> yes
<gorgonical> I have done more investigating and I actually think there's something worse going on
<geist> okay. yeah if you have data structure the secondary is going to read, you'll want to at least clean it from the primary first
<geist> so that when the secondary comes up with the cache off it reads the proper version out of dram directly
<geist> bt if the arg isnt coming through from PSCI that does indeed sound worse
<mrvn> If you want to make it simple bring up all cores before turning on caches or don't read any shared data before bringing up caches on other cores
<mrvn> In the former case you can't use any read-modify-write as far as I know.
<geist> right, that's cutting off your arm and making life a lot worse for less gain
baine has quit [Ping timeout: 264 seconds]
baine has joined #osdev
<mrvn> I kind of doing both. I keep the initial page table I use to turn on cache and switch to higher half and they ger reused be each core to bootstrap. But the real work only starts with caches.
<gorgonical> geist: I am issuing dcache clears on the primaries. Well actually the args are coming in from PSCI just fine, and I have a pc-relative struct I store stuff in for the secondary cores that are coming up. The problem is that secondary_data struct contains garbage. I just verified that the page tables on the secondary are right
<gorgonical> I.e. the secondary is looking in the right place, but the right place contains trash
<gorgonical> With my luck it will be more of TF-A doing some shenanigans
<mrvn> Can the cache of the new core contain stale entries?
<gorgonical> It could, I think
<gorgonical> Because of TF-A and uboot's presence it's not possible for me to really know what the core was doing before I psci boot it
<mrvn> isn't there a "drop this cache entry" for this case?
<gorgonical> I'll make sure I am in fact emptying the core's cache when we enter head.S
<gorgonical> I haven't worked on the secondary bootup sequence in a long time so I've kind of forgotten how it works
* mrvn too. But I remember having de-sync problems too
<mrvn> it's tricky to get right
<gorgonical> I am in fact running a flush_dcache_all on the secondary core
<mrvn> and the primary?
<gorgonical> The primary issues an area-based flush
<mrvn> lets hope the secondary doesn't have any dirty cache lines you are flushing out
<gorgonical> But a dirty flush shouldn't cause writeback to these addresses
<gorgonical> At least not on the secondary cores
<gorgonical> The memory that the kernel is executing from is pretty far away from what uboot and tf-a would be operating in
<gorgonical> BRUH
<gorgonical> Wow how has this not been a problem before???
<gorgonical> This is actually *staggering* that this was missed
<gorgonical> for your schadenfreude pleasure: https://pastebin.com/RXP3utab
<bslsk05> ​pastebin.com: smp.h:struct secondary_data {void* stack;struct task_struct* task;lon - Pastebin.com
xvanc has quit [Remote host closed the connection]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<mrvn> did you forget the virt_to_phys?
<mrvn> where do secondary cores put their page table?
<mrvn> gorgonical: confess. what did you forget?
<sbalmos> lest you be placed in the Comfy Chair
<gorgonical> __flush_dcache_area(new_task, sizeof(struct task_struct)); is what I forgot
<gorgonical> I'm flushing the secondary_data but not the fucking task_struct it points to, lol
tepperson has joined #osdev
<tepperson> hello, I am trying to boot a basic do nothing kernel into long mode (booted using grub2), after i enter long mode, i set the segment registers then do call 0x100080 (actually a symbol, but thats what the address is). the cpu then executes code at 0x7e instead
gildasio has quit [Ping timeout: 255 seconds]
<tepperson> jmp 0x100080 has the same result
gildasio has joined #osdev
FreeFull has quit []
mctpyt has joined #osdev
<gorgonical> tepperson: are you running on qemu?
<gorgonical> I ask because you can attach a gdb instance to qemu this way and single-step code to see exactly what's happening
danilogondolfo has quit [Remote host closed the connection]
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
Left_Turn has joined #osdev
gildasio has quit [Quit: WeeChat 3.8]
tepperson has quit [Remote host closed the connection]
tepperson has joined #osdev
mctpyt has quit [Ping timeout: 248 seconds]
baine has quit [Ping timeout: 255 seconds]
baine has joined #osdev
Matt|home has quit [Quit: Leaving]
ski has quit [Quit: Lost terminal]
joe9 has quit [Quit: leaving]