<heat>
i'm still lacking something for -j N to work in make, but the rest Just Works(tm)
<mjg>
wdym it does not work
<mjg>
rolls with 1 worker no matter what or just craps out
<heat>
hangs
<heat>
when I dump threads I can see a make stuck in pselect and two makes stuck in wait4
<mjg>
oh that's gmake, right
<heat>
it's IMO plausible I'm missing something pipe related (I think gnu make uses pipes for job control?)
<mjg>
it does
<mjg>
there is one master pipe (i don't know how they call it)
<mjg>
but i woudl also expect pselect to be called with a timeout
<mjg>
lemme check what make is doing
<mjg>
heh no timeout
<mjg>
i would defo check for racy wakeups
<mjg>
also you probably want to make sure you wake up everyone a'la thundering heard
<mjg>
and not just one sucker
<mjg>
chances are excellent gmake is depending on it
<mjg>
in pipe code i mean
<heat>
i'm already thundering herding
<mjg>
it will be 150$ anyway
<heat>
i also found a weird bug in my vfork where make got pid = 0 for children, but if I silently switch the vfork implementation for fork, it works
<mjg>
are you sure going off cpu in select properly interlocks against wakeups?
<mjg>
as in do you hold pipe_lock while doing so
<heat>
are you aware of linux poll internals?
<heat>
that's basically how I do it
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<mjg>
no
xenos1984 has quit [Read error: Connection reset by peer]
<mjg>
it's a shit area i try to avoid :-P
<heat>
sys_select/poll build a table of file *, I call ->poll on each file, inside ->poll I hold the object's internal locks and check if I can read/write/hup/wtv, if not, I queue myself on the wait queue
<heat>
after checking every file, if none was available, I just block
<mjg>
well that's how bsds do it
<heat>
omg we've got sooo much in common twiiiiiiiiins
<mjg>
besties
xenos1984 has joined #osdev
<geist>
Awww such wud
<geist>
Wuv damn autorcorrecting client
<heat>
ok i fixed it I think
<heat>
make pc-x86-64-test -j4 works
<heat>
real 9.94s user 11.6s sys 8.1s
<heat>
this looks horribly inefficent but I'll take it lol
<heat>
geist, also shame on you for not telling me build with a non-prefixed toolchain!
<geist>
Oh?
<heat>
TOOLCHAIN_PREFIX= just uses the default of x86_64-elf-
<mjg>
what was the bug?
<heat>
mjg, I wasn't checking for signals in the middle of thread->state = THREAD_INTERRUPTIBLE; and sched_yield();
<mjg>
signals
<heat>
i'm not entirely convinced it's 100% correct but...
<mjg>
another fucking unix crapper
<geist>
Now now you can be nicer mjg
<mjg>
another unix crapper
<geist>
We dont rip on each other’s designs just because they’re Unix
<heat>
lmao
<geist>
Says someone that works on Unix
<mjg>
which enables me to say it
<mjg>
:->
<geist>
We are all nice here and dont judge just because it’s Unix
<heat>
it's not Unix
<heat>
it's UNIX(tm)(R)(c)
<heat>
get it right!
<mjg>
Solaris or gtfo
<geist>
NOW WERE COOKING WITH UNIX
<heat>
D O O R S
<heat>
O
<heat>
O
<heat>
R
<heat>
S
<geist>
Move over bacon, here comes UNIX
<geist>
I’m using UNIX right here
<geist>
While drinking a beer. Beer + UNIX == asdfasdfasdf
<heat>
geist, when are you switching to Onyx now that I have everything you'll ever want?
<mjg>
take some lsd and you will be ready add some unix concepts
<kazinsal>
Beer + Unix = "how hard could porting to $randomplatform be, anyways..."
<geist>
DOOORS
<mjg>
heat: have you ever tried building netbsd? kind of serious question, their build.sh support cross compilation from a number of systems
<geist>
UNIX
<mjg>
heat: and modulo fixups to the script you might need it is probably a decent test
<heat>
take some lsd and write some 4.4bsd code
<geist>
You ever tried building netbsd for SPARC on a VAX?
<geist>
I have. (It wasn’t pretty)
<kazinsal>
PAIN
<mjg>
:))
<heat>
mjg, nope
<mjg>
do you time 'time'?
<mjg>
do you have 'time'?
<heat>
quite a big of a jump from lk -> netbsd
<mjg>
i don't know where you stand in your system
<geist>
Yah this microvax runs netbsd so slow you want to time time
<mjg>
:))
kof123 has joined #osdev
<mjg>
have you benched an older release?
<mjg>
notably pre-netbsd 5
<geist>
Yah, running netbsd 3.1 actually iirc
<heat>
right now things mostly work except when they dont and real filesystem support is iffy
<mjg>
*that* was dog slow?
<geist>
It’s about the last one I’d actually feel like running on it
<mjg>
oh man
<geist>
Yes.
<kazinsal>
Hmm. Does it still count as reimplementing Fourth Edition if your filesystem layout doesn't match the manual (because the one in the manual is REALLY janky)
<heat>
NO
<heat>
janky filesystem or bust
<mjg>
kazinsal: WHAT DO YOU MEAN JANKY
<geist>
I think netbsd about 3.1 is a good vintage. Reasonably modern but some chance of running on ancient hardware
<geist>
This microvax is about slow 486 territory, so yeah
<mjg>
geist: well you made me curious how post-5 is doing then, provided it even boots
<geist>
Well, i dont think it’s because the kernel is a bloated POS or so, but i think in general user space tools and binaries got bigger and slower, and on ancient hardware (say 25mhz 486 territory) the extra weight starts to add up
<geist>
Compilers now take 10x as long, even the shell is slower, etc
<geist>
It’s what happens when regular old software just picks up 10 years of extra features and cruft
<geist>
And the hardware doesn’t
<mjg>
well the old netbsd kept claiming to viable on this old yellers
<mjg>
to be*
<mjg>
these
<geist>
It is, technically, but it doesn’t mean it’s a pleasant experience
<mjg>
kind of boots and does not outright crash is not viable
<geist>
Like, you press a key and now the fact that the shell is N times larger means it blows the L1 cache 100x
<geist>
That kinda stuff
<mjg>
:)
<geist>
I think you get some sort of cascading effect when even regular plain software gets larger and exceeds the total cpu cache
<kazinsal>
Yeah I think my MicroVAX takes about 10 minutes to boot netbsd
<geist>
it starts to fall off a performance cliff
<kazinsal>
It's not great
<heat>
lmao
<mjg>
kazinsal: which version
<geist>
So you get these old machines that have say 4K of L1 cache total you start to feel it hard
<geist>
Even this old Sparcstation 20 with dual Supersparc 85Mhz starts to feel it
<geist>
I think each has like 16K cache?
<mjg>
i was trying to go the other way at some point: build a super old freebsd release on top notch hardware while running the current kernel
<mjg>
turns out it is turbo single-threaded
<mjg>
big shocker :->
<geist>
Yah sometimes you hit some threshold where like the old IDE driver cant handle modern hardware or whatnot
<heat>
i've repeatedly tried to build old ass bsd's but it never works out
<geist>
I thought i remember hitting some bug somewhere where some old driver expected the hardware to take some N cycles to respond, and modern versions are instant
<heat>
but bmake still works! it's neat
<geist>
Oh i have a VM I keep around of FreeBSD, netbsd, and openbsd
<geist>
If nothing else so i can log in and read their man pages
<mjg>
that's your kink?
<geist>
Used to keep Solaris but it blew up
<mjg>
get omnios :->
<heat>
d o o r s
<geist>
mjg: this is news?
<geist>
I also have a machine running OS/8 and RSX-11
<heat>
all those unixes are shit
<mjg>
nice
<geist>
Mmmmm RSX-11 that’s some … oooohyeah
<heat>
get a system v release
* geist
gets a room
<heat>
unleash the power of STREAMS
<geist>
Hah i do have a pdp11 emulator with BSD 2.11
<mjg>
i had a vax emulator with 4.3 or so
<mjg>
there was a bundle for windows :)
<geist>
Yeah that is really what i should set down some day and load up on the microvax instead of netbsd
<mjg>
was functional enough to telnet out of it back to my laptop
<geist>
but last time i tried to start the Vax it had died because for some reason it refused to talk to the scsi2sd adaptor i had in it
<mjg>
i sshed from there and screen worked!
<geist>
i fiddled with it for a few hours and gave up. Dunno what happened
<mjg>
what about that sparc station? is that the dead solaris?
<geist>
Nah that has a netbsd on it too
<geist>
It’s kinda usable, but i dont like to run it that much, burns too much power
<geist>
It’s a BiCMOS machine, burns a solid 100W iirc
<geist>
Like, doesn’t stop, always burns it
<heat>
is it warm?
<mjg>
there was a guy who at least until 2019 qwas using sparcstation + netbsd as a daily driver
<geist>
Maybe more than that, i forgot. I kilowatts it
<mjg>
i don't know what happened past that
<geist>
Yeah the SS20s were notorious for overheating
<heat>
great, daily drive it in the winter
<geist>
Especially the dual cpu versions, since the cpus were really packed in tight
<geist>
Apparently there was a rare quad cpu version but basically you needed to upgrade the cooling if you did
<geist>
In the mid 2000s i used to run a sparcstation 2 + openbsd as a mail server
<heat>
how slow would fuchsia be on those old machines?
<geist>
Figured why not, hack this!
<geist>
Well wouldn’t boot for starters
<mjg>
let's say it would
<geist>
Kinda wish I kept that SS2. Dunno why I got rid of it
Iris_Persephone has quit [Ping timeout: 252 seconds]
<mjg>
i take it given the microekrnel design it's basically a lost cause to wait for it to finish booting
<geist>
It was in retrospect a rare one. Actually not a sun box
<geist>
Was a Hyundai
<geist>
I looked it up later. Something like a Axiom machine or something like that made by Hyundai
<geist>
But i do also have a sparcstation LX. Cute lunchbox. Slow as hell. Fun to use
<mjg>
you understand you are being beaten by openbsd right now
<mjg>
50% sys when building stuff with a handful of cores is right up their alley
<mjg>
well it is less now
<heat>
yeah i'll need to look into it
<heat>
but my scheduler is also shit so
<mjg>
well then you have something in common
<heat>
my os has lots of things in common
<heat>
with openbsd
<mjg>
do you have theo
<heat>
both shit, both slow, both developed by a single egotistical maniac
<mjg>
obsd is developed by multiple... people
<heat>
i'll need proof of that
<mjg>
memes aside, they do have an ok-ish team size-wise
<geist>
Snake people
<mjg>
or at least did 3 years ago
<geist>
SNAKE PEOPLE
<heat>
the bsds aren't real
<heat>
wake up sheeple
<mjg>
reptilians
<mjg>
only Solaris is real
<geist>
QNX or STFU
<mjg>
i'm not familiar with the latter
<geist>
Actually a fun one i remember using in college for a real time class: LynxOS
<geist>
Still apparently exists
<geist>
It’s posix
<mjg>
> Lynx has been developing innovative software platforms for over 30 years. Some employees that have been here for one year, others for more than 45 years.
<heat>
more than 45 years??
<mjg>
15 years of not developing an innovative software platform though
<heat>
that beats intel's employee retention!
* mjg
signs off, this is too much
<geist>
Me too, the trivia night is getting too noisy here
[itchyjunk] has quit [Remote host closed the connection]
gxt has joined #osdev
rpnx has quit [Remote host closed the connection]
srjek has quit [Ping timeout: 244 seconds]
rpnx has joined #osdev
heat has quit [Ping timeout: 260 seconds]
Iris_Persephone has joined #osdev
dasabhi has joined #osdev
<dasabhi>
hi, i have been struggling with some poll() and sysfs_notify code for a while
<dasabhi>
and had to ask for help here
<dasabhi>
i have a working kernel module with sys_notify(), but my userspace code with poll() doesnt actuall poll, it completes instantly
<dasabhi>
actually*
<dasabhi>
my kernel module has sys_notify commented out, and i am setting the events flag to POLLPRI | POLLERR
<dasabhi>
but still nothing works
<dasabhi>
any one mess around with poll function here?
Persephone has joined #osdev
<geist>
not sure i completely understand the context here
Iris_Persephone has quit [Ping timeout: 246 seconds]
<Mutabah>
I think they're referring to a linux kernel module that's exposing a file/file-like that they're calling `poll` against?
<Mutabah>
dasabhi: is that correct?
<dasabhi>
yes thats right
<dasabhi>
kernel exposing a kobject
scoobydoo_ has joined #osdev
<dasabhi>
kernel module*
<dasabhi>
kernel module has to use sys_notify to release uerspace poll() calls on said kbojects
<dasabhi>
the kobjects are files within /sys
scoobydoo has quit [Ping timeout: 265 seconds]
<dasabhi>
part of sysfs
scoobydoo_ is now known as scoobydoo
<Griwes>
you'll probably have more luck with this question on a linux kernel dev specific channel
<dasabhi>
Griwes: are they on irc?
<dasabhi>
i wasn't able to find an irc for that
<Griwes>
no idea. just pointing out that this isn't really a linux kernel dev channel, and finding one that is is going to be more generally helpful to you when asking specifically about linux' internals
<dasabhi>
yeah i understand
Iris_Persephone has joined #osdev
Persephone has quit [Ping timeout: 265 seconds]
nexalam_ has joined #osdev
nexalam__ has quit [Ping timeout: 260 seconds]
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
<dasabhi>
so turns out, poll needs the file to be marked read
<dasabhi>
before it can work properly lol
Vercas6 has joined #osdev
dasabhi has quit [Quit: Lost terminal]
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
scoobydoo has quit [Ping timeout: 252 seconds]
scoobydoo has joined #osdev
papaya has quit [Quit: leaving]
<Iris_Persephone>
All the roads that looking into OSdev brings you down are so interesting
Persephone has joined #osdev
Iris_Persephone has quit [Ping timeout: 246 seconds]
Persephone is now known as Iris_Persephone
jjuran has quit [Read error: Connection reset by peer]
jjuran has joined #osdev
CYKS has quit [Quit: Ping timeout (120 seconds)]
CYKS has joined #osdev
elastic_dog has quit [Ping timeout: 264 seconds]
elastic_dog has joined #osdev
elastic_dog has quit [Client Quit]
elastic_dog has joined #osdev
Persephone has joined #osdev
Iris_Persephone has quit [Ping timeout: 252 seconds]
Persephone has quit [Ping timeout: 268 seconds]
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]