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
pandry has quit [Remote host closed the connection]
pandry has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
agent314 has quit [Ping timeout: 264 seconds]
agent314 has joined #osdev
MaxLeiter has left #osdev [The Lounge - https://thelounge.chat]
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 260 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
melonai has quit [Quit: Ping timeout (120 seconds)]
melonai has joined #osdev
eschaton has quit [Remote host closed the connection]
bradd has quit [Quit: No Ping reply in 180 seconds.]
bradd has joined #osdev
gxt has quit [Ping timeout: 240 seconds]
targetdisk has quit [Ping timeout: 256 seconds]
zxrom has quit [Ping timeout: 245 seconds]
gxt has joined #osdev
eschaton has joined #osdev
deckard has quit [Ping timeout: 264 seconds]
zxrom has joined #osdev
pandry has joined #osdev
elastic_dog has quit [*.net *.split]
gorgonical has quit [*.net *.split]
teqwve has quit [*.net *.split]
tomaw has quit [*.net *.split]
V has quit [*.net *.split]
alpha2023 has quit [*.net *.split]
terrorjack has quit [*.net *.split]
troseman has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
mahk has quit [*.net *.split]
colona_ has quit [*.net *.split]
skipwich has quit [*.net *.split]
cross has quit [*.net *.split]
JTL has quit [*.net *.split]
Chinese_soup has quit [*.net *.split]
gog has quit [*.net *.split]
leon has quit [*.net *.split]
Brnocrist has quit [*.net *.split]
alice has quit [*.net *.split]
moon-child has quit [*.net *.split]
bl4ckb0ne has quit [*.net *.split]
thinkpol has quit [*.net *.split]
pieguy128 has quit [*.net *.split]
basil has quit [*.net *.split]
jjuran has quit [*.net *.split]
hbag has quit [*.net *.split]
exit70 has quit [*.net *.split]
asarandi has quit [*.net *.split]
ZipCPU has quit [*.net *.split]
HeTo has quit [*.net *.split]
TheCatCollective has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
CaptainIRS has quit [*.net *.split]
nj0rd has quit [*.net *.split]
Arsen has quit [*.net *.split]
qxz2 has quit [*.net *.split]
tanto has quit [*.net *.split]
vancz has quit [*.net *.split]
pie_ has quit [*.net *.split]
bliminse has quit [*.net *.split]
TkTech has quit [*.net *.split]
lg has quit [*.net *.split]
mkwrz has quit [*.net *.split]
andreas303 has quit [*.net *.split]
[Kalisto] has quit [*.net *.split]
ripsquid has quit [*.net *.split]
raggi has quit [*.net *.split]
Bonstra_ has quit [*.net *.split]
nur has quit [*.net *.split]
rwb has quit [*.net *.split]
Matt|home has quit [*.net *.split]
meisaka has quit [*.net *.split]
alice has joined #osdev
exit70 has joined #osdev
bliminse has joined #osdev
CaptainIRS has joined #osdev
ZipCPU has joined #osdev
tanto has joined #osdev
qxz2 has joined #osdev
asarandi has joined #osdev
HeTo has joined #osdev
Arsen has joined #osdev
TheCatCollective has joined #osdev
ThinkT510 has joined #osdev
vancz has joined #osdev
nj0rd has joined #osdev
pie_ has joined #osdev
V has joined #osdev
tomaw has joined #osdev
gorgonical has joined #osdev
elastic_dog has joined #osdev
JTL has joined #osdev
teqwve has joined #osdev
Chinese_soup has joined #osdev
troseman has joined #osdev
terrorjack has joined #osdev
skipwich has joined #osdev
alpha2023 has joined #osdev
mahk has joined #osdev
gruetzkopf has joined #osdev
colona_ has joined #osdev
cross has joined #osdev
vancz_ has joined #osdev
asarandi has quit [Max SendQ exceeded]
pie_ has quit [Max SendQ exceeded]
vancz has quit [Max SendQ exceeded]
Arsen has quit [Max SendQ exceeded]
andreas303 has joined #osdev
ripsquid has joined #osdev
lg has joined #osdev
mkwrz has joined #osdev
[Kalisto] has joined #osdev
Bonstra_ has joined #osdev
rwb has joined #osdev
nur has joined #osdev
Matt|home has joined #osdev
TkTech has joined #osdev
meisaka has joined #osdev
raggi has joined #osdev
pie__ has joined #osdev
Arsen has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
cross has quit [Max SendQ exceeded]
JTL has quit [Max SendQ exceeded]
elastic_dog has quit [Max SendQ exceeded]
gog has joined #osdev
moon-child has joined #osdev
pieguy128 has joined #osdev
bl4ckb0ne has joined #osdev
thinkpol has joined #osdev
leon has joined #osdev
Brnocrist has joined #osdev
hbag has joined #osdev
basil has joined #osdev
jjuran has joined #osdev
Affliction has quit [*.net *.split]
duckworld has quit [*.net *.split]
Affliction has joined #osdev
duckworld has joined #osdev
Affliction has quit [Max SendQ exceeded]
duckworld has quit [Max SendQ exceeded]
duckworld has joined #osdev
Affliction has joined #osdev
asarandi has joined #osdev
JTL has joined #osdev
deckard has joined #osdev
cross has joined #osdev
elastic_dog has joined #osdev
pandry has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas has joined #osdev
<gorgonical> quite the net split
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
joe9 has quit [Quit: leaving]
pandry has quit [Ping timeout: 268 seconds]
raphaelsc has joined #osdev
pandry has joined #osdev
MiningMarsh has quit [Ping timeout: 260 seconds]
MiningMa- has joined #osdev
MiningMa- is now known as MiningMarsh
pandry has quit [Ping timeout: 264 seconds]
raphaelsc has quit [Remote host closed the connection]
pandry has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
[itchyjunk] has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
agent314_ has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
agent314 has quit [Ping timeout: 245 seconds]
agent314_ is now known as agent314
pandry has joined #osdev
<geist> indeed
pandry has quit [Ping timeout: 268 seconds]
Rubikoid has quit [Remote host closed the connection]
gog has quit [Remote host closed the connection]
pandry has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
gbowne1 has quit [Read error: Connection reset by peer]
pandry has joined #osdev
edr has quit [Quit: Leaving]
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
vdamewood has joined #osdev
vdamewood has quit [Client Quit]
pandry has joined #osdev
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
lg has quit [Ping timeout: 276 seconds]
pandry has quit [Ping timeout: 255 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
agent314 has quit [Ping timeout: 255 seconds]
agent314 has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 245 seconds]
pandry has joined #osdev
heat has joined #osdev
agent314 has quit [Ping timeout: 240 seconds]
pandry has quit [Ping timeout: 256 seconds]
agent314 has joined #osdev
netbsduser has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 260 seconds]
netbsduser has quit [Ping timeout: 255 seconds]
sham1 has joined #osdev
pandry has joined #osdev
bauen1 has quit [Ping timeout: 268 seconds]
agent314 has quit [Ping timeout: 252 seconds]
agent314 has joined #osdev
bauen1 has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
mkwrz has quit [Ping timeout: 276 seconds]
kof123 has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
pandry has joined #osdev
mkwrz has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
[Kalisto]3 has joined #osdev
[Kalisto] has quit [Ping timeout: 276 seconds]
[Kalisto]3 is now known as [Kalisto]
xenos1984 has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 252 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 252 seconds]
heat has quit [Remote host closed the connection]
pandry has joined #osdev
agent314 has quit [Read error: Connection reset by peer]
pandry has quit [Ping timeout: 256 seconds]
<moon-child> hmmm I feel like triggering mjg
<bslsk05> ​old.reddit.com: _nandi comments on How to learn synchronization in operating systems?
pandry has joined #osdev
<Mutabah> A bit of a troll... but they're kinda not wrong
<zid> It's just naive
<moon-child> i am a RUST PROGRAMMER
<zid> "I am content with x, so y is all the matters"
<moon-child> i protect everything with LOCKS
<moon-child> FEARLESS SCALABILITY
<zid> some people need complicated hand tuned assembly intrinsics for their locks and lock checkers and profiling and crap
<moon-child> plus i NEVER DEADL--
<zid> some people.. only need rust :p
<nur> rust is a pain the ass
pandry has quit [Ping timeout: 245 seconds]
<nur> writing kernels is a pain in the ass
<moon-child> zid: those people should probably be using something higher level, then
<nur> why should my ass take double the pain
<moon-child> where you can express your parallelism declaratively and let the system take care of it uniformly
<moon-child> though there is kindof a lack of good options there if you stop short of distributed-computation-level stuff, unfortunately
lg has joined #osdev
GeDaMo has joined #osdev
pandry has joined #osdev
goliath has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
Left_Turn has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 260 seconds]
pandry has joined #osdev
gog has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
gareppa has joined #osdev
gareppa has quit [Client Quit]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 268 seconds]
stylefish has joined #osdev
stylefish has quit [Quit: Leaving]
stylefish_ has joined #osdev
<maybemjg> moon-child: i';m not opening that
<maybemjg> moon-child: someone link the poor sap the perfbook
<maybemjg> trade secret: msost kernel programmers don't know almost anything about locks
<maybemjg> or how to write code w.r.t. performance
<maybemjg> rather they wanted to do /something/ and it it is in the kernel and in c
<gog> never lock
<gog> locks only cause problems
<gog> also never do two things at the same time
<gog> concurrency only causes problems
<maybemjg> that's parallelism
<gog> never do parallelism
<gog> or concurrency
<gog> or ansynchronous
<gog> all things linear. all things serialized.
<zid> Correct
<zid> threads are honestly massively over-used
<gog> never thread
<maybemjg> threads are webdeved into oblivion
<maybemjg> i find it amusing how people who claim to be working iwth event loops
<maybemjg> also automatically want threads for them
<maybemjg> like mofo, do you know what an event loop is
<gog> never loop either
<maybemjg> never say never!!!
<gog> always say never
<gog> never don't always never always don't
<maybemjg> always pet mjg
* gog petpet maybemjg
kfv has joined #osdev
* maybemjg maybe purrs
<kof123> > trade secret: msost kernel programmers don't know almost anything about locks > or how to write code w.r.t. performance > rather they wanted to do /something/ and it it is in the kernel and in c
<kof123> i think i found my motto
<gog> i don't want to do anything
<gog> i want to sleep
<GeDaMo> Mmmmm ... sleep :P
<kof123> or, i consider locks as needing asm basically, so hw-specific....so not a focus until later for me
<zid> gog do you need to use the sleep
<gog> yes
<gog> eepy
kfv has quit [Quit: Textual IRC Client: www.textualapp.com]
raphaelsc has joined #osdev
<zid> This is gross
<zid> we're reading how the spec specifies integer literals
<zid> and the token 0 by itself is.. octal 0
<zid> basically number -> octal-number or hex-number or decimal-number, and decimal number is '123456789' then optional '0123456789' repeated, octal number is 0 then optional '01234567' repeated
<zid> so all 0s end up on the disgusting octal path
<kof123> do we want to know what spec?
stylefish_ has quit [Quit: Leaving]
stylefish_ has joined #osdev
stylefish_ has quit [Client Quit]
<zid> oh no heat
<bslsk05> ​xuanwo.io: Rust std fs slower than Python!? No, it's hardware!
<gog> 0o is better
<zid> I figured you'd be in the 0w prefix camp
edr has joined #osdev
<gog> Ow0
<zid> gog how could you attack my eyes like this
<gog> oopsie woopsie i made a fucky wucky uwu
<sham1> gog: no
<gog> sham1: i'm working vewwy hawd to fix this
goliath has quit [Quit: SIGSEGV]
bauen1 has quit [Ping timeout: 264 seconds]
heat has joined #osdev
<heat> gog, never lock
<heat> determinism is boring and a scam
<heat> if you don't lock: 1) you avoid deadlocks (scam problem, not real, wake up sheeple) 2) it's faster 3) you can get a surprise if you're lucky
<maybemjg> ey mofz
<maybemjg> you don't need to lock anything in node.js
<maybemjg> all while using threading
<zid> heat I linked you a thing
<zid> it's about both RUST and rep movsb
<zid> your favourites
<heat> fsrm is my favourite thing in the world
<maybemjg> fsrs should be favouriterer
<heat> rex.w 66h 66h 66h rep movsb
<heat> >It seems that rep movsb performance poorly when DATA IS PAGE ALIGNED, and perform better when DATA IS NOT PAGE ALIGNED,
<heat> LM
<heat> AO
<heat> THIS IS AN AMD MOMENT
<maybemjg> lol at this article
<maybemjg> i barely started reading and webdev is leaking
<zid> see I knew you'd like it
<maybemjg> > I learned how to use strace for syscall analysis. strace is a Linux syscall tracer that allows us to monitor syscalls and understand their processes.
<maybemjg> fucks htis
<maybemjg> i'm out
<zid> memcpy needs per-cpu specialization at this point, given how random as fuck rep movsb's performance is
<heat> wait
<heat> the fuck is this dude on about
<heat> >When (dst-src)&0xFFF is small (but non-zero), the REP MOVSB path in memcpy performs extremely poorly
<heat> this is not page aligned
<heat> zid, it does have per-cpu specialization
<maybemjg> wait, does that fucking cpu even do fsrm
<heat> apparently
<zid> nah it's per.. something
<zid> but it ain't per cpu
<zid> per.. one of like 4 options someone wrote, gg
<maybemjg> not long ago it was common for amd to not even have erms
<maybemjg> they suddenly have fsrm?
* maybemjg presses F to doubt
<maybemjg> cpu from nov 2020
<maybemjg> it should not be using rep movsb
<heat> zid, all the x86 memcpies have tuning params that someone sets using cpuid
<heat> so you can take those from caching info, x86 family, etc
<zid> yes but cpuid doesn't tell you how to tune it
<zid> you do some course if(0s
<zid> It needs to be per-cpu. Not per 4 things.
<maybemjg> total webdev that it took a kernel dev to run perf
<heat> zid, btw you have zen3 right?
<heat> can you grep fsrm /proc/cpuinfo?
<heat> or do you have zen4?
<zid> yea zen3
<zid> we still have all my sexy emrmsb benches
<maybemjg> glibc bug looks legitimate
<bslsk05> ​bugs.launchpad.net: Bug #2030515 “Terrible memcpy performance on Zen 3 when using re...” : Bugs : glibc package : Ubuntu
<heat> yeah and i remember noticing there was a huge penalty on misalignment for your rep movsb
<heat> so all in all not surprising
<zid> it also slows the fuck down on >64k
<maybemjg> however, the entire investigation would have taken 5 minuets if the dude was not a webdev
<zid> can you make me a nice 3d plot
<heat> i'll do that when i get to learning gnuplot
<maybemjg> gnuplot is a BOOMER tool
<maybemjg> according to you
<heat> it is
<heat> which is why that day will be never
<Ermine> Aight
<zid> gnuplot <3
<heat> mjg uses gnuplot
<heat> bmc uses gnuplot
<maybemjg> :(
<heat> all the data points i need
<heat> CERTIFIED BOOMER
<Ermine> tried to configure nftables week ago. Didn't work
<maybemjg> so zid i find your rlink to be deeply offsensive
<zid> I use gnuplot to test code that generates 3D geometry alogirthmiccally
<maybemjg> > Well, well, well. I'm somewhat embarrassed by these results. Here are a few quick hypotheses:
<heat> if gnu plotted these data points i'd have an x axis with "gnuplot users" and a y axis with "BOOMER%" and it'd be a straight line at 100%
<Ermine> Used the same ruleset today. Everything works
<maybemjg> fucking guy who had never seen a profiler is gonna speculate instead
<maybemjg> fuck
<heat> hey mjg
<heat> can you like
<heat> shut the fuck up
<maybemjg> chill?
<heat> or that yeah
<maybemjg> idk, can yiou ask nicely
<zid> he must be really going off if he's even annoying you
<heat> not everyone snorts profiling tools for breakfast
<maybemjg> mofo
<maybemjg> taking a look at a profiler is 101 if you do anythingp erformance
<maybemjg> like wtf
<maybemjg> i'm going to go be angry elsehwere
<maybemjg> :X
<zid> was trying to find a picture
<heat> oh i recently became a fan of 8-width tabs
<zid> heat: https://zid.github.io/gl.html I need to add a 'developed in GNUPLOT' banner to the bottom of this
<bslsk05> ​zid.github.io <no title>
<heat> zid the GNUPLOT user vs zid the JAVASCRIPT WEBGL DEVELOPER
<zid> It remains the only thing I've ever written in js
<heat> also that hex counting thing
<heat> remember that?
<zid> that's not a thing
zxrom has quit [Quit: Leaving]
<heat> when we got mercilessly trolled by some dude that totally couldn't count in hex
<heat> 0xe -> 0xf -> 0x1f
<zid> my gdt thing is in js too
<bslsk05> ​shogun.rm-f.net: GDT Parser
<zid> I wrote a CLASS type thing
<zid> var Brstream = function(x) { this.str = x; return this; }
<zid> disgusting
<heat> yo
<heat> explain something to me
<zid> I will struggle, unless it's about pokémon red/blue
<heat> in your vertex shaders, you're doing all sorts of matrix calculations in the shader instead of doing it in js and passing it in as a uniform
<zid> Correct
<zid> who the fuck wants to implement matrix ops in js
<zid> when I have a perfectly good graphics card than can do them natively
<zid> I only need them cpu side if i'm doing recursive calcs
<zid> like rotating a thing around another thing
<zid> which that doesn't do
<heat> but all the examples i've seen online just push projection + view + model matrices (sometimes pre-multiplied) to the shader in uniforms
<heat> so which is the best way to do things?
<heat> i know the gpu is really good at floating point but i've never measured any of this shite
<zid> It's whether it needs to be recursive or not, mainly
<zid> MVP doesn't
<zid> so you can just upload MVP and have the gpu do that part
<zid> either as M V and P, or MVP
<zid> but if your scene gets more complicated than "1 thing in the middle", you'll need to be able to rotate things around things etc, and suddenly the cpu needs to be able to calculate combined rotations and translations, before the MVP matrix
<zid> and you can't use a fixed function pipeline for that
xenos1984 has quit [Read error: Connection reset by peer]
<zid> good luck walking a scene graph on a gpu
<heat> sgtm
<zid> certainly doable
<heat> the gang branches in shaders
<zid> but you'd end up heavily gpu loaded and cpu idle
<zid> for no real benefit
<heat> that's perfect for a gaming rig
<heat> great idea!
<clever> zid: for the v3d on the rpi, it wants a flat array of vertex data, and then a second array containing sets of 3 indexes into the 1st array, so there is no real instancing or scene graph going on
<zid> gpus never have scene graphs
<clever> it does have other modes that use 2 indexes per poly, but they basically work the same way
<zid> hence "good luck walking a scene graph on a gpu"
<zid> what are you trying to say?
<heat> for my gaming rig i'll piiiiiiiiiick... hmm, a 3090 and a 4770k
<zid> heat: tbh a 4770k would be plenty for most games
<zid> you just wouldn't be able to hit 200fps
<zid> cus you wouldn't be able to get the game ran cpu side that quickly
<heat> these days it's a bottleneck i think
<zid> you'd hit 60fps at 8k just fine
<clever> more, that it lacks instancing entirely, if you have 2 identical models in the scene, the cpu needs to offset/rotate the verticies in each instance
<zid> but you would get >60fps at 1080p
<zid> wouldn't*
<clever> or add attributes
<gog> i don't need a gpu i just rotate cubes in my mind
<clever> have a transformation matrix appended to every vertex, in the vertex data
<heat> are you high
<zid> I have aphantasia so I need a gpu, gog
<gog> i amnot high
<heat> hi not high
<heat> im heat
<zid> heat: You can play GTAV on a Q6600 even with a bad gpu that takes ages to draw the frame.
<zid> 2.4GHz of core2 power
<heat> yeah and GTA V is an ancient 2013 vidya game
<gog> i mis my q6600
<zid> people only need good cpus if the gpu is taking 14ms to render the frame, so the cpu only gets 2ms to play with
<zid> or they want >60fps
<zid> if you have a decent gpu and only want 60fps, I bet a 4770k could play basically any game
<gog> i haven't played gta v since i finished story mode
<zid> gog: same, the collectibles didn't interest me
<heat> i'm relatively sure i've seen some benchmark results where the 4770k just castrates the kickass gpus
<zid> gta3/vc I played the ever loving shit out of the post-game
<zid> heat: yea, lowers them from 200fps to 60fps
<heat> gta v i probably last played in, idk 2014 or 15?
<heat> on my XBOX 360
<heat> POWERPC POWERPC POWERPC
<heat> XENON CPU BEST
<heat> TRI CORE BAYBEEEEEE
<heat> EIEIO
<zid> with the slick prefetcher bug
<heat> you know what bug it did not have?
<clever> > people only need good cpus if the gpu is taking 14ms to render the frame, so the cpu only gets 2ms to play with
<heat> it didn't leak AVX data in registers
<heat> that it did not.
<clever> zid: what if the cpu was preparing the next frame in advance?
<heat> because it didn't have AVX BECAUSE WHO NEEDS THAT WHEN YOU HAVE POWERPC POWERPC POWERPC
<heat> EIEIO
<clever> then you have 16ms for the cpu to prepare the next frame, and queue it up in the gpu
<clever> and as long as the gpu can display it within 16ms, you can maintain 60fps
bauen1 has joined #osdev
<clever> at the cost of 32ms of delay between the state becoming visible on-screen
<kof123> hmm...i got an xbox 360 for free, but seems to be "not old enough" for the easy way to homebrew :/
<zid> nobody likes input lag
<zid> some games do do it that way, they're called "bad games"
<clever> back when i was getting 7fps, i noticed a number of games only register input if you hold the key for 1 frame
<clever> and at 7fps, that means holding a key for 142ms, lol
<zid> all games, I hope
<zid> nobody likes buffered stale inputs either
<clever> now try typing in a text input box :P
<zid> yea that's when it becomes a problem
<heat> i like stale bread and stale inputs
<zid> when what you're interacting with is a TTY, not a video game
<zid> buffering is nice on a tty
<clever> what if the video game includes its own ingame scripting system and a text editor?
<heat> sounds like a nerdy video game, uninstall
<clever> lol
<zid> why
<zid> was it running at 7fps
<clever> fx8350 and an equally old gpu
<zid> that still doesn't explain it
<heat> oh man
<heat> the fx8350
<zid> I'm not sure I could run a zachtronics game at 7fps
<heat> what a cpu
<zid> 8350 still has the single core freq record?
<clever> factorio was the only game that system could run at 60fps
<zid> impossible
<zid> an empty factorio world maybe
zxrom has joined #osdev
<zid> did you try actually building a factory
<clever> yes, on multiple planets (space expansion mod)
<zid> I don't believe you
<clever> *digs*
<zid> 'solar only and I had it oveclocked to 8GHz'
<zid> I'd believe it then
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
<zid> see, solar panels
<zid> and you don't have 60fps
<zid> REJECTED.
<clever> that was later in the game, when it began to struggle a little
<zid> The fastest 8350 is only 9th now :(
<zid> 8.6GHz
<zid> someone hit 9GHz on a 14900KF
<gog> i ran factorio on a Celeron 3350
<zid> I ran it on a xeon, worked fine :P
<zid> I now run it on a 5800, weirdly, also fine
<zid> I need to put more time into my beanbase so I *finally* get to bots
<zid> and it stops being a pain in the arse
<bslsk05> ​www.newegg.ca: CAPTCHA page
<clever> i now get solid 60fps in every game i have tried, even with the graphics cranked to max
<zid> I should hope so
<zid> it's a fucking i9 from last year
rustyy has quit [Quit: leaving]
<zid> I mean, except in dwarf fortress
<clever> even just the i9 with the old gpu, was getting major improvements
<zid> 20fps is good in dwarf fortress, on 5GHz
<clever> the gpu shipped late
<clever> also, the numbers in glmark2, are rather crazy, [texture] texture-filter=nearest: FPS: 29244 FrameTime: 0.034 ms
xenos1984 has joined #osdev
<zid> what do I run
<zid> to build a thing
<zid> with a meson.build in the root
<zid> meson setup build; ninja -C build
<zid> kwtf was wrong with 'make'
<clever> ive heard that ninja performs better then make, cmake can produce both make and ninja files, so you have a choice
<clever> ive not measured it myself
<zid> aha, I have a HORSE
<clever> it runs thru various tests, and provides stats for each
<zid> yes I understand benchmarks
stolen has joined #osdev
<zid> 813 points
<zid> Presuably I absolutely rocked it
node1 has joined #osdev
<zid> a 3060 ti gets 19000
node1 has quit [Quit: Client closed]
sham1 has quit [Quit: ZNC 1.8.2 - https://znc.in]
<zid> [texture] texture-filter=nearest: FPS: 1475 FrameTime: 0.678 ms
<zid> at 800x600
<zid> also sick, youtube is having a MOMENT on me
node1 has joined #osdev
<zid> my home page is empty except for 8 'mix'es
<clever> glmark2 Score: 21183
<node1> Hello
vdamewood has joined #osdev
<gog> hi node1
<node1> gog hello
<vdamewood> gog: Hi fishchomper
* gog borðið fiskur
<vdamewood> get out of my pocket!
* vdamewood pulls the rest of the fish out of his pocket and gives it to gog
<node1> when we run multiple virtual machine (VM) on a host operating system, it uses a combination of host memory and its own separate virtual memory( by each VM correct) ?
<clever> node1: when using /dev/kvm on linux, your just mapping a chunk of virtual memory from userland, into the guest
<clever> so the userland process on the host, has to first allocate that ram from the host kernel, via the normal manner
rustyy has joined #osdev
sham1 has joined #osdev
XgF has quit [Remote host closed the connection]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
XgF has joined #osdev
virt has joined #osdev
stylefish_ has joined #osdev
stylefish_ is now known as stylefish
<node1> clever thank you
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
zxrom has quit [Quit: Leaving]
node1 has quit [Quit: Client closed]
xenos1984 has quit [Ping timeout: 260 seconds]
gog has quit [Quit: Konversation terminated!]
xenos1984 has joined #osdev
<zid> guys, I just remembered about the christmas arson goat
node1 has joined #osdev
stylefish has quit [Quit: stylefish]
<gorgonical> Here's an idle thought: say your timer tick goes every 1 second. An application requests a sleep for 0.2s. Do you reconfigure your timer to fire in 0.2s and then after expiring existing timers, reconfigure for your standard period? Or do you accept that applications requesting a sleep period shorter than your scheduling period might be late?
<gorgonical> Reconfiguring the timer means that the scheduling interval is now only *up to* the period, not exactly the period because you might cut it short with a pending timer
potash has quit [Ping timeout: 246 seconds]
<gorgonical> But it also creates somewhat complicated bookkeeping, because what if the application's 0.2s wait spans a timer tick? Do you recompute pending timers and reconfigure the timer for the soonest tick that way?
<gorgonical> or all this can be avoided by, instead of going into a halt, checking if you have timers that will expire before the next tick, and then busylooping instead of halting
<zid> wake up in 0.2, then wake up in 1.0 from that.
<gorgonical> So then at your timer tick you need to find the soonest pending timer, including your schedule tick, and schedule for that then
<gorgonical> Which can be not so bad if you sort your timers as you make them
gog has joined #osdev
<clever> gorgonical: that is the difference between a fixed tick interval and a dynamic timer
<gorgonical> clever: I always assumed dynamic timer meant there wasn't a regular scheduling tick
<clever> exactly
<gorgonical> But you could have one, too
<bslsk05> ​github.com: lk/kernel/timer.c at master · littlekernel/lk · GitHub
<clever> in LK for example, whenever you set a timer, it will figure out when the first one fires, and setup the hw timer
<clever> when you cancel a timer (lines 159 and 174+), it will check if that first timer was being canceled, and maybe re-configure the hw
<clever> when the irq fires, it will setup the hw again
<clever> but if you dont have a dynamic timer (line 290), it will just set the hardware to tick every 10ms
<bslsk05> ​github.com: lk-overlay/dev/timer/vc4/rules.mk at master · librerpi/lk-overlay · GitHub
goliath has joined #osdev
<clever> its then up to the timer driver to declare if its dynamic or not, and LK can then work with both types
<gorgonical> Yeah the reason I'm thinking about this is because I maybe have a reason to heartbeat check Linux for something from my kernel, at a much higher frequency than the scheduling timer
<gorgonical> And currently if I want a kernel worker thread to sleep say 10us and poll again, there's no way to do this currently without increasing the scheduling tick frequency
<clever> in LK, sleeps like that are handled seperately, over in the scheduler
<clever> i think
<clever> any time you schedule a task, it checks if there are other runnable tasks, and may setup a timer to force a context switch
<zid> even fully 'tickless' machines often have a heartbeat
<clever> so if there is only one runnable task, nothing is setup to interrupt it and context switch later
<clever> but now that i think about it, sleeping is not runnable...
<bslsk05> ​github.com: lk/kernel/thread.c at master · littlekernel/lk · GitHub
<clever> yep, that makes sense, it sets up a one-shot timer, that will make the thread runnable again in the future
<clever> and the timer returning INT_RESCHEDULE, tells it to do a reschedule as it returns from the irq
<clever> so it may switch to the freshly waken thread
<clever> but yeah, your limited to the resolution of the timers
<gorgonical> how do you mean? whatever you specify as the shortest resolution of timers or something else?
<gorgonical> because with mixed dynamic+heartbeat you aren't limited in that way
<clever> in the case of the rpi, the timer is clocked at 1mhz
<clever> so the hw increments a counter every 1 uSec
<gorgonical> Indeed then you do mean the hardware resolution
<gorgonical> My timer is 24mhz so that gives me ~500ns resolution
<clever> enless you count once every ~76 minutes, the rpi is also not capable of ticking at a regular interval
<clever> it has 4 compare registers, and will fire one of 4 irq's when they match a 32bit clock
<clever> and the clock just counts up at 1mhz
zxrom has joined #osdev
<node1> What's nested paging in virtualization?
<clever> node1: when it first runs a virtual addr thru the guest paging tables, to create a guest physical addr, then runs it thru the hypervisor paging tables to create a host physical addr
<clever> that lets the guest manage its own paging tables, but still restricts what the guest can do
<clever> the other option, is where the host has to trap all attempts to modify the paging tables, then the host mangles the paging tables, changing the physical addresses
<clever> which slows it down greatly
<gorgonical> yeah nested paging without hardware acceleration is awful. something like up to n^2 for accesses in the guest
heat_ has quit [Remote host closed the connection]
<node1> So this means  Nested paging is a technology used by hypervisors in a virtualized environment. Which translate the guest physical addresses  used by VMs into the actual physical addresses in the host's memory?
heat has joined #osdev
<gorgonical> yes
<node1> gorgonical okay thank you :)
xenos1984 has quit [Ping timeout: 252 seconds]
<node1> Thank you clever
<gorgonical> as an fyi people will call that technology different things. I think AMD calls it nested page tables, but intel calls it extended page tables (ept). Sometimes they are called shadow page tables when referring to software-only ones, too
<node1> oh okay
joe9 has joined #osdev
netbsduser has joined #osdev
<heat> gorgonical, fyi the linux high resolution timers have something called "slack" where they accumulate N events with less than <slack> ns between them
<heat> because firing slightly late is no problem at all
<zid> This is why you're not realtime licenced heat
<zid> you say shit like that
<node1> But some white paper claims that  nested paging  reduces overhead ?
<gorgonical> It does if you have hardware that accelerates things
<pitust> how would nested paging work without that
<node1> How come? with traditional Shadow Paging  ??
<gorgonical> shadow page tables where every access forces a fault the hypervisor handles and then fixes up
<zid> ooh new monitor crash, pretty stripes!
<node1> Like how does the guest virtual address being translated into host physical address ? in shadow page table?
<clever> node1: i think in that case, there is 2 paging tables, the one the guest thinks is in use, and the real one the hypervisor is managing (the shadow one)
<clever> every write to the guest paging tables triggers a pagefault
<gorgonical> yes this exactly
<clever> and the hypervisor then changes the phys addr, and updates the shadow table
xenos1984 has joined #osdev
<clever> so you have a major cpu overhead (faulting into host, and running lookups) every time the guest writes to the tables
<gorgonical> which *also* includes the guest's page tables themselves, so the guest attempting to access some memory location, say 0x1000, causes a traversal of the guest's page tables which are themselves in guest memory. a page fault into the hypervisor to check for every single layer of the page table in the guest
<clever> and also when the userland in the guest does mmap(), it faults all the way to the host
<gorgonical> it is horribly slow without hardware acceleration
<clever> so just allocating memory or creating a process in the guest, causes cpu overhead in the host
<heat> that's all very true but have you considered that
<heat> linux kernal best system of operating
<heat> ???!??
gog has quit [Quit: byee]
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<gorgonical> Don't forget about this gem
<node1> aha i see it looks shadow page table take one-level indirect addressing while nested page table have direct addressing.
gog has joined #osdev
<gorgonical> never forget heat that lunix was invented by linyos torovoltos
<node1>  so if we enable nested paging.  the CPU's memory management  directly translates guest physical addresses to host physical addresses, without the need for hypervisor intervention in the translation process.?? correct??
<gorgonical> that's right
<node1> Great !!!
<node1> AMD rocks
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<gorgonical> as mentioned above, intel does this also with the extended page table
<node1> ok
<gorgonical> because ibm has to be different the power architectures probably call it something silly like "IBM(TM) Think(TM) ultra paging"
<kazinsal> https://social.treehouse.systems/@marcan/111493984306764821 I'm so glad we're back to the era of hardcoding architecture-specific stuff into software
<gorgonical> 16k page granules are so 2010
<gorgonical> 2MB or bust cowards
<netbsduser> oh yeah, linux doesn't believe in filesystem/disk blocks larger than page size
<netbsduser> in fairness to them it adds some measure of complexity
<zid> imagine spending more than 14 seconds optimizing for swap performance
<zid> it's swap, perf's fucked already
<netbsduser> it's not
<netbsduser> little-used anonymous memory is fit only to be cast out when stealing those pages for e.g. file caching would be more advantageous
<zid> have you considered
<zid> having more ram than storage
<maybemjg> i had that
<zid> 256GB of ram and a 230GB SSD, perfect
<maybemjg> installer of some crapper was adamant on creating a swap partition 2 x ram
<maybemjg> and thus failed
<netbsduser> if you were trying to install sunos 4, it's because every committed page of anonymous memory must be backed by a corresponding page of swap
<netbsduser> actually never mind
<netbsduser> it's been a long day and i forgot that sunos 4 isn't typically installed on machines with 256gb of ram
<zid> ah see there's your mistake
<node1> Thank you all
<zid> especially as this started as "linux smh, doesn't optimize for swap"
node1 has quit [Quit: Client closed]
<zid> so presumably the installed OS is.. linux
<maybemjg> you make a couple of typos and bam, sunos
<maybemjg> 4
teroshan97 has quit [Quit: The Lounge - https://thelounge.chat]
<gorgonical> mid afternoon tea with marzipan
teroshan97 has joined #osdev
<maybemjg> i drink tea with milk
<maybemjg> LIKE HITLER
<gorgonical> oh no
teroshan97 has quit [Client Quit]
<gorgonical> I like that rittersport's selling point is that it's square: "quadratisch. praktisch. gut"
<gorgonical> Because I, too, am a bigot against triangular chocolate
teroshan97 has joined #osdev
Turn_Left has joined #osdev
alfplayer has quit [Ping timeout: 256 seconds]
<kof123> re: 2x RAM IIRC freebsd said something similar, but it was not enforced/required
<sortie> gorgonical, don't another biscuit in the grid, the Trianglix triangle system is proud to announce the official partnership with toblerone
Left_Turn has quit [Ping timeout: 256 seconds]
<gog> the power of the triangle
<kof123> i think godiva beats whatever shape chocolate here
<gorgonical> that's so repulsive I may vomit
<gog> yes
<gog> sortix was tailor-made for the triangle tablet from dunder-mifflin-sabre
<heat> maybemjg, boss are you aware of how to get JAVASCRIPT WEBDEV FLAMEGRAPHS
<maybemjg> dude
<maybemjg> i recently joined a new project
<sortie> Unleash triangular power! Trianglix is a revolutionary new triangle system!
<heat> welcome to sortix maybemjg
<gorgonical> I still don't know what a flamegraph is
<maybemjg> i jokingly told the guy i can do some non-c, but no javascript
<maybemjg> turns out there is javascript in the project
<heat> gorgonical, really?
<maybemjg> :X
<gorgonical> not by name anyway
<bslsk05> ​gist.github.com: sortix.svg · GitHub
<heat> download for svg interactivity
<heat> but it's that
<gorgonical> So it's like a callgraph?
<maybemjg> sortix flamegraphs?
<heat> yeah i hacked those in
<gorgonical> okay this makes sense to me. neat idea
<heat> gorgonical, not exactly
<heat> you sample stacks
<gorgonical> it's a callgraph on the y axis, but a cumulative time graph on the x?
<heat> yes
<gorgonical> so then ideally what shape is good for a flamegraph
<gorgonical> peaky or one peak
<heat> none
<heat> beat the laws of physics
<heat> make your program do everything in no time at all
<gorgonical> no peaks if everything is one function
<heat> truly OPTIMAL
<gorgonical> the only non-inlined function is main()
<heat> gorgonical, you have been promoted to Vice-president of LTO at LLVM
<heat> brb i need to reboot cuz LINUX BLUETOOTH
heat has quit [Remote host closed the connection]
<gorgonical> that is an interesting problem, though, that your flamegraph can't tell if you inlined some shit sneakily
heat has joined #osdev
LostFrog has joined #osdev
PapaFrog has quit [Ping timeout: 268 seconds]
<maybemjg> heat: what did you profile there
immibis is now known as Elon-Musk
<heat> a make build I think
<heat> no threaden
<heat> make on the kernel or libc or whatever that was, with gcc
<maybemjg> that is what i initially suspected
<maybemjg> but then what is accept4 doing on the profile
<heat> it's sortie's custom user fs protocol
<sortie> heat, it's very flammable I assure you
<heat> accept + pwrite is extfs
<maybemjg> unACCEPTable *rimshot*
<gorgonical> I'm getting more and more agitated as I realize I have to basically reproduce Linux's poll semantics but without a file context
<gorgonical> >:(
maybemjg is now known as absztyfikant
<heat> absztyfikant, very funny that FLAMEGRAPHS CANT DEAL WITH IPC very well
<heat> MICROKERNAL FLAMEGRAPHS?
<absztyfikant> what
<heat> yeah bud
<absztyfikant> have you heard of fldamegraphs which trace sleeps and wakeups
<heat> flamegraphs are not nearly as useful in that form
<heat> well yes
<heat> but cpu flamegraphs
<bslsk05> ​www.brendangregg.com: Linux Wakeup and Off-Wake Profiling
<zid> Live your life like you're the only person running code on your cpu.
<zid> mutex? I think you mean busy loop.
<absztyfikant> rust empowered me to fearlessly add threads
<absztyfikant> so i'm gonna use them even though i could not justify it
<heat> threads are so 90s
<heat> use async
<absztyfikant> .fuckyou?
<absztyfikant> wait
<absztyfikant> .fuckyou()?
<absztyfikant> there
<heat> <absztyfikant
<heat> shit
<heat> mizclicc
<heat> the fuck is up with your name anyway
<heat> polish??
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<absztyfikant> it's old polish for "i wish i was genz"
Elon-Musk is now known as Enron-Musk
dude12312414 has joined #osdev
ThinkT510 has quit [Quit: WeeChat 4.1.1]
nikolar has quit [Quit: ZNC - https://znc.in]
<gorgonical> absztyfikant: kagi translate thinks its hungarian for "abstinence"
<absztyfikant> it's not hungarian
<absztyfikant> it is a rarely used polish word
virt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ThinkT510 has joined #osdev
alfplayer has joined #osdev
virt has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
nikolar has joined #osdev
Enron-Musk is now known as immibis
danilogondolfo has quit [Read error: Connection reset by peer]
Brnocrist has quit [Ping timeout: 256 seconds]
Brnocrist has joined #osdev
bauen1 has quit [Ping timeout: 245 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
netbsduser has quit [Ping timeout: 268 seconds]
<Ermine> minix flamegraphs when
[itchyjunk] has joined #osdev
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
mobivme has joined #osdev
[_] has quit [Ping timeout: 260 seconds]
terrorjack has joined #osdev
<heat> Ermine, wanna port my patchez to minix?
<heat> i have the patchen for onyx and the patchen for sortix
<heat> if that helps
Rubikoid has joined #osdev
alfplayer has quit [Ping timeout: 256 seconds]
<Ermine> Oh, patchen
<Ermine> Will reach out after NY
blockhead has joined #osdev
absztyfikant is now known as mjg
Vercas has joined #osdev
mobivme has quit [Quit: Leaving]
Turn_Left has quit [Read error: Connection reset by peer]
virt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pandry has quit [Ping timeout: 260 seconds]
goliath has quit [Ping timeout: 252 seconds]
pandry has joined #osdev
gbowne1 has joined #osdev
pandry has quit [Ping timeout: 264 seconds]