thinkpol has quit [Remote host closed the connection]
devcpu has quit [Quit: leaving]
thinkpol has joined #osdev
happy-dude has joined #osdev
ElectronApps has joined #osdev
ElectronApps has quit [Client Quit]
Izem has quit [Quit: Lost terminal]
paulusASol has joined #osdev
flx- has quit [Ping timeout: 248 seconds]
riposte has quit [Quit: Quitting]
CryptoDavid has quit [Quit: Connection closed for inactivity]
<gorgonical>
So I'm pretty confident that this hang is due to deadlock on thread synchronization. Is there some kind of ARM memory consistency limitation I should be aware of?
tacco has quit []
hgoel[m] has joined #osdev
<geist>
loooots
<geist>
it's a weak memory model, so it's a fairly different model than x86
<gorgonical>
That's always fun. I'm hoping it's actually a problem embedded in the OS and not a problem with the benchmark
<geist>
it's pretty complicated, i'm not going to be able to explain it to you over irc so you'll have to look it up
<geist>
but yeah, weak memory model if not handled properly can end up with all sorts of bad stuff on SMP
<gorgonical>
We are hoping that it has to do with the interrupt controller having concurrent memory access
<geist>
general offenders, especially that you see in benchmarks and test cases: global volatile variables that are assumed to be written in order
<geist>
what do you mean 'having concurrent memory access'?
<geist>
you mean accessing the GIC from different cores simultaneously?
<gorgonical>
Yeah. Because the ARM-specific impl of this benchmark doesn't do anythign special. That signals to me that the benchmark plus a reasonable compiler should "just work"
<gorgonical>
So our best bet is that the deadlock is occurring because the threads are getting confused about the core synchro, which I'm observing uses the IPI 2 on my board
* geist
nods
<moon-child>
are you using gcc|c11 atomics? Something that can happen is code thinks it can use weaker memory ordering than it actually should. So e.g. it does something with acquire memory ordering when it actually needs seqcst, but doesn't notice because everything is seqcst on x86
<gorgonical>
This is gcc/c++-something
<moon-child>
or yeah, c++11 atomics. Same thing
<gorgonical>
all the atomics support would be whatever OpenMP uses, which I'm not familiar with
<gorgonical>
The internals of OpenMP, that is
<moon-child>
oh, so no explicit atomic usage in your code? Probalby not that then
<gorgonical>
Yeah, the specific spot it likes to hang is a omp parallel matrix zero-ing, and apparently omp knows how to divide up the indices so that each thread gets 1/n of the index to fill
sts-q has quit [Ping timeout: 256 seconds]
rorx has quit [Ping timeout: 245 seconds]
mahmutov has quit [Ping timeout: 268 seconds]
rorx has joined #osdev
flx- has joined #osdev
scaleww has quit [Quit: Leaving]
scoobydoo has joined #osdev
<geist>
yeah so presumably that's written with the proper atomics and barriers and whatnot
freakazoid12345 has quit [Ping timeout: 252 seconds]
flx-- has joined #osdev
flx- has quit [Ping timeout: 272 seconds]
freakazoid343 has joined #osdev
flx-- is now known as flx
<gorgonical>
We have discovered that something is wrong with our futex code but we don't know what
<gorgonical>
probably there's a mb or smp_mb that needs to go *somewhere*
AssKoala has joined #osdev
<zid>
just run it on x86 now your barriers aren't missing ;0
dude12312414 has joined #osdev
gog has quit [Ping timeout: 268 seconds]
shlomif has joined #osdev
ElectronApps has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
freakazoid343 has quit [Ping timeout: 245 seconds]
bradd has quit [Remote host closed the connection]
nyah has quit [Ping timeout: 268 seconds]
mctpyt has quit [Ping timeout: 248 seconds]
mctpyt has joined #osdev
kulernil is now known as kuler
mctpyt has quit [Ping timeout: 268 seconds]
mctpyt has joined #osdev
mctpyt has quit [Ping timeout: 258 seconds]
bradd has joined #osdev
mctpyt has joined #osdev
MiningMarsh has quit [Ping timeout: 258 seconds]
MiningMarsh has joined #osdev
srjek has quit [Ping timeout: 272 seconds]
bradd has quit [Remote host closed the connection]
bradd has joined #osdev
CryptoDavid has joined #osdev
xenos1984 has quit [Ping timeout: 272 seconds]
xenos1984 has joined #osdev
tenshi has joined #osdev
AssKoala has quit [Ping timeout: 268 seconds]
zaquest has quit [Quit: Leaving]
zaquest has joined #osdev
ElectronApps has quit [Remote host closed the connection]
kulernil has joined #osdev
kuler has quit [Remote host closed the connection]
Burgundy has joined #osdev
tacco has joined #osdev
pretty_dumm_guy has joined #osdev
sortie has joined #osdev
Belxjander has joined #osdev
GeDaMo has joined #osdev
rubion has joined #osdev
Arthuria has joined #osdev
dormito has quit [Ping timeout: 256 seconds]
dormito has joined #osdev
<klange>
oh you know what I was supposed to do with this big ABI break... fix the horrid namespacing on my graphics lib
<klange>
it has exported symbols like "rgb" and "flip"...
<klange>
I have just one external thing to worry about at the moment, which is SDL, and my build for that is reproducible, so...
Affliction has quit [Quit: Read error: Connection reset by beer]
Affliction has joined #osdev
kingoffrance has quit [Ping timeout: 245 seconds]
rubion has quit [Ping timeout: 268 seconds]
rubion has joined #osdev
Giedrius has joined #osdev
skipwich has quit [Quit: DISCONNECT]
<sham1>
Xlib is horrible with name clashes
<sham1>
Especially when the names are clashed by preprocessor #defines
ElectronApps has joined #osdev
dennis95 has joined #osdev
nyah has joined #osdev
kingoffrance has joined #osdev
ElectronApps has quit [Ping timeout: 248 seconds]
gog has joined #osdev
<klange>
And now I'm building my graphics lib on Linux and trying to benchmark it... my SSE alpha blitter is quite good at its job, it seems. Probably worthwhile to see if I can apply its magic elsewhere...
<klange>
Particularly, if I can get this affine transformation blitter to be... a lot faster, that would be great... but I suspect it might be troublesome.
CryptoDavid has quit [Quit: Connection closed for inactivity]
<klange>
Rainy 3-day weekend ahead, so plenty of time to spend working on this.
<zid>
how *do* the factories solder to batteries..
dude12312414 has joined #osdev
<sham1>
klange: how are you doing the alpha blitting anyway? Are you converting your colour channels to floats before you do the alpha compositing calculation or are you going with integer arithmetic
<sham1>
Because I have tried doing something like: r_dest = r_a + r_b * (255 - alpha_a); but that never worked out for me. I'd probably need to use wider integers in the intermediate steps, but I still wonder how this would work out
<zid>
You're supposed to do rms shenanigans for colour blending
<sham1>
rms?
<zid>
root mean square
<sham1>
Ah
<zid>
if you wanna skip that you have to do everything internally in a diff colourspace then convert, or something
<zid>
I was reading someone ranting about colour a while back, and how photoshop ws doing it wrong
<sham1>
Oh, for gamma stuff
<zid>
I think that's srgb but rgb I'm not sure
<zid>
s/but/vs
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
ElectronApps has joined #osdev
rubion has quit [Ping timeout: 272 seconds]
rubion has joined #osdev
heat has joined #osdev
freakazoid333 has joined #osdev
ElectronApps has quit [Remote host closed the connection]
AssKoala has joined #osdev
nismbu has quit [Ping timeout: 268 seconds]
Giedrius has quit [Remote host closed the connection]
nismbu has joined #osdev
mctpyt has quit [Ping timeout: 258 seconds]
mctpyt has joined #osdev
andydude has joined #osdev
srjek has joined #osdev
isaacwoods has joined #osdev
d0p1 has joined #osdev
mahmutov has joined #osdev
nvmd has joined #osdev
autopsy has quit [Remote host closed the connection]
isaacwoo1 has joined #osdev
isaacwoods has quit [Read error: Connection reset by peer]
devcpu has joined #osdev
rubion has quit [Ping timeout: 268 seconds]
dennis95 has quit [Quit: Leaving]
rubion has joined #osdev
rubion has quit [Ping timeout: 248 seconds]
<geist>
yay the smoke is here
<geist>
kazinsal: you covered in smoke up there too?
<gorgonical>
This futex thing is really getting me
<gorgonical>
I think I have narrowed it down to thread 0 sleeping when it should actually be waking the listeners on that futex. But I don't know why, I think that's in the compiled omp code?
<kazinsal>
geist: yep! can't tell if my building's fire alarms are going off because it's testing day or because of the smoke outside haha
<geist>
thankfully the house sees to be sealed up enough that i'm not experiencing any smoke inside, but the outside has that orange glow to it
<gorgonical>
An unrelated question for you guys on the west coast: does the worsening wildfires/weather make you consider relocating?
<kazinsal>
nah, even with the wildfires it's still nice enough year round that you'd have to pay me a lot of money to move
<kazinsal>
we get maybe three weeks of unpleasant weather per year. meanwhile, colleagues of mine in calgary had half a foot of snow in may this year
rubion has joined #osdev
<gorgonical>
So maybe you look at it like the midwest looks at tornado season?
Arthuria has quit [Ping timeout: 256 seconds]
<kazinsal>
heck last year it was fine because everyone was stuck inside anyways
<kazinsal>
if I live in like, northern california or the BC interior I'd be more concerned about it
<kazinsal>
because that's where the fires tend to start and cluster around
<geist>
yah also PNW is a bit better off than a lot of west coast re: smoke/fire
<geist>
more specifically west of the cascades, etc
<geist>
and where kaz is
<gog>
mew
<geist>
at least at the moment in the climate we dont get a lot of fires here, just smoke from nearby fires
shlomif has quit [Ping timeout: 248 seconds]
<kazinsal>
also our infrastructure doesn't spontaneously break due to heat like california's
* geist
pets the kittah
* kazinsal
pats a gog
<gog>
somebody did a map of what the capital district would look like if sea levels were 20m higher and it's uh, it's not good
<gog>
about 80,000 people live in the area that would be underwater
<gog>
that's fully 25% of the population of the entire country lol
<geist>
yah and worldwide i bet its in the billions
<gog>
definitely
<kazinsal>
I think in order to hit 20m rise we'd need to lose about 40% of the polar ice caps which would require something like a +8C temperature delta
<kazinsal>
at which point I think we're probably all dead anyways lol
<geist>
but my house is 200 something ft above sea level, so okay for another 100 yrs or so
<geist>
i always phsaw at folks that build their houseson the beach here, but then i guess the idea is its not gonna be a family heirloom
<gog>
my neighborhood is fine for the most part, we're 30m AMSL rn
<geist>
they're just enjoying it now, who cares what its like in 80 years
<kazinsal>
yeah I'm fairly inland and about 90 m above sea level so, y'know, eventually I'll be nearly waterfront property! and also constantly suffering heat stroke
<kazinsal>
there are definitely a good number of spots in greater vancouver that are below sea level as is though
<gog>
the eastern half of iceland is gonna be good farmland in half a century
<geist>
statistcally speaking my main disaster fears for where i'm at now is a) earthquake b) forest fire (rare on the island) c) tree falling on the house
<kazinsal>
as soon as the rise starts happening in force we'll see headlines about farmers who now own bogs
<kazinsal>
also like 80% of the city of richmond is at most a couple metres above sea level
<kazinsal>
and at worst a couple meters *below*
<kazinsal>
there are some suburbs there that have drainage pump stations at the ends of streets to pump potential floodwaters back into the ocean
<gog>
DC is coastal marshland, the whole city is bsically fucked
<gog>
same with baltimore
<gog>
the inner harbor is gonna be on the west side
<geist>
i assume the dutch are pretty concerned
<gog>
they've been trying to keep the ocean out for centuries lol
<geist>
indeed, probably the best prepared to deal with it
<GeDaMo>
Rising sea levels are not the only source of flooding
<gog>
yes, the hyperstorms
<geist>
was thinking does the north sea get large storms statically?
<GeDaMo>
Not really
<geist>
or is it mostly about holding out swells or river flooding?
<kazinsal>
one of these days there's going to be a storm that just causes the fraser river to be Very Angry and eat a bunch of the bits of cities on its shore
<GeDaMo>
I'm in Aberdeen, Scotland, we don't get extremes of weather here
<geist>
<insert Frasier sitcom joke here>
<gog>
tossed salads, scrambled eggs
<kazinsal>
mmmm. you know you filesystem consistency check is going poorly when the ETA is rapidly flapping between "55 seconds remaining" and "1 hour remaining"
Terlisimo1 has quit [Quit: Connection reset by beer]
<gog>
oof
<gog>
me when i'm getting ready to go out :p
<geist>
reminds me, 3 days in and my NAS is only 35% completed adding a 4th drive and converting to 2 disk redundancy
<kazinsal>
mmm, NAS nightmares
<gog>
geist: parity set?
Terlisimo has joined #osdev
GeDaMo has quit [Quit: Leaving.]
Izem has joined #osdev
devcpu has quit [Ping timeout: 248 seconds]
<geist>
yah basically it's adding a 4th drive and setting the secondary parity there, and of course rearranging a bunch of data
<geist>
so the original 3 drives are in full R/W mode and the 4th one is getting the new parity stripe on
<gog>
is the NAS linux based, like is this mdadm or some proprietary gizmo?
<geist>
it's prolly overkill to have 4 drives with 2 drive redundancy, but i've been burned by multi drive failures before
<geist>
it is, it's a synology nas, so it's using a slightly modified RAID6
<gog>
yeah the more drives you have the smaller your MTBF is :p
<gog>
math sucks
<moon-child>
mirrors ftw!
<geist>
yah and though i have 4 drives in it i'll probably expand out to the full 6 over time
<geist>
then 6 w 2 drive redundancy isn't quite as overkill
rubion has quit [Ping timeout: 248 seconds]
rubion has joined #osdev
<gorgonical>
womp womp. It was a matter of not setting the pte shareability flags correclty
<gorgonical>
:(
<geist>
ah hah!
<geist>
hadn't thought about that, because that's one of those set once and never think again
<geist>
what was it set to?
<geist>
you want at least inner sharing, outer sharing too probably (though the outer stuff isn't really useful much)
riposte has joined #osdev
d0p1_ has joined #osdev
d0p1 has quit [Remote host closed the connection]
tenshi has quit [Quit: WeeChat 3.2]
wereii has quit [Ping timeout: 245 seconds]
dormito has quit [Ping timeout: 272 seconds]
graphitemaster has quit [Ping timeout: 250 seconds]
<heat>
why would you want that much control over mmu?
graphitemaster has joined #osdev
<heat>
i dont see how a shit ton of different settings for a mapping makes a difference for anyone
ZipCPU has quit [Ping timeout: 268 seconds]
wereii has joined #osdev
dutch has quit [Quit: WeeChat 3.2]
<geist>
the sharing bits in the mmu is a bit extraneous yeah. i dont think it's used much, but it dates from an earlier era, and iirc it doesn't use up any bits in the page tables, mostly just a master config in the TCR
<geist>
but yeah, not a lot of reason to mark pages as unshared. IIRC that means 'dont bother participating in cache coherency for this'
<geist>
which i guess maybe has some sort of advantage in some situation? i haven't seen it though
dutch has joined #osdev
d0p1_ has quit [Quit: Leaving]
d0p1_ has joined #osdev
dormito has joined #osdev
jjuran has quit [Ping timeout: 268 seconds]
jjuran has joined #osdev
d0p1_ has quit [Ping timeout: 244 seconds]
MiningMarsh has quit [Ping timeout: 268 seconds]
MiningMarsh has joined #osdev
anon16__ has joined #osdev
sprock has quit [Quit: brb]
FatalNIX has joined #osdev
sprock has joined #osdev
drewlander has quit [Ping timeout: 245 seconds]
<FatalNIX>
Hey, wasn't there someone who was working on a 64 bit DOS DLMI thing or something like that that found some neat method to get back to 16 bit some how from long mode in some wacky way?
<FatalNIX>
I thought someone here mentioned that once
anon16 has quit [Ping timeout: 256 seconds]
anon16__ is now known as anon16
drewlander has joined #osdev
anon16 has quit [Ping timeout: 248 seconds]
anon16 has joined #osdev
<kazinsal>
The quickest way to get back to real mode is probably to set a bogus IDT and set the reset vector to your own 16-bit trampoline, then intentionally triple fault
klys has quit [Read error: Connection reset by peer]