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
<gog> hi
<heat> he
<mjg> as of now i have written in rust
<mjg> and by that i mean rust itself
* mjg does not really feel any different though
<mjg> i have code*
<gog> mjg: now all you need is a blåhaj
PapaFrog has joined #osdev
<heat> mjg: CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
<heat> bool "Enable heap memory zeroing on allocation by default"
<heat> this is it
<mjg> wow you are probably right
<mjg> gonna have to add some exception support
<mjg> if not already present
<bslsk05> ​elixir.bootlin.com: slab.h - mm/slab.h - Linux source code (v6.2-rc3) - Bootlin
<mjg> +DEFINE_STATIC_KEY_MAYBE(CONFIG_INIT_ON_FREE_DEFAULT_ON, init_on_free);
<mjg> wut
<mjg> do you have this on in your kernel?
<heat> have what?
<mjg> CONFIG_INIT_ON_ALLOC_DEFAULT_ON
<mjg> i see debian has
<heat> yes
<mjg> ok
<mjg> you check this out, toggale at boot
<mjg> toggable
<mjg> i just can't write today
<heat> toggleable
mimmy_ has joined #osdev
<mjg> yo
<mjg> from 2 mln stats per second... to 2.5
<mjg> :d
<mjg> i strongly suspect the fucking PAGE SIZED ZERIONG was not intended for this cache
* mjg is about to write a strongly-worded e-mail
<heat> it is
mimmy_ has quit [Ping timeout: 260 seconds]
<heat> the page sized zeroing happens because you're allocated... page sized objects
<heat> s/allocated/allocating/
<heat> and you enabled the hardening, remember? :v
<mjg> me?
<mjg> it came like that
<heat> sure
<heat> if you wrote a strongly worded email you'd be the big stupid
<heat> "this hardening I enabled makes things slower"
<mjg> *i* did not enable it
<mjg> and i'm confident zeroing for these bufs was not intended
<heat> you did enable it when you installed your ubuntu kernel
xenos1984 has quit [Read error: Connection reset by peer]
<heat> why was it not?
<heat> it was intended for everything that could be zeroed
<mjg> dude
<mjg> you are worse than theo
<ZombieChicken> Is there an actual issue here?
<heat> no
<heat> mjg doesn't understand the concept of hardening
<mjg> i think it got hardened in the sense that it avoids copying out unitinit kernel memory
<mjg> if the consumer failed to take care of it
<mjg> what you don't understand is that the namei zone does not have this problem
<heat> why does it not?
<mjg> memory is copied *in* and only inspected up to that spot
<heat> not just copying out uninit but just plain using it too
* ZombieChicken thinks he enabled zeroing on freeing and allocation for some reason
<mjg> again, the kernel de facto performs strncpy + guarantees nul termination
<mjg> and remembers the size
<heat> mjg, sounds great until someone fucks up and overwrites your \0 and then boom
<heat> but this is obviously not a problem because an off by 1 bug never happens
<mjg> you do realize if this is indeed to be considered a problem
<mjg> the strncpy routine can just zero out few more bytes
<mjg> that is still going to be quite a bit less than 4096
<heat> do you want to create a whole weird dubious workaround just to get a +25% speed boost on a synthetic benchmark
<heat> for a config option you need to explicitly enable
<ZombieChicken> 2.5 -> 2 is 20% improvement
<mjg> i don't see anything dubious when it comes to not zeroing for *this* cache
<mjg> ZombieChicken: it is 2 -> 2.5
<ZombieChicken> eh
<mjg> well i'm gonna ask powers to be what they think
<heat> sure, you can pad your string for a few bytes
<mjg> (or is it powers that be?0
<heat> for $arbitrary
dude12312414 has joined #osdev
ZombieChicken has quit [Remote host closed the connection]
ZombieChicken has joined #osdev
xenos1984 has joined #osdev
dormito has quit [Quit: WeeChat 3.6]
dormito has joined #osdev
nyah has quit [Quit: leaving]
ZombieChicken has quit [Remote host closed the connection]
<geist> i do wonder if there's some tiny advantage to when copying a variable sized string or whatnot, zeroing *up to a cache line boundary* on the output
<geist> reason being: the cpu can optimize out a readback of the cache line if it senses a complete overwrite
ZombieChicken has joined #osdev
<moon-child> azul machines had specialised instructions for this
<moon-child> on x86, however, I think the only non-allocating writes you get are nt stores. Not 100% sure of that, though
<moon-child> may be extra complexity for not-nt for tso reasons. I believe the azul instructions were weakly ordered, as they were intended for nursery allocations, which of course no one is going to snoop
<geist> well i'm not necessarily saying its NT, it it does't skip the cache, but if the cpu gets a write that is going to cover the entire cache line it can avoid reading in a copy of it first
<geist> then it can write it back when it feels like it
<geist> i'd be surprised if modern cpus dont already have this optimization
<moon-child> yes, I understand. I'm saying that ideally, non-allocating would be separate from nt, but I think you have to pick either both or neither on x86
<zid> It's weird to me how many things x86 leaves to the cpu to optimize rather than just letting you do
<geist> well im also thinking about not x86 too
<moon-child> zid: cldemote is maybe a thing soon
<zid> x86 seemingly cares about perf and isn't afraid to add instructions
<geist> and what i'm thinking about isn't non allocating either. it's fully allocating
<zid> a clear direction flag emote?
<moon-child> john mccalpin refers to what you're talking about as 'non-allocating' https://sites.utexas.edu/jdm4372/2018/01/01/notes-on-non-temporal-aka-streaming-stores/
<bslsk05> ​sites.utexas.edu: John McCalpin's blog » Blog Archive » Notes on “non-temporal” (aka “streaming”) stores
craigo has quit [Ping timeout: 246 seconds]
<moon-child> '"Non-allocating store" says that a store that misses in a cache will not load the corresponding cache line into the cache before performing the store'
<geist> ah. huh. that seems incorrect terminology, but maybe thats' because i'm using to ARM terminology where 'allocating' has very specific semantics
<moon-child> vs '"Cache-bypassing store" says that at least some aspects of the transaction bypass the cache(s)' which seems to be what you're referring to
<moon-child> ah, I see; idk arm
<geist> but yeah that's precisely what i'm talking about. ARM goes into some amount of verbiage about how their write buffer works, etc, so it implies it can easily implement this sort of optimization
<geist> no i'm thinking 100% about what they describe as non-allocating
<geist> obviously if the cache line already exists it can overwrite it, but if there's no cache line in the heirarchy for that address it can just synthesize a new one, mark it dirty, without having to fetch the old contents first
<moon-child> I meant, when I said 'non-allocating', you interpreted that to mean what john mccalpin refers to as 'cache-bypassing'
<moon-child> anyway yeah wc can do that
<moon-child> (or if you have a full-cacheline write, which you get with avx512)
<geist> also note ARM (and AMD) have instructions to blat out a cache line of zeros, but i think those are pretty specifically NT
<moon-child> yeah I thought amd clzero was specifically for wiping out ecc errors or something; not for performance
<geist> iirc ARM also has a special type of AXI transaction that says 'this is just zeros' and then doesn't have to clock in N bytes of zeros
<geist> presumably x86 does too inside their private busses. seems like an easy optimizatino to make
<moon-child> yeah I saw a thing about that somewhere
<moon-child> writing zeroes can be cheaper than writing other stuff
<geist> anyway seems like it'd be an easy enough benchmark to write: blat out soe data to some large buffer, sometimes completely covering the cache line and sometimes leaving one word out, etc
<geist> hypothetically the one that blats out less data should be faster, because less data, but if it has to allocate the cache line first..
gog has quit [Ping timeout: 260 seconds]
<moon-child> yeah
heat_ has joined #osdev
heat has quit [Ping timeout: 260 seconds]
heat_ is now known as heat
fedorafan has quit [Ping timeout: 260 seconds]
fedorafan has joined #osdev
modscleo4 has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
fedorafan has quit [Ping timeout: 246 seconds]
fedorafan has joined #osdev
vdamewood has quit [Remote host closed the connection]
ZombieChicken has quit [Quit: WeeChat 3.7.1]
vdamewood has joined #osdev
ZombieChicken has joined #osdev
CompanionCube has quit [Ping timeout: 260 seconds]
Stary has quit [Ping timeout: 264 seconds]
modscleo4 has quit [Quit: modscleo4]
Stary has joined #osdev
CompanionCube has joined #osdev
CompanionCube has quit [Excess Flood]
CompanionCube has joined #osdev
CompanionCube has quit [Excess Flood]
CompanionCube has joined #osdev
CompanionCube has quit [Excess Flood]
CompanionCube has joined #osdev
CompanionCube has quit [Excess Flood]
fedorafan has quit [Quit: Textual IRC Client: www.textualapp.com]
CompanionCube has joined #osdev
CompanionCube has quit [Excess Flood]
Left_Turn has joined #osdev
CompanionCube has joined #osdev
Turn_Left has quit [Ping timeout: 248 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
ZombieChicken has quit [Quit: WeeChat 3.7.1]
Stary has quit [Ping timeout: 255 seconds]
CompanionCube has quit [Ping timeout: 252 seconds]
srjek has quit [Ping timeout: 248 seconds]
mimmy_ has joined #osdev
mimmy_ has quit [Ping timeout: 268 seconds]
CompanionCube has joined #osdev
Stary has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
ZombieChicken has joined #osdev
heat has quit [Ping timeout: 256 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
ZombieChicken has quit [Quit: WeeChat 3.7.1]
mimmy_ has joined #osdev
<epony> so, Rust having the dancing baffoonery around data and logic is the same overhead as Java
<epony> and runs on a VM compiler
<epony> therefore, it produces overhead and waste, without assuring validity and correctness of logic and data manipulation
<epony> and runs on microprocessors without isolation of resources
<epony> "faux intruments"
<epony> untruements
<epony> have to present pinchmarks to validated and verified logic and data structure programs for real security and correctness
mimmy_ has quit [Ping timeout: 272 seconds]
<epony> and compare that with native performance punchmarks of having done that ahead of compilation and retaining only the correct minimal reduction of the runtime
<Mutabah> ... huh?
<epony> btw risc is slow and contended for data as throughput to memory and as general programming is inferior
<epony> yep
<epony> it's for logic serialisation, not for general purpose machine implementations, for internal functional blocks of micro-processors as serialised pipelines
<Mutabah> I'm not sure I can read any sense into your comments (e.g. I've never heard the terms "punchmark" and "pinchmark")
<epony> so, get educated
<epony> then you'll be able to enjoy the humour too ;-)
<epony> oh, and one more thing: both data centres and general purpose performance computers run on CISC which has nothing to do with your sexual self-mutilation
<Mutabah> Ok... that's just uncalled for
epony was kicked from #osdev by Mutabah [Please refrain from that sort of rude generalisation]
zaquest has joined #osdev
solenya has joined #osdev
epony has joined #osdev
solenya has quit [Client Quit]
<epony> that's what you get when you play smart "can't parse / makes no sense", contention and aggravation for nothing in particular, just don't make that a habit of yours.. it's not good for the public culture and mood / tone
Turn_Left has joined #osdev
<epony> classic mistakes
<epony> it's called for and you called it ;-)
<epony> people do what they want and say what they need / have intended to, you can just "reduce your visibility" to that, does not mean the saying does nto exist elsewhere and in a more direct way
<epony> anyway, it's not important.. focus on what matters
Left_Turn has quit [Ping timeout: 252 seconds]
<epony> try to address the technical points you have time for that, if not.. enjoy something else like a better way to say more meaningful things
Left_Turn has joined #osdev
<epony> like Rust being hypey and fakey
<geist> oh for cryin out loud what are you blabbing about?
<geist> it's just a continuous stream of vaguely sensical stuff
<epony> faux safety
<kazinsal> just ban them dude
<epony> yeah, ideal
Turn_Left has quit [Ping timeout: 265 seconds]
<epony> that way I won't be seing idiocracy ;-) and poke analogies
<geist> i guess, i'd rather they just start trying to make sense. or at least if they're just blabbing and no one is responding, take the hint
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
heat has joined #osdev
<epony> typically, it's the people who say "don't understand" who don't get the idea ;-)
<zid> geist's a big proponant of people working mental illness out of their system
<zid> like it's a cold or something
heat has quit [Ping timeout: 252 seconds]
<Ermine> yeah, why try to make sense and make things clear when you can just say 'you all are just a bunch of dumbasses'
fedorafan has joined #osdev
jjuran has quit [Ping timeout: 260 seconds]
jjuran_ has joined #osdev
jjuran_ has quit [Ping timeout: 272 seconds]
<Mutabah> kazinsal: Ah, didn't noticed them re-join
GeDaMo has joined #osdev
<epony> "them", like it's 5 people..
<epony> "our multiple personalities are not very interesting" --we
jjuran has joined #osdev
<bslsk05> ​'The Who - My Generation' by The Best Of - Home Of Classic Music (00:03:28)
SGautam has joined #osdev
heat has joined #osdev
bombuzal has quit [Quit: b0rk]
theWeaver is now known as SeriousCallersOn
SeriousCallersOn is now known as NoSeriousCallers
invalidopcode has quit [Read error: Connection reset by peer]
invalidopcode has joined #osdev
foudfou has quit [Ping timeout: 255 seconds]
unimplemented has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
heat has quit [Ping timeout: 246 seconds]
foudfou has joined #osdev
mimmy_ has joined #osdev
mimmy_ has quit [Ping timeout: 272 seconds]
craigo has joined #osdev
NoSeriousCallers is now known as Freja
nyah has joined #osdev
craigo has quit [Quit: Leaving]
foudfou has quit [Ping timeout: 255 seconds]
craigo has joined #osdev
foudfou has joined #osdev
terminalpusher has joined #osdev
gog has joined #osdev
jimbzy has quit [Ping timeout: 246 seconds]
cultpony has quit [Quit: ZNC - https://znc.in]
antranigv has joined #osdev
wootehfoot has joined #osdev
ss4 has joined #osdev
ss4 has quit [Client Quit]
wootehfoot has quit [Ping timeout: 252 seconds]
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
<zid> ergh knackered
<zid> pushing vans in the cold is work
<gog> i'm slightly hungover
<gog> zid: why were you pushing vans
<zid> It wouldn't start, we spent ages, got it starting
<zid> went to drive me home
<zid> died a hundred meters away
<gog> ooof
<zid> We've diagnsosed it down to: it's being really fucky
<zid> It wasn't starting at all, wiggling the glow plug harness would get the glow plug relay to click and then it'd start, and die again after 2 seconds
<zid> so it's basically just haunted
<gog> maybe the glow plug isn't staying on long enough so the head is just too cold
<gog> unless it's otto cycle and you meant spark plug :P
<kaichiuchi> zid: come to america
<kaichiuchi> there is a mechanic every 10 steps
<zid> glow plug stuff is all ecu managed
<zid> and it's now refusing to do much of anything
<zid> it *could* have been that the glow plugs were just BARELY hanging in there and the wigglign moved some crud off a wire and gave it an extra .1V
<zid> but that seems unlikely, just as likely that the fuel pump is unhappy or the crank sensor or something idk, it *really* needs the engine codes read out
<kaichiuchi> i have a blue driver that hooks into the OBD port just for that reason
<kaichiuchi> but I don't need it anymore
<kaichiuchi> if I break down I call a number that will pick the car up and take me home
terminalpusher has quit [Ping timeout: 260 seconds]
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
unimplemented has quit [Read error: Connection reset by peer]
antranigv has joined #osdev
terminalpusher has joined #osdev
danilogondolfo has joined #osdev
<zid> <zid> ddevault: what was your fucky wucky bug in the end?
<ddevault> which fucky wucky bug
<zid> That kept rebooting the systm or whatever it was, a few days ago
<Ermine> fuck yeah!
<ddevault> O_o
<zid> the undebuggerable ness
<ddevault> probably cache problem
<zid> ah cache is a poo
<zid> tlb or d/i cache?
<ddevault> the latter
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: vulcan/cmd/init/main+aarch64.ha - sourcehut git
<ddevault> plus
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: vulcan/cmd/init/mbox.ha - sourcehut git
<ddevault> the entire reason for porting to aarch64 over the past several weeks was to write these hundred-odd lines of code rather than write an intel HD graphics driver
<zid> I'd rather write an intel hd graphics driver ngl
<ddevault> gl with those docs
<ddevault> anyway I'm working with a deadline here
<zid> ye
<zid> 82810 driver seems mroe reasonable
<zid> Someone should sell an 82810 on a pci-e card
tibi has joined #osdev
heat has joined #osdev
srjek has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
gog is now known as pog
terminalpusher has quit [Remote host closed the connection]
DanielNechtan has joined #osdev
spikeheron has joined #osdev
mimmy_ has joined #osdev
mimmy_ has quit [Ping timeout: 260 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
[itchyjunk] has joined #osdev
SGautam has joined #osdev
wootehfoot has joined #osdev
<kaichiuchi> it is cold
<pog> hi
<kaichiuchi> pog: may i gog you
<pog> yes
* kaichiuchi gogs pog
* pog pogs
FreeFull has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
wootehfoot has joined #osdev
jimbzy has joined #osdev
ZombieChicken has joined #osdev
<Ermine> hi pog
<pog> hi Ermine
FreeFull has quit [Quit: rebooting]
FreeFull has joined #osdev
<ddevault> ta~
<Ermine> Cool. now replace it with dvd logo :D
<ddevault> hehe
<pog> bnuuy
<Ermine> pog: it's hare
Freja is now known as QuietlyConfident
<GeDaMo> Hare, there, everywhare :P
<Ermine> thare
<ddevault> now I have to write a qoi decoder so I'm /at least/ not just dumping a bunch of raw images into the initramfs
<Ermine> qoi?
<ddevault> quite ok image format
<ddevault> I have a mostly done PNG decoder but it's got a bug pending an improvement to our inflate implementation
dude12312414 has joined #osdev
<ddevault> given that I never idle I wonder if I'm going to overheat the rpi if I run it for the full length of a talk
<ddevault> should see how long it can run for
<ddevault> I probably have time to do vsync though
<ddevault> not sure if wfi will reduce power consumption enough to matter
<Ermine> Are you planning to run on powerbank?
<ddevault> I'd prefer not to, but I don't know what to expect
<ddevault> ordered by preference: (1) wall socket (2) laptop (3) power bank
<ddevault> fan seems to reduce the temperature to less alarming levels
dude12312414 has quit [Remote host closed the connection]
<Ermine> dumb question, would setting cpu/gpu/whatnot clock to lowest level possible help?
<ddevault> maybe
<ddevault> but I am not made out of optimizations
<ddevault> this video is running at full speed, no delay in the loop
<ddevault> though in practice I'm going to be showing a slide deck, so might not matter
<ddevault> can clock up when the user requests the next slide or something if it comes to that
<ddevault> if I really do have a lot of extra time I'll also port doom for a fun extra demo
<ddevault> two weeks left
mimmy_ has joined #osdev
unimplemented has joined #osdev
mimmy_ has quit [Ping timeout: 272 seconds]
spikeheron has quit [Quit: WeeChat 3.7.1]
spikeheron has joined #osdev
<immibis_> why do you have to write your own decoder instead of porting libpng?
danilogondolfo has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
ZombieChicken has quit [Remote host closed the connection]
wootehfoot has quit [Quit: Leaving]
mimmy_ has joined #osdev
ZombieChicken has joined #osdev
mimmy_ has quit [Ping timeout: 246 seconds]
* geist yawns
<geist> good afternoon folks
ZombieChicken has quit [Ping timeout: 255 seconds]
<kaichiuchi> hi
JudgeChicken has joined #osdev
JudgeChicken is now known as ZombieChicken
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
ZombieChicken has quit [Quit: WeeChat 3.7.1]
dude12312414 has joined #osdev
ZombieChicken has joined #osdev
unimplemented has quit [Ping timeout: 268 seconds]
nyah has quit [Quit: leaving]
mimmy_ has joined #osdev
* sortie writes a manual page for his dhclient(8)
fedorafan has quit [Ping timeout: 252 seconds]
<sortie> https://pub.sortix.org/sortix/release/volatile/man/man8/dhclient.8.html ← The mad ravings of someone who once heard dhclient and dhclient.conf was a thing and cooked up something using those names, like I did with ifconfig
<bslsk05> ​pub.sortix.org: dhclient(8)
fedorafan has joined #osdev
mimmy_ has quit [Ping timeout: 272 seconds]
sikkiladho has joined #osdev
torresjrjr has quit [Remote host closed the connection]
torresjrjr has joined #osdev
bauen1 has quit [Ping timeout: 246 seconds]
elastic_dog has quit [Ping timeout: 246 seconds]
elastic_dog has joined #osdev
bauen1 has joined #osdev
SGautam has quit [Quit: Connection closed for inactivity]
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
antranigv has joined #osdev
antranigv has quit [Remote host closed the connection]
mimmy_ has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
mimmy_ has quit [Ping timeout: 268 seconds]
fedorafan has joined #osdev
antranigv has joined #osdev
Left_Turn has quit [Quit: Leaving]
sikkiladho has quit [Quit: Connection closed for inactivity]