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
<mcrod> in my room, it is 34.4C
<mcrod> there's also an impending drought
<zid> I need to get a thermometer for my room
<mcrod> this is the temperature sensor on my homepod
<mcrod> i am losing it
<poggers> it's 25 in here
<poggers> too hot imo
<poggers> i'm most comfy around like 20
<mcrod> I would kill for 25
<mcrod> 20 is even better
<poggers> it would be cooler but somebody keeps closing the windows and doors and we lose the cross vent
<heat> why's it hot in iceland
<heat> isn't it supposed to melt
<poggers> it is melting
<poggers> we'rea ll doomed
<poggers> also it
<poggers> it's only like 15 outside rn
<poggers> but we have really poor airflow
<mcrod> kinda nuts how tiny iceland is
<gorgonical> it's a great vacation spot though
<mcrod> poggers on the average how much fish do you eat
<heat> it's nuts how large NA is
<poggers> too much lately
<mcrod> i'm not surprised
<poggers> my wife stopped being vegan and now we have fish like once or twice a week
<heat> NA is supersized compared to erm, everything else
<poggers> i have to beg for some tofu and veg
<poggers> honestly i was happier eating vegan
<poggers> or mostly vegan
<gorgonical> the strangest thing about iceland to me is that reykjavik is small enough that I can mention things from when I was there 6 years ago and poggers is like "yeah i know the place"
<poggers> true
<mcrod> i just don't know if i'd be okay living in iceland
<poggers> why not?
<gorgonical> no mcdonalds you know
<poggers> we have metro
<gorgonical> and that other one
<poggers> aktu taktu?
<mcrod> it's literally an island country with like fucking nothing around it
<gorgonical> yes
<mcrod> what is there to do in iceland
<gorgonical> greenland is nearby
<poggers> truth is i've never eaten at metro or aktu taktu
<mcrod> who thinks "hey let's take a family vacation to ICELAND"
<gorgonical> it's insanely beautiful
<poggers> there's a lot to do here
<poggers> i work in the tourism industry
<poggers> it's lucrative
<mcrod> like what, the GDP is like $25 billion
<gorgonical> i did the continental plate snorkeling tour and i would have paid three times as much to do it
<gorgonical> it was unbelievable
<heat> "what is there to do in iceland" is an extremely ignorant statement mate
<mcrod> it would be ignorant to say "there is nothing to do"
<mcrod> i asked
<heat> "u wot m8 its literally ice and land, surrounded by water"
<mcrod> absolutely insane to me by the way, that some billionnaires are worth more than the GDP of whole countries
<gorgonical> i mean iceland has 300,000 people on the whole island
<gorgonical> it
<gorgonical> is not big
<poggers> the island is p big actually
<gorgonical> that's true but 80% of the interior is hellscape volcanoland
<poggers> yes
<poggers> most of it is not very habitable
<gorgonical> i wonder how many deranged hermits there have been living in the interior
<gorgonical> could it actually be zero over time?
gog has joined #osdev
poggers has quit [Quit: byee]
<heat> for a moment there we had 2 gogs
<mcrod> huh, apparently they produce a shitload of aluminum
<gorgonical> and fish, don't forget the fish
<mcrod> i'd love to visit norway
<mcrod> that's been kind of a dream
<mcrod> and japan
<gorgonical> then go to iceland. iceland is very similar to norway from what i've heard but closer to america
<bslsk05> ​map.visiticeland.com: Map of Iceland
<gorgonical> the blue lagoon is also a blast even if obviously touristy. nobody pretends its authentic
<mcrod> me living in a fairly large city, you don't really see the beauty of the world
<heat> where do you live
<mcrod> about 96km away from philadelphia
<gorgonical> scranton
<mcrod> no
<mcrod> but I used to have to drive there
<gorgonical> wait do you also live in pa lol
<mcrod> ..yes
<mcrod> don't tell me
<gorgonical> i live in pittsburgh
<mcrod> where do you live
<mcrod> oh
<mcrod> yeah i'm on the opposite side
<mcrod> allentown
<gorgonical> ah
<mcrod> for a moment, I thought I was going to have to get ready to meet up with someone from IRC for the 2nd time in my life
<gorgonical> i mean i regularly visit philly for one reason or another
<heat> mcrod loses his second kidney
<morgan> can't recommend that
<gog> mcrod: i used to live in Binghamton
<mcrod> gorgonical but it's far
<morgan> meeting people from irc *or* philly
<gog> I've gone past Allentown a lot
<mcrod> what the fuckkkkkkk
<gorgonical> morgan: i only go to philly for cheesesteaks
<morgan> ok that is actually a pretty good reason
<gog> my ex had family in valley forge and baltimorr
<gorgonical> there's a place in manayunk that has a pizza cheesesteak and its a reason to live
<morgan> oh my god
<morgan> please tell me they're open late because i would imagine getting one at 2 AM baked out of your gourd is close to a religious experience
<mcrod> i'm actually impressed how close you two actually were at one point
<mcrod> gorgonical: pat's king of steaks?
<gorgonical> no, union taphouse
<zid> bwahaha
<mcrod> ah
<zid> guess who's in my kitchen
<gog> jigsaw?
<zid> correct
<gorgonical> pat's and geno's are fine tho
<gog> hahajaha
<mcrod> so am I right in assuming
<gog> they love you
<mcrod> you just drive to philadelphia for a cheese steak
<mcrod> despite it being like 4 hours
<gorgonical> 6
<mcrod> 6.
<zid> Yea apparently he doesn't like wherever he's supposed to be living anymore
<mcrod> do you drive 6 hours for a cheese steak
<gorgonical> I also occasionally go to see family and friends
<mcrod> this is truly american my friend
<gorgonical> if philly were less filthy it would be a great city
<gog> i haven't been to the blue lagoon yet
<heat> imagine being zid
<mcrod> well, I work in philadelphia
<heat> you either go to greggs or to nandos
<mcrod> market st is pretty bad..
<gorgonical> agreed
<zid> that seems like it came out of nowhere heat?
<heat> on the other hand, he doesn't live in america, so 10/10 brilliant m8
<mcrod> nothing like seeing a dude get suplexed in broad daylight over $5
<gorgonical> don't you shit on nandos now
<zid> I've never been to a nandos and greggs don't come this far south
<heat> smh
<mcrod> there is a rather incredible cheese steak place, it's legend
<zid> They're endemic to the frigid northlands
<mcrod> and it's in my area
<gorgonical> in allentown?
<mcrod> and bizzarely enough, in fucking home depot
<mcrod> yes
<gorgonical> wat lol
<mcrod> I'm not kidding
<heat> what the fuck is a cheese steak
<zid> gog: he has a collar on now :P
<bslsk05> ​www.yelp.com: RASCALS - 32 Photos & 48 Reviews - 1350 MacArthur Rd, Whitehall, Pennsylvania - Cheesesteaks - Restaurant Reviews - Phone Number - Yelp
<gorgonical> it's steak and cheese on a bread
<gorgonical> simple as m8
<mcrod> absolutely weird fucking location for that to be in
<gog> with peppers and onions
<mcrod> but oh my god, it's amazing
<gorgonical> we normally go through harrisburg but maybe we will detour next tiem
<gog> i wonder if i can get a cheese steak anywhere in rvk
<mcrod> i'd throw heat and zid off of the empire state building for a lifetime supply of those cheese steaks
<gorgonical> we went to a jewish deli in scranton once just for a laugh
<mcrod> yeah give it a shot
<heat> i don't know how to tell you this
<heat> but spain did this first, and way better
<mcrod> i don't believe you.
<gorgonical> pics or it didn't happen
<heat> "put shit in bread" is not an american invention
<heat> believe it or not
<mcrod> a true authentic philly cheesesteak however
<mcrod> if the oil isn't leaking through the bag
<mcrod> it's not a philly cheesesteak
<zid> americans don't even butter the bread
<zid> they're savages
<gorgonical> and to be ultra authentic you use the equivalent of spray cheese
<heat> would rather be forced to eat a lifetime supply of LIDL pastry than to eat an oily dubious "cheese" "steak"
<gorgonical> aldi pastries are good tho. dunno about lidl
<mcrod> the problem is americans (like i'm guessing gorgonical and myself) are biased to oily, greasy, fatty meals
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<mcrod> now, this is beginning to be a legitimate problem for me as I appear to be ballooning
<mcrod> _however_
<gorgonical> i'm from the south where the customary topping for any dish is butter and/or sugar, so i agree
<mcrod> yep
<mcrod> then I understand
<zid> ballooning for you, or for an american
<mcrod> for me
<gog> this is why i work out. so i can eat oily greasy trash
<zid> I eat whatever I want
<zid> but just.. not a kilo of it in a sitting
<gog> I will eat a kilo of pasta in one sitting
<gorgonical> I deadlifted 300lbs/~140kg yesterday so I can eat garbage
<gog> nice
<zid> how much do you mass
<gorgonical> eating trash is the main motivation for exercise
<bnchs> hi
<gorgonical> right now ~180lbs
<zid> what's that in
<zid> weight
<mcrod> I do need to exercise
<gog> pounds is weight
<heat> 3 billion pebbles zid
<gorgonical> its 180/2.2
<gog> kilos is mass
<mcrod> but I'm waiting until I move out so I can access my apartment's gym
<heat> or 1 million stones
<bnchs> i eat oily greasy trash without exercise and i'm still healthy...... kinda
<zid> like.. 72?
<zid> mathses is hard
<gorgonical> 81
<zid> 81
<heat> 81
<heat> omg!
<mcrod> my blood pressure as a 28 year old is that of a 45 year old with atherosclerosis
<zid> okay so you weigh 10kg more than me
<zid> that's nothing, unless you're tiny
<gorgonical> the deadlift? I never said I was the hulk lmao
<zid> are you tiny
<heat> i've never deadlifted anything
<heat> i should try one day
<zid> heat is tiny, he's from arabia
<gorgonical> I weightlift as a health thing and do not have the willpower to control my diet close enough to get to ~200kg range
<zid> I suppose evn if he does tell me it'll be in acorns or something
<zid> and I won't understand
<gorgonical> do you mean height?
<zid> I said "you weigh 10kg more than me, that's not much, unless you are tiny, are you tiny?"
<gorgonical> oh yes. 182cm
<zid> oh we're the same height
<gorgonical> yeah I'm just fat lol
<zid> nah I'm thin
<zid> +10kg on me is perfectly acceptable
<zid> especially if you have a bit of muscle
<gog> 5 years ago i was 55kg
<gorgonical> holy moly goggeroni
<zid> 30+ years ago I was 5kg
<gog> I'm 72 now
<heat> gog, i also blew up similarly after covid
<heat> mainly due to abuse of uber eats
<gorgonical> i learned I could have beer delivered straight to my house during quarantine
<gog> i was 65 a year ago
<gorgonical> that was a bad choice
<gog> then i started lifting
<zid> someone buy me a family pack of mars bars
<zid> so I can put on a couple of kg
<mcrod> but I have indeed resolved to eat better and exercise daily
<heat> gog, oh yeah muscle mass weighs
<morgan> i should resolve to eat and exercise
<zid> eating is a chore
<zid> I can't imagine doing chores at the gym so that you can eat more
<mcrod> do you have a feeding tube
<heat> i had a friend that stopped doing sports altogether when covid happened and she lost a ton of weight
<zid> double waste of time
<morgan> see zid u get me
<zid> "I better vacuum so that they let me do some dusting!"
<gorgonical> heat: i can understand it. when I stop working out for long enough my appetite adjusts back down and I will naturally eat less
<zid> weights are kinda fun though
<morgan> but also i am probably getting to the point where it's unhealthy
<zid> aerobic excercise can suck a dick though
<heat> gorgonical, not even eating necessarily, just the plain loss of muscle mass
<gorgonical> ah
<heat> my personal trainer told me that the muscle mass loss after a 1/2 week break for regular gym-goers is actually pretty measurable
<morgan> huh i'm the other way i can cycle all day even in my current shape but i've *never* been able to get anything done on the weights
<zid> I used to be able to cycle all day, when I was 15
<zid> I've barely moved in the past 15 yeas
<zid> I walked to a shop once a few weeks ago?
<gorgonical> heat: absolutely. you can get DOMS after basically 10 days off lifting. it sucks
kerravon has joined #osdev
<morgan> i dont drive so i've at least gotta be able to do *some* cardio
<zid> why, will you need to escape the zombie hoards
<zid> hordes
<zid> I'll just let them eat me, saves me having to run
<morgan> no but i do from time to time need to go to the grocery store or the cafe
<heat> gorgonical, call me crazy but i actually really like getting sore
<zid> I like the sore day afterwards
<mcrod> that's the bdsm in you
<heat> sore = good progress, generally. ofc you don't need to be sore for progress
<zid> when I do things like move, the day before
<zid> just a subtle "Oh yea I moved a lot yesterday" sore
<zid> not like, "I cannot move my limbs sore"
<heat> leg day is one of my favs as you just start walking funny for the next couple of hours
<mcrod> the thing is, my brain does not work great when I don't exercise
<zid> I'd go to the gym if I had a friend to go with, but I'd never willing go basically *anywhere* alone
<mcrod> everything feels slow, miserable, etc.
<zid> My favourite is going choring with one of my friends
<gorgonical> mcrod: "lift heavy stone. make sad head voice quiet"
<heat> haha
<zid> we go to a couple of hardware stores to buy screws and a welding mask or whatever
<mcrod> i didn't know you had friends
<mcrod> i thought we were your only friends
<zid> I have friend
<zid> more realistically
<mcrod> well
<heat> onlyfriends.com
<mcrod> quality over quantity
<zid> onlyfriend.com*
<mcrod> gorgonical indeed
<mcrod> but yes, being more active == more dopamine
<heat> if u need to exercise, and if you feel like ass if you don't, then exercise
<heat> i have solved your life's problems, give me money
<gog> today was pretty intense i can already feel that I'm gonna gonna be sore in the morning
<mcrod> no give me money
<zid> give me mars bars
<zid> and 100kg of weighs
<zid> and I will get so boof
<heat> gog how much do you leg press
<gog> i did bench press and squats before the trainer got there and he's like ok more bench and squat
<gog> idk like 100kg
<zid> if you can leg press 100kg shouldn't you be able to deadlift 100kg
<heat> ok ill beat that Soon(tm)
<zid> I am apparently, deceptively strong
<gog> my lower back isn't v strong which limits my deadlift
<gog> I'm working on that tho
<zid> I look like mackenzie crook
<gorgonical> leg press is like in space
<gog> I can't keep the right posture for that heavy
<gorgonical> barbell squat is the better proxy for dl strength
<gog> yes
<gorgonical> I can leg press over 200kg because of the mechanical advantage on almost all the machines in my gym
<zid> I'll convert it to portuguese
<zid> heat: I look like peter crouch
<heat> holy shit
<heat> you look fucking great!
<heat> peter crouch is the lankiest man ever
<mcrod> unrelated
<heat> he made a whole career out of that
<zid> my BMI is like.. 17?
<mcrod> but I wonder how a AAA game's codebase looks
<mcrod> I really do
<zid> They all use ENGINES these days, mcrod
<heat> tf2 source code leak moment
<mcrod> yeah yeah yeah I know they all use prebuilt engines
<zid> so it looks like unity's source tree, to a 99% approximation
<mcrod> CRYENGINE is open source on github
<heat> gorgonical, wait when you say "i can leg press X", what exactly do you mean?
<mcrod> and CRYENGINE looks pretty neat
<heat> like a single rep max, or multiple reps, or multiple sets, or?
<zid> heat: How many days a week do I lift if I lift every other day though?
<heat> haha
kerravon has quit [Quit: Client closed]
Turn_Left has quit [Read error: Connection reset by peer]
<mcrod> i dunno, i just find games fascinating on an architectural level
<gorgonical> heat: so the machine accepts plates of 20kg each
<gorgonical> and basically i can do 3 sets of 5 reps on the machine with 200kg plates
<mcrod> UMK for PS1 looks almost like an operating system
<zid> I never played umk, the box art looked interesting though
<heat> gorgonical, ah okay. i usually do 4 sets of 10
<zid> or am I thinking of a diff 3 letter game
<heat> so saying "I can do X kg on this" can actually mean different things to different people
<zid> someone ask chatgpt for me
<zid> ah, MDK
kerravon has joined #osdev
Matt|home has quit [Quit: Leaving]
HardWall has quit [Server closed connection]
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<mcrod> note: building a custom gcc on windows might as well be asking you to ask a river not to run
goliath has quit [Quit: SIGSEGV]
<gorgonical> all this fucking time guys
<gorgonical> it was just because of the logical-physical cpuid disconnect
<gorgonical> __gicr_write32(this_cpu, ...)
kerravon has quit [Ping timeout: 246 seconds]
edr has quit [Quit: Leaving]
xenos1984 has quit [Read error: Connection reset by peer]
kerravon has joined #osdev
<kerravon> custom gcc to do what?
xenos1984 has joined #osdev
heat_ has quit [Ping timeout: 258 seconds]
valshaped74 has joined #osdev
kerravon has quit [Quit: Client closed]
valshaped7 has quit [Ping timeout: 240 seconds]
valshaped74 is now known as valshaped7
kerravon has joined #osdev
<bslsk05> ​github.com: Provide access to environment variables in build files · Issue #9 · mesonbuild/meson · GitHub
<dh`> seems like a reason not to use meson
<bslsk05> ​github.com: Provide access to environment variables in build files · Issue #9 · mesonbuild/meson · GitHub
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
[itchyjunk] has quit [Read error: Connection reset by peer]
kerravon has quit [Quit: Client closed]
hmmmm has quit [Remote host closed the connection]
hmmmm has joined #osdev
kerravon has joined #osdev
gbowne1 has quit [Remote host closed the connection]
valshaped7 has quit [Read error: Connection reset by peer]
valshaped7 has joined #osdev
kanzure has quit [Server closed connection]
kanzure has joined #osdev
kerravon has quit [Quit: Client closed]
mrvn has joined #osdev
kerravon has joined #osdev
kerravon has quit [Quit: Client closed]
osmten has joined #osdev
slidercrank has joined #osdev
osmten24 has joined #osdev
osmten has quit [Ping timeout: 246 seconds]
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
bgs has joined #osdev
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
kerravon has joined #osdev
zxrom has joined #osdev
zxrom_ has quit [Ping timeout: 258 seconds]
danilogondolfo has joined #osdev
kerravon has quit [Quit: Client closed]
lanodan has quit [Server closed connection]
lanodan has joined #osdev
AndrewYu is now known as Andrew
GeDaMo has joined #osdev
nyah has joined #osdev
acidx has quit [Server closed connection]
acidx has joined #osdev
kerravon has joined #osdev
gog has quit [Ping timeout: 265 seconds]
Left_Turn has joined #osdev
gog has joined #osdev
<gog> mow
<gog> PoP
<gog> purr on pat
<FireFly> cute
<moon-child> :3
<gog> COLON THREEE
<sham1> Can I pet
<gog> yes
LostFrog has quit [Read error: Connection reset by peer]
* sham1 pets gog
PapaFrog has joined #osdev
* gog prr
DynamiteDan has quit [Excess Flood]
DynamiteDan has joined #osdev
<gog> idk who made the default jsx formatter for visual studio but i hate them and i hope they have a bad day
DynamiteDan has quit [Excess Flood]
DynamiteDan has joined #osdev
kerravon has quit [Ping timeout: 246 seconds]
<Ermine> gog: may I pet you
<gog> yes
* Ermine pets gog
* gog prr+
<gog> prr++
<Ermine> prr#
<gog> auto nyaa = new prr::meow<cat_noises_t>();
<gog> var nyaa = new Prr.Meow<CatNoises>();
<zid> nyaa.si = 4;
<gog> struct colon_three {nyaa : 3};
<gog> fuck, char nyaa
<sham1> 🐈
* mjg gives himself a blanket to pet gog
<mjg> however, as not a cat person i'm not gonna use it
<zid> what about a scratching post
* mjg flips a coin
<mjg> no
<zid> Magic 8-ball, is faputa best girl?
<bslsk05> ​i.imgur.com <no title>
<mjg> 'm trying to not be judgmnetal but are you arem aking it difficult
XgF has quit [Server closed connection]
XgF has joined #osdev
antranigv has joined #osdev
elastic_dog has quit [Ping timeout: 248 seconds]
elastic_dog has joined #osdev
kerravon has joined #osdev
<nikolar> Kek
SGautam has joined #osdev
zxrom_ has joined #osdev
zxrom has quit [Ping timeout: 240 seconds]
vdamewood has quit [Remote host closed the connection]
vdamewood has joined #osdev
goliath has joined #osdev
osmten24 has quit [Quit: Client closed]
<gog> lel
<bnchs> hi gog
<gog> hi bnchs
<bnchs> pet
<gog> prr
ppmathis has quit [Server closed connection]
ppmathis has joined #osdev
<zid> argh, irl cat scared me
<zid> walked to the bottom of the garden to see what cats were up to, peered over the little fence next to the shed and found the fat one asleep in the shrubbery
<zid> immediately assaulted by 200dB meow, other cat was on top of the fence, screaming into my ear from an inch away, hadn't noticed her
<gog> hahaha
<zid> She then proceeded to try and bite and scratch me, while asking for pets simultaneously
kerravon has quit [Quit: Client closed]
Matt|home has joined #osdev
<sham1> Cute cat
gmacd has joined #osdev
<zid> Thanks, I am a great artist.
<sham1> Yes
<sham1> Also the photo
<zid> No that's an oil painting I did
<gog> that's normal cat behavior
<gog> screaming, begging for pets while also wanting to bite and scratch
<gog> it's the internal conflict of wanting affection and violence
<zid> She's a masochist
<zid> nobody's having fun unless there's blood
<gog> sadist
<zid> right
<zid> I am dum
<zid> She's a sadist and thinks I am a masochist
q3lont has joined #osdev
<sham1> She just wants to play :3
<zid> bite*
<sham1> How do you think cats play
<zid> other cat has never bitten anything
<zid> she just removes your headphones with headbutts
gmacd has quit [Ping timeout: 258 seconds]
<Matt|home> zid - can i see kitty :<
<bslsk05> ​libera.irclog.whitequark.org: #osdev on 2023-06-16 — irc logs at libera.irclog.whitequark.org
<Matt|home> hi kitty :D
<bnchs> hi
<zid> She'd say something back, but her mouth is too full of flseh
q3lont has quit [Quit: Leaving]
gmacd has joined #osdev
benlyn has joined #osdev
gmacd has quit [Ping timeout: 258 seconds]
gmacd has joined #osdev
heat_ has joined #osdev
<mjg> ey heat how you doing
<bslsk05> ​www.thelayoff.com: Remember What The EEOC Said... - post regarding IBM layoffs
<mjg> > Evidence uncovered older employees who were laid off and told that their skills were out of date, only to be brought back as contract workers, at a lower rate of pay with fewer benefits.
alexander has quit [Server closed connection]
alexander has joined #osdev
<heat_> hi
<gog> hi
<heat_> dh`, meson still supports your typical vars (CC, CFLAGS, etc) anyway, so i don't see the big deal
[itchyjunk] has joined #osdev
gmacd has quit [Ping timeout: 252 seconds]
gmacd has joined #osdev
gmacd has quit [Ping timeout: 252 seconds]
gmacd has joined #osdev
gmacd has quit [Ping timeout: 258 seconds]
colona_ has quit [Server closed connection]
colona has joined #osdev
CalculusCats has quit [Server closed connection]
CalculusCats has joined #osdev
dude12312414 has joined #osdev
<heat_> mjg, i've been thinking about quickly stealing concurrencykit's epochs and seeing how well they roll in onyx
gmacd has joined #osdev
<heat_> are your read side sections nopreempt? i think it makes sense to make them nopreempt, even without the quiescent states
<mjg> they are very much preemptible
<heat_> if you block in the middle of an RCU read section you're going to needlessly delay freeing forever though?
<mjg> this is what you get for tackling something like this on top of an existing codebase
<mjg> it's not forever
<mjg> there is forward progress guarantee
<heat_> well yeah, it's until you get out of the read section
<heat_> you can get preempted, block on some shit, etc, which will probably start screwing you over
<mjg> since you are doing a new thing here
<mjg> and are not dealing with galactic tech debt
gmacd has quit [Ping timeout: 240 seconds]
<mjg> you should defo do nopreempt
<mjg> why is your kernel preemptible anyway
<mjg> you do realize adding these sections partially defeats the point of having a preemptible kernle
<heat_> cuz preemptible is better than not preemptible
<mjg> at what
<mjg> there are cases where it is, but is onyx pretending to cater to them
<mjg> you do realize your desktop is not running a preemptible kernel
<heat_> onyx is pretending to cater to a decently modern kernel, and decently modern kernels are preemptible
<mjg> linxu by default is not
<mjg> CONFIG_PREEMPT_VOLUNTARY=y as in you have to cond_resched like in good old unix
<heat_> my desktop is preemptible
<mjg> grep PREEMPT /boot/conf*
<heat_> PREEMPT_DYNAMIC even, cuz funkay static keys
<mjg> is that the default from your distro?
<heat_> yep
<mjg> was it arch?
<heat_> yep
<mjg> faken weird, is all i'm saying
<mjg> lemme check debian real quick
<heat_> my rpi alpine linux is also CONFIG_PREEMPT=y
<mjg> wai
<mjg> dynamic is just support to flip it at runtime
<mjg> so what's your actual setting
<heat_> it defaults to full
<mjg> interestin'
gmacd has joined #osdev
<heat_> debian also does PREEMPT_DYNAMIC
<heat_> it'd be interesting to know if server configs still roll with PREEMPT=n
zxrom_ has quit [Ping timeout: 258 seconds]
gmacd has quit [Ping timeout: 258 seconds]
<mjg> according to a debian user:
<mjg> CONFIG_PREEMPT_VOLUNTARY=y
<mjg> CONFIG_PREEMPTION=y
<mjg> CONFIG_PREEMPT_DYNAMIC=y
<mjg> so they default to *not* full preemption
<mjg> as in the usual
<heat_> that makes 0 sense but i guess that's par for the course in debian
<mjg> why 0 sense
<heat_> because a desktop is really where you want full preemption
<mjg> i don't know if that really works
<mjg> as in helps
<mjg> but i/m not a desktopdev :X
<heat_> it surely better than random cond_resched points all across the kernel
<mjg> it very easily can be worse
<heat_> you do not need any extra throughput on a desktop, you need better latency
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
<mjg> if you preempted someone who hold as lock you need
<mjg> you are now *increasing* latency to get htings done
<mjg> becaues you are taking an extra on/off cpu trip
<heat_> its partially why locks in linux default to spinlock-like :)
<mjg> i gunuinely wonder if in preemption helps desktops in a very multicore settings
<heat_> heck, in -rt your spinlocks don't even disable preemption
<mjg> i'm not going to hazard a gueezer guess tho
<heat_> you should definitely try and ask for a https://cfarm.tetaneutral.net/ account
<bslsk05> ​cfarm.tetaneutral.net: The GCC Farm Project
<heat_> a lot of different fucked up hardware you could try out
<mjg> i don't see what for
<mjg> OpenBSD mips64 machine: gcc231
<mjg> i take that back
<heat_> did you skip the solaris instances :v
<mjg> just eye-grepping
<mjg> On the bright side of things, the new hardware is much larger, with 12 cores / 24 threads and 384 GB of RAM.
<mjg> Many thanks to openbsd.amsterdam for providing the hardware and hosting it!
<mjg> motherfucker
<mjg> you are losing on performance for having more than 4
<mjg> :d
gmacd has joined #osdev
<mjg> hue machiens with aix
<mjg> 10 cores 80 threads
<mjg> would totally run will it scale on it
<mjg> ;x
<mjg> however, i'm guessing no perms to profile any of it
<heat_> no perms?
<heat_> oh, root? yeah maybe not, i dont know
<heat_> don't you want the 32 c 256 t sparc64 :v
gmacd has quit [Ping timeout: 246 seconds]
<mjg> if only slowaris could use it
kpel has joined #osdev
<heat_> >The *pte* is an array of `PTRS_PER_PTE` elements of the `pteval_t` type
<heat_> cheers mate, linux is borked
<heat_> i guess freebsd was superior all along
zxrom_ has joined #osdev
<gog> hi
<gog> i'm tired
<sakasama> I'm beyond tired.
<sakasama> It's like beyond meat (tm), but even less edible.
<gog> this thing is now feature complete but i have an unholy blend of stuff in the js
<gog> it's super sketch and i don't really know how to make it better without having to scope creep
<gog> i'll iron out the quirks and then review it
<gog> see what the others think i should do
<gog> the whole thing is a bit fucked tbh, the original author of all of this really loved jquery
<gog> and through various changes it's become a bit of an unwieldly mess but that's javascript for ya
<gog> #webdev
<gog> everybody in the office has bailed except me
<zid> too hot
<zid> go to air conditioned pub
<gog> i was at a pub earlier, i had a pint and a bacon egg cheese
<gog> but that was only for my lunch break
<zid> a pint of eggand bacon? nice
<gog> yes
<gog> i did a lot of work this week and am so close to finished with this thing but it needs so much cleanup
<sakasama> A pint of that sounds like a lot of cholesterol.
<gog> i replaced a lot of stuff but haven't bothered to find exactly what i can delete now
<zid> cholesterol is a vital part of building a lot of important things
<zid> biosynthesising it is for chumps, eat it
<sakasama> gog: There are code coverage tools for javascript that can help there.
<zid> nothing wrong with eating a lot of colesterol
kpel has quit [Quit: .]
<sakasama> Humans usually have plenty of cholesterol but are pretty bad at keeping it from gluing itself to the inside of their veins.
<zid> (it's the saturated fats that tend to be along side it in westernfood that's an actual problem)
<sakasama> afaik, that's not really the case, but I haven't bothered reading about this in years.
<zid> " In 2019, the UK Scientific Advisory Committee on Nutrition concluded that higher saturated fat consumption is associated with raised blood cholesterol and increased risk of heart disease"
<zid> basically every body says roughly this, it seems
<sakasama> Yes, but what is the effect of a diet high in cholesterol but low in saturated fat?
Amanieu has quit [Server closed connection]
slidercrank has joined #osdev
Amanieu has joined #osdev
<zid> seems much more fun, given what we know of eskimo cultures etc
<zid> s/fun/fine
<zid> but it may be offset by the fish oil
<bslsk05> ​www.bmj.com: High cholesterol diet is not linked to increased heart risk, study shows | The BMJ
<zid> can find some small studies like this
<zid> it seems mainly to just be a "you have too much food in your blood, you fat bastard, it's started to congeal on the walls" issue
<zid> more than a diet issue
<zid> "Your mamma so fat, eggs crash out of solution in her blood"
<mrvn> "Your mamma so fat, when she takes a bath there is a tsunami in Hawaii."
<bnchs> zid: how much do doctors hate fat people
<bnchs> like everywhere i've seen, there's doctors that'll dismiss everything as apart of your weight
<sakasama> It needs better studies, at a glance, but then so does the saturated fat issue: they often fail to provide correlation for associated lifestyle factors and obesity.
<bnchs> "oh broken bone? i did a diagnosis, YOU'RE TOO FAT"
<sham1> To be fair, being obese has several comorbidities
<sakasama> I can understand why a doctor wouldn't want to bother with people that don't make a reasonable effort to maintain their own health.
<bnchs> to dismiss health problems that aren't related to obesity, is dangerous
<sakasama> It's kind of like the reaction from psychiatrists when I tell them that I'm basically a shut-in.
<sakasama> It's not surprising that they attribute my problems to that, since they don't know the whole story and most of the time that's likely a sufficient explanation.
<zid> basically, "eggs give you cholesterol" problems is just.. false, barring specific circumstances, is what I was trying to get across
xenos1984 has quit [Ping timeout: 258 seconds]
<bnchs> sakasama: honestly at this point
<zid> It's a little bit of a pet peeve of me, people who are on specific diets for whatever reason thinking various foods are EVIL and nobody should eat them
<bnchs> just tell psychiatrists your problems
<bnchs> without telling them you're a shut-in
xenos1984 has joined #osdev
<bnchs> or else they'll have bias
<heat_> gog, grog are you a webshitter
<bnchs> doctors have a shit ton of bias
<heat_> as mjg would likely put it
<bnchs> which sucks
<sakasama> bnchs: That's even more difficult, because then they have no reason to believe that I actually have problems... which is sort of necessary for them to prescribe medications.
<heat_> a psychiatrist that tells you "oh ur a shut-in lol why dont u jus stop" is a shit one
<bnchs> lol
<bnchs> sakasama: if they don't beleive you, change psychatrists
<bnchs> why are you giving them too much info that contributes to their bias
<bnchs> and ruins your chances
<sakasama> heat_: They don't do that, but the disappointment is rather easy to read.
<sakasama> bnchs: My chances at what? I just want the simplest possible experience with a psychiatrist that results in them giving me the odd combination of drugs they wouldn't prescribe otherwise.
<bnchs> you gotta play them
<bnchs> play their dumb game
<heat_> what dumb game
<bnchs> don't tell them much other than your problems
<heat_> wtf
<heat_> no, get a better psychiatrist
<bnchs> ^
<bnchs> that's a better choice
<bnchs> but really, i used.. i mean i STILL do
<bnchs> lie to my psychiatrists
<bnchs> to get what i wanted
<bnchs> play them, as i say
<sakasama> It's annoying enough to find a decent psychiatrist as is.
<heat_> ...
<heat_> fucking what
<gog> heat_: i'm a webshitter
<bnchs> heat_: you heard me
<sakasama> Tragic.
<bnchs> i don't fucking like psychatrists when i have to go through them
<heat_> anyway sakasama if you don't find at ease with your medical professionals you should either tell them or switch doctors
<bnchs> ^
<bnchs> that's good advice
<sakasama> heat_: There's no way for me to feel at ease with them because I don't feel at ease with anyone. I just tell them what I need to so they'll take the actions I ask for.
<bnchs> but honestly, having to go through them to get prescriptions, i relate to
<bnchs> it's tiring
<bnchs> i essentially have to become an actor
<sakasama> I don't act. My last psychiatrist wrote that I'm "minimally cooperative".
<bnchs> if i manage to trick them, that's nice
<bnchs> if i didn't, well i guess good luck next time
<sakasama> What's the point in tricking them? Are you trying to get medications for someone else?
<bnchs> no
<gog> i really miss the first clinic i went to. i had a therapist and the psychiatrist was more about "how did this help, not help, here are some recommendations, also we need updated blood work"
<gog> he was only concerned with trying meds and seeing what stuck
<mjg> that's in the us?
<gog> yeah
<gog> my second clinic was less fun
<mjg> some % have fake diplomas, i don't know how many
<mjg> like literally bought from diploma mills and no real qualifications
<gog> yeah
<bnchs> sakasama: last time i did it, i was trying to claim mental disability because i don't know arabic (this is my country lol)
<bnchs> for a school :P
<heat_> what
<bnchs> again, you heard me
<sakasama> bnchs: Uhh... you'll have to excuse me, I'm still trying to learn how to speak with cats.
<heat_> i'm afraid i did
<sham1> heat_: you know how to speak with cats?
<heat_> yeah kinda
<heat_> do you know how the cat goes?
<bnchs> heat_: i don't know arabic, and this would be a detriment to my education (arabic is highly prioritized here)
<bnchs> like i am good at everything except the language
<bnchs> and our education system does not have a right to translation
<bnchs> so i had to claim mental disability and lie to a psychiatrist
<bnchs> just for a bit
<heat_> that's really unethical at best
<zid> heat tell me how to search a list of zips for a string
<zid> zipgrep exists but it doesn't work
<heat_> heat who?
<zid> you heat
<bnchs> heat_: well i don't care
<heat_> im heat underscore
<zid> You heat
<bnchs> why would it be unethical?
<heat_> zid, sorry i don't know :(
<zid> if you tell it to print filenames you get the filename of the file in the zip
<zid> which is useless because they're all the same
<bnchs> if a education system does not provide translation
<bnchs> then it's only fair to game the system
<heat_> what
<bnchs> you heard me
<zid> find . -name "*.zip" | xargs zipgrep meow
<zid> chapter01.txt: meow
<zid> chapter01.txt: meow
<bnchs> am i like saying this shit quietly
<sham1> Yes
<sakasama> zid: Use a loop then and print the filename if zipgrep matches.
<zid> yes, I was asking heat to tell me how
<zid> he's a bash expert
<heat_> zid, oh hmmm, you do something like find . -name "*.zip" -exec 'zipgrep {} && echo {}'
<heat_> or some garbage like that
<zid> let's try
<bnchs> i mean i know it sounds horrible
<heat_> probably missing the \;
<bnchs> but i wouldn't be able to progress anyway
<bnchs> if i didn't do this
<heat_> i never get the -exec syntax correct the first time around
<zid> missing argument to -exec
<zid> it doesn't seem to like two {}
<heat_> no, it's missing the \; t at the end
<GeDaMo> Try escaping \{\}
<sham1> zid: for file in find . -type "*.zip"; do printf "%s:\n" "$file"; zipgrep meow "$file"
<zid> ah yes it does, \; outside the '
<heat_> find . -name "*.zip" -exec 'zipgrep {} && echo {}' \; works better
<sakasama> bnchs: So the school refused to grant accommodations unless you were diagnosed with a disability?
<sham1> ; done
<bnchs> yes
<bnchs> or at least that's how the education system was designed
<heat_> still missing some sh invocation there cuz it tries to invoke everything at once
danilogondolfo has quit [Quit: Leaving]
<zid> the bash script that zipgrep is hates this
<zid> zipinfo: cannot find or open find, find.zip or find.ZIP.
<zid> .:
<zid> zipinfo: cannot find or open ., ..zip or ..ZIP.
<bnchs> sakasama: it sucks
<zid> /c/Program Files/Git/usr/bin/zipgrep: line 97: test: -eq: unary operator expected
<zid> /c/Program Files/Git/usr/bin/zipgrep: line 100: test: : integer expression expected
<sakasama> bnchs: That is the nature of reality.
<zid> any idea sham1?
<heat_> find . -name "*.zip" -exec zipgrep pattern {} \; -and -exec echo {} \;
<heat_> this should work
<zid> ooh -and
<zid> til -and
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<heat_> the quotes i was using there were also fucking things up
<zid> and per se and
<sham1> The man-pages are your friend
<zid> WE FIXED IT SHAM
<sham1> Good
<heat_> sham you're a sham
<heat_> smh
<heat_> shm*
<zid> He's so sham he's a poo
<sham1> Good job coming up with something original for once
<heat_> damn :(
<zid> It appears to be working
<zid> volume of the light novel series '86' contains the word nanomachines
gog has quit [Quit: Konversation terminated!]
<heat_> just kidding sham i love you and you're appreciated
<zid> This grep is going very fast, I am up to 'A' so far
<sham1> Out how how muxh
<zid> ..Z?
<heat_> this is a zip moment
<sakasama> zip > zid
<mjg> n in heat stands for nice guy
heat_ is now known as neat
<neat> hello
<neat> who tf registered this nick
neat is now known as heat
<mjg> loller
<mjg> h in neat stands for humble
<heat> the h in heat stands for heat, the e in heat stands for hEat, the a in heat stands for apple, the t in heat stands for high-T-alpha-male
<mjg> that's some stallman shit right there
<bslsk05> ​'Family Guy - Robert Loggia at the Airport' by Family Guy Funny Moments (00:00:59)
<heat> what? there was no casual misogyny in my message
<heat> and what's stallman without a good old boys' club
xenos1984 has quit [Ping timeout: 258 seconds]
<sakasama> We are skeptical of claims that this behaviour is harmful.
<mjg> i mean gnu]s not unix
<heat> GeDaMo, easily one of the worst sequences in family guy
<mjg> i tried watching an actual episode of fg
<mjg> fucking cutaways every few seconds
<mjg> unwatchable
<heat> old family guy is nice
<heat> it was like a more offensive simpsons
<sham1> h in heat stands for heat. God damn it, why must it be a recursive name
xenos1984 has joined #osdev
<heat> the he in heat stands for HeHe and is a reference to the late popular pop singer Michael Jackson
<GeDaMo> Are you made of helium? :|
<mrvn> .oO(Stackoverflow classic): How do you count the number of open FDs in python3? "lsof -c apache2 | awk '{print $2}' | sort | uniq -c"
<mrvn> sham1: recursive stands for "Recursive Entity Construction Using Radically Symetrical Invasive Variable Extratemporization"
<zid> heat stands for "heat eat all tarts"
<zid> To which you might respond, ah yes, but what does the heat stand for
<zid> HEAT EATS ALL TARTS!!
<mrvn> How would you check how many open FDs a process has under linux (as the process itself)?
<zid> It's like a modern take on the cookie monster
<mrvn> COOKIES
<sakasama> I'm all out of cookies now. :(
lsdeesm has joined #osdev
<lsdeesm> Tried limine bare bones, after loading os - limine: This CPU does not support 64-bit mode. Is there anything I can do with it?
<geist> someone mentioned sparc64?
<mrvn> lsdeesm: get a CPU manufactured in this millenium
<lsdeesm> Are there any bare bones that support graphics? :D
<zid> alert, geist has breeched quarantine
<geist> kinda wish i kept my old sparcv9 box
<geist> but not enough to go get another one from ebay
<lsdeesm> Are there any bare bones that support graphics? like tutorials or :D
<geist> there are plenty of articles about doing bare metal graphics
<geist> as far as a already done tutorial that does it all for you? not that i know of
<mrvn> lsdeesm: ask grub or uefi to give you a framebuffer and the rest is trivial.
<geist> also sounds like they're working with a 32bit machine? what is the specs on this machine you're trying to boot?
<lsdeesm> help me my brain will explode bux bux
qxz2 has quit [Server closed connection]
<geist> well, perhaps start a little lower
<geist> get something booting first, then start to figure out graphics later
<geist> but my question still stands, what's the specs on this machine you're trying to boot on?
gog has joined #osdev
<zid> lucius is here again
<zid> having fun stealing old cat food
<geist> lucius of borg
<zid> lucius of jigsaw
<zid> My grep is up to C at least
<zid> I'd be intersted to know where the heck it's spending all of its time
<lsdeesm> giest: specs for my machine? i5 8400f :D
<zid> geist: More likely is just that he installed qemu from a repo and got qemu-i386
<geist> lsdeesm: so how is it detecting 32bit?
<lsdeesm> Okay, just remmeber that i was runing that trough qemu i386 :DDDDDD
<lsdeesm> D:DDDD;D:DDD
<geist> okay, so you understand that yoyu need to run it through qemu x86-64
<lsdeesm> Yes :D
<geist> great, now redo_from_start
<lsdeesm> Okay, now that makes more sense than ever :D
<gorgonical> it's a good idea to take geist's advice as worth its weight in gold, by the way
<geist> it's also kinda a test to be honest, someone comes in and has a problem, so i ask a few questions to see if they're paying attention
<heat> mjg, it turns out your epochs are indeed not sleepable by default
<geist> if not, it's not worth my time
<heat> you baited me
<gorgonical> and sometimes that person just sticks around forever, like in my case lol
<geist> which is super great!
<geist> our motley crüe gets bigger
<heat> <evil_geist> L E A V E I M M E D I A T E L Y
<geist> oh what was that stay something.... stay forever quote from?
<mjg> heat: that net epoch thing, which is the only consumer, allows preemption
<heat> lol what
<mjg> what
<heat> why is it the only consumer
<heat> is smr that good
<mjg> no
<mjg> smr is not good
<mjg> neither is epoch
<heat> wjat
<mjg> there were massive problems in ze network stack, so it got hacked up real quick(tm) with epoch
<mjg> and it needed sections to allow preemption, so they do
<mjg> smr showed up later with different tradeoffs and neither is a godsend
<gorgonical> does anyone know if uboot at the commandline is continually redrawing the screen? I'm doing a multicore thing and I should be seeing ticks but once the main core gets to the uboot commandline I don't see them anymore
<mjg> i'm pretty sure i alerady wrote about it
<gorgonical> And I don't know if thats because of gic reconfiguration or serial port contention
<heat> well neither is a godsent but neither is RCU
<heat> all of them are Usually(tm) miles better than the alternatives
<heat> but you literally just said they are bad
<mjg> i woudl be delighted to rant about it but i have to go afk soon
<mjg> key 2 remarks: 1. massive enter/exit cost 2. lack of numa-awareness
<mjg> amongst other problems
<heat> like if you have to write frequently, RCU in general sucks
MrBonkers has quit [Server closed connection]
<mjg> nobody came up with a silver bullet afaics
MrBonkers has joined #osdev
<heat> why the cost? atomic barrier?
<mjg> yea
<mjg> see _epoch_enter_preempt
<mjg> also note the word preempt :X
<geist> gorgonical: possible. it's my understanding that uboot is a) totally single threaded and b) i dont think it uses interrupts necessarily at all, unless it's a machine specific thing
<geist> so may be once you get to the command line the cpu is just sitting there waiting on a character
<gorgonical> but this should be a different cpu
<mjg> heat: i'm afking now
<mjg> heat: i already fucking told you multiple times to not believe any hype
<geist> like, some unofficial 'use the second core' or there's some sort of new smp uboot thing?
<geist> or AMP
<heat> mjg, ok we'll flame about RCU later
<gorgonical> no this is me mucking around with trustzone
<geist> ah
<gorgonical> I have my kernel booting on core 1 and staying resident, then booting uboot on core 0 from arm tf-a
<geist> so what do you mean by ticks? timer ticks?
<gorgonical> yeah I have timer ticks in my kernel if I never let the firmware boot up uboot, but just spin. so something is happening to misconfigure the timer for my core (how?) or the serial port is contested and I just don't see them
<gorgonical> It's odd because I have qemu -trace gic and i don't see any interesting output
<geist> aaah. i see. hmm, well seems like uboot on core 0 shouldn't have anything to do with timers on core 1
<geist> but even then the parts of the gic that have to do with the PPIs should be processor banked, right?
<gorgonical> I thought so. It looks like maybe my kernel core is just waaaaay busy with something. Freeing bootmem is taking a lot longer than it should, too
<geist> i always forget precisely which parts are banked and which aren't
<gorgonical> agreed, they should be
<geist> yeah i kinda suspect observation error here
<geist> unless uboot really is doing something like slamming the gic back to scratch. maybe there's a master reset bit (i dont remember that though)
<heat> oh that's... entirely possible?
<heat> why would it not reinitialize the gic?
<geist> also keep in mind the -trace stuff is only as good as someone bothered to put a TRACE statement in qemu. sometimes it's very good for various drivers, or really mismatch
<gorgonical> hmm
<heat> yeah but for the GIC it's actually pretty good
<geist> also why it's handy to have a qemu tree so you can just add your own traces and rebuild
<heat> for the PLIC it's kind of wack and I still need to send my local PLIC trace changes
<geist> what would be fantastic, for example, is a trace at the raw irq *input* to the gic
<geist> like if any of the raw irqs changed, pre-masking
<geist> and actually there may be a trace for that, but it might be outside of the gic driver in qemu, might be more generic like -trace irq or whatnot
<geist> side note re: timers and riscv and interrupt controllers. this is one of those nifty things i really dig about riscv: timers and IPIs dont go through the PLIC at all, they're at even footing with the PLIC itself
<geist> really nice actually, you can have a full SMP jernel with working timers and IPIs without even starting to write an interrupt controller driver
<heat> yeah i did that
gmacd has joined #osdev
<heat> what if i licensed my implementation of RCU under LGPL and just went wild on QSBR
<Ermine> QSBR = ?
<heat> quiescent state based reclamation
<heat> aka linux RCU
<heat> an ez way to avoid any legal issues anywhere is to just license that code under LGPL or GPL
<heat> (GPL would need a project-wide switch though)
heat has quit [Remote host closed the connection]
heat has joined #osdev
<vin> I have yet another virtual address space question: Can I expect a single mmap call to create one anonymous region? Because this the starting and the ending address I get when printed from application 0x7f0cdfd8d000-0x7f325fd8d000 (150GB) when I see the corresponding region, identified using 'size' in smaps I see the range to be 0x7ed99e5d7 to 0x7eff1e62b. Which is not what I was expecting!
<vin> I was in fact expecting the starting address of the mmap region in smaps to be lower or equal to the address reported by the program, not higher!!
<heat> what
<heat> it's not even in the same ballpark
<heat> you must be doing something wrong
<vin> Exactly!!
<heat> believe it or not, 0x7eff1e62b - 0x7ed99e5d7 is not 150GB
<heat> and none of those addresses are page aligned
<heat> can you please rephrase your question? also show me the maps for the process
<vin> Question: Should one expect one entry in /proc/pid/smap per mmap call?
<heat> not quite
<heat> so, erm, what happens is that linux has vma (vm area, effectively a line on the /proc/pid/maps) merging code that checks if it can merge
<heat> i.e if you do an anonymous mapping at address X, and then map X + PAGE_SIZE with an anonymous mapping, linux will merge those two
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<heat> the same thing also happens with file mappings. I don't know exactly what the semantics for shared Anon are, though
<bslsk05> ​elixir.bootlin.com: mmap.c - mm/mmap.c - Linux source code (v5.17) - Bootlin
<heat> yes
<heat> the logic is more or less "are they both Anon? do their flags more or less match? do protections match?" and if so, they're merged
<mrvn> It also will varry from kernel to kernel. And probably depend on huge page support as well.
<heat> for files it's more like "are they both pointing at the same file? flags more or less match? offsets "match"? protections match?"
<mrvn> vin: why do you even care? How many VM objects the kernel creates for your memory region is none of your business.
<mrvn> thirdly: Is what the proc filesystem prints even representing the underlying VM objects?
<mrvn> In my kernel every 4k page being mapped is one page table entry. But when printing a mapping contiguous addresses are merged.
<vin> mrvn: I can because I am trying to trace access paterns in a mmap region. I scan page table entries to gather access paterns but need to segment these accesses to particular regions and I am doign that with the help of smaps (which I periodically scan too)
<vin> *care because
<heat> note that freebsd only merges "forward" (i.e can only merge when you map X and then X + PAGE_SIZE), netbsd does not merge whatsoever IIRC (so they remain separate mappings)
<heat> because merging is hard and it turns out linux's skunkworks vm ended up being the best for everything
<heat> tbf i dont see what could stop netbsd from merging forward like freebsd, but their nice fluffy fancy designs end up being a PITA if you want to merge "backwards" (i.e map X and then X - PAGE_SIZE)
<vin> If my mmap is backed by /dev/zero because of MAP_SHARED | MAP_ANONYMOUS, how does writes to these pages work? COW?
<heat> there's no COW apart from the initial zero page CoW
<heat> if the system does CoW zero pages, which linux does AFAIK
<heat> like, to be clear, /dev/zero is not a real file, and you do not have an infinite pool of zeroes :)
<vin> There is no memory initialization on the mmap call correct? So when I acccess a page later to do a write, that's when a new zeroed page is created and given to me to do the write
<heat> you mean actual mapping?
<vin> yes
<heat> yes, not by default
<heat> i believe MAP_POPULATE should prefault the whole thing for you
<vin> Yup it does minor page faults on the mmap call.
<vin> Also, you are right heat I was not using the correct smap file.
<vin> With regards to the address mismatch above.
<vin> But to confirm the smap regions starting address will be lower or equal to the address reported by mmap pointer correct?
valshaped7 has quit [Quit: Gone]
zxrom__ has joined #osdev
<heat> yeah
zxrom__ is now known as zxrom
<heat> your "area" will be exactly from addr to round_up(addr + size, PAGE_SIZE)
zxrom_ has quit [Ping timeout: 260 seconds]
<heat> obviously it's not getting moved without you knowing
<heat> but it can extend downwards
valshaped74 has joined #osdev
<heat> (it can also extend upwards)
<vin> Doesn't mmap always grow upwards? Why would it extend downwards -- wouldn't that cause address space fragmentation
<heat> sigh
<heat> this is literally the 3rd time i'm telling you mmap grows downwards on linux on a bunch of architectures
<heat> including x86 and arm64
<heat> i also don't see how that would fragment your address space
<vin> Ah I always though mmap is mapped in the higher addresses but will still grow upwards. If the mmap grows downwards ( that is in descending order) shouldn't we access data in descending order too? Which we don't
<zid> you access it in random order.
<heat> what?
<heat> the hell does that mean?
<zid> The point is if you ask for "1GB more address space to feed to my malloc", then the 0x7EF00000000-7FF00000000 mapping might become 0x7EE00000000-7FF00000000 instead
<mrvn> vin: if mmap would grow upwards then it would limit (s)brk()
<zid> fragmentation is just a synonym for gaps
<zid> if it adds to tbe beginning or adds to the end it doesn't matter
<heat> how is your mmap allocation strategy related to how you write a for loop?
<vin> mrvn: interesting why is that? I though mmap does not use sbrk
<heat> what
<mrvn> vin: because sbrk() can only grow the break until it hits the first allocated rebion
<heat> what does zid's example have to do with sbrk?
<mrvn> heat: nothing
<zid> (or fragmentation)
<zid> we somehow got from "Why does this not cause fragmentation?" to an answer getting ignored and some random nonsense about sbrk, I'm lost
<mrvn> zid: my answer was not about fragmentation but about why mmap allocates from the top of the address space down.
<gog> hi
<zid> goog
* gog gogs around
<vin> heat: mmap will give me a contigious address space to interact with. When I print the first pointer I get 0x7f0cdfd8d000 and adding the size (150GB) to this we get 0x7f325fd8d000. So on the address space the mmap seem to grow upwards because going up will get you higher addresses
<zid> There's no growing.
<zid> That's a range.
<zid> growing is when something gets bigger.
<zid> "I ordered a 30cm basketball, I measured it and it's 30cm. YOU TOLD ME THEY FELL DOWNWARDS YOU LIAR!"
<heat> right
<vin> zid: heat said there can vma merges, wouldn't there be a merge of the next anon region to the current one? Wouldn't that be simpler?
<heat> an easy way to see this: pmap your bash instance. ld-linux-x86-64.so.2 mappings (the dynamic linker, hence the first mmap mapping in the process) are one of the highest up in the address space, more recent ones (like random anon memory for the heap) are a good bit downwards
<vin> If my current region must grow and I need to grow is downwards (lower addresses) what happens when I access mmap[151gb]?
<zid> a page fault, you haven't mapped a 151GB range
<zid> you've mapped a 150GB range
<zid> and a 1GB range
<zid> which the vm subsystem *may* have put next to each other.
<heat> if you map 150GB and you get address X and X + 150GB, you have a VMA that spans [X, X + 150GB]. if you map 1 more GB, you could get lucky and merge with the old region. now that VMA covers [X - 1GB, X + 150GB], and that mmap call gives you X - 1GB as the address
<zid> mmap is not realloc.
<zid> mmap is "give me a blank slate piece of memory of this SIZE"
<zid> It's *malloc*
<heat> although there's a nice mremap that does indeed work kindof-ish like realloc
<vin> zid: what happens when I realloc? will a new region be created and all the data will be copied to it or somehow the existing region grows? I am not able to understand why grow downwards
<vin> Ahah zid got your point
<heat> mremap
<zid> no matter how many times you call malloc after calling malloc(150), accessing [151] will never ever be valid.
q3lont has joined #osdev
<zid> even if you end up with 80384903 total allocated
<mrvn> vin: potentially
<heat> if you mremapped your 150GB region and it couldn't expand on site (i.e expand through the tail of the mapping), it just moves it (if you allow it MREMAP_MAYMOVE)
<zid> (the same as realloc)
<zid> It also invalidates all your old pointers, same as realloc
<vin> heat: so by moving you mean copy data to a different set of pages and then zero the old ons? That's a huge overehad
<zid> good news, it's a hugely stupid operation, also
<zid> describe to me the performance problem you're suffering from that requires you to mremap a 150GB region to 151GB region such that it having to move 75 page table entries is the slow part
<zid> I'd love to hear it
<vin> I don't zid
<zid> You just complained about the overhead
<mrvn> does realloc() even use mremap()?
<sakasama> If the alloc was large enough to require mmap (over 2mb, iirc?) it would.
<mrvn> sakasama: it could. but does glibc?
<vin> 128kb on glibc?
<vin> man page says so ^
<sakasama> mrvn: I'm not certain, but it would be strange if it didn't given the original range being mmap'd. What else would it do, mmap a new chunk, memcpy and unmap?
<lsdeesm> the felling of runing your own OS is amazing lol :D
<mrvn> sakasama: yes
gmacd has quit [Ping timeout: 258 seconds]
<sakasama> That would be an absurdity. I imagine the influx of swatting would eliminate those responsible before the patch to fix it could be applied.
<lsdeesm> I don't really understand the concept of implementing shell/command, So like I should write commands and output for them? like ping-pong and etc.. Is it good practice or? I understand that there will me some logic on background for example for something like ls, cd, pwd and etc but like it feels wrong
<zid> lsdeesm: write it as a normal program first
<zid> Then you will know.
<lsdeesm> as a normal program?
<zid> Yes.
<lsdeesm> Can't really understand what do you mean by that
<zid> If you can't write it for linux or windows or whatever, what hope do you have of writing it without either of them?
<lsdeesm> That's different for me, working on OS is not something familiar for me lol :D It hard to explain :D :D :D
<zid> That's why you don't know how to do it for your OS, you just don't know how to do it, your OS or not.
<lsdeesm> So, would it be hard to explain?
<zid> I'm not going to teach you to program, no
<mrvn> lsdeesm: cd can not be a program
<lsdeesm> I don't mean program, I mean command :D
<zid> lsdeesm: if I sat you in front of a linux computer. I ask you to write me a program that takes commands and does things, echo, draw a cow, etc.
<zid> could you do it?
<lsdeesm> Yes :D
<zid> What would you need from linux?
<zid> ncurses? libc? syscalls?
<zid> what technologies did you use?
<lsdeesm> C :D and then mv to /usr/bin :D
<zid> so you didn't do it then
<zid> The *program* has to take the command
<zid> not bash
<zid> you're trying to *write* bash
<lsdeesm> Sorry for being stupid lol :D, you mean something like bash emulator? :D
<zid> it's your OS, you get to pick how it behaves.
<zid> But you can't write it *at all*, even with linux doing all the "OS" parts
<zid> you can't write it, yet
<zid> You'll need to write both halves, eventually, the parts linux is doing, and the parts the shell is doing
bgs has quit [Remote host closed the connection]
<lsdeesm> I undestand but like doing something like this is not good or?
<lsdeesm> like bad practice
<morgan> lsdeesm i'd suggest reading up on the difference between built-in and external commands in a shell
<zid> ignoring the bad C
<zid> you need to *write* terminal_writestring
<zid> you need to *write* strcmp
<zid> not use them
<lsdeesm> thanks
<zid> But that is roughly how a very very basic shell works
<zid> Your main problem *should* be "how the hell do I implement user input on this computer, without an OS" but you've not gotten past the basic programming parts yet
<zid> It seems like you are 4-5 years early.
<lsdeesm> Just starting C and assembly. Only python background :D backend dev that want's to try creating OS :D
<morgan> what have you implemented so far?
<morgan> and zid it doesn't take 4-5 years to figure out how to take PS/2 keyboard input
<lsdeesm> Nothing much, started yesterday, just playing arround and learning stuff from osdev.org wiki
<lsdeesm> I figured that out:D question was not that, question was whether was it good practice or not :D
kerravon has joined #osdev
<heat> <vin> heat: so by moving you mean copy data to a different set of pages and then zero the old ons? That's a huge overehad <-- NO
<heat> i mean moving
<heat> remapping
<heat> you know, virtual memory
<heat> if you mremap your 150GB to 150GB + 4KiB it will be a hugely efficient operation
<heat> even if the address completely changes
<mrvn> unless you have page coloring or huge pages
<morgan> most shells have a variety of builtin commands. some *must* be builtins, like `cd` or `set` or `source` or other stuff that manipulates the shell state itself, but some could be builtin or external like `echo` or `printf` (and in fact on a lot of modern systems they're both)
<morgan> deciding whether a command in the latter group should be built-in or not is up to you as the programmer implementing the shell
<lsdeesm> Thanks
<heat> my favourite command is [
<nortti> my favourite is :
<heat> or as known in the filesystem, /bin/[
<lsdeesm> ~
lsdeesm has quit [Quit: WeeChat 3.8]
<nortti> oh I guess : is not an external program on modern systems at least. I want to say I remember it having been on early unix
<morgan> i love /bin/[
<mrvn> /bin/true is much better
<heat> old UNIX systems (System V at least) had /bin/$arch for each arch they supported
<heat> they were just scripts with #!/bin/false or #!/bin/true
<zid> heat, does onyx support iso9660
<heat> no
<zid> boo
<heat> why?
<zid> my OS doesn't either but there's a stupid trick I've always wanted to try out
<zid> involving iso9660
<mcrod> hi
<FireFly> nortti: I wanna say there's a very early version that is literally just exit 0
<FireFly> well, but in PDP-7 instructions
<heat> thats /bin/true though, i think
<heat> early true was in asm
<bslsk05> ​www.tuhs.org <no title>
<FireFly> I'd assume it's the source for : given the name :p
<nortti> nice
<FireFly> I think my favourite is exit, in particular https://www.tuhs.org/cgi-bin/utree.pl?file=V2/cmd/exit.c
<bslsk05> ​www.tuhs.org <no title>
<nortti> :D
<mrvn> FireFly: exit 0 is implicit. HPux /bin/true is a file with shebang and a licence.
<FireFly> hehe
<FireFly> and then there is the overengineered GNU true :p
<mrvn> /bin/true --version
<nortti> oh hey it's even translated into finnish
<sakasama> seek(0, 0, 2); // I must have missed something in the spec here.
kerravon has quit [Quit: Client closed]
<heat> actually i must say i was wrong and it seems true and false came up in V7, which was already in C it seems
<zid> I assume that's a *very* arcane piece of 'exactly how this unix happens to work' nonsense
<zid> like it's rewinding the tape that the machine is running off
<zid> and execution will fall off the end of main onto the reset code
<zid> otherwise it makes dang near 0 sense
<FireFly> it's seeking stdin to end, no?
<FireFly> I assume, didn't check but figured the 2 is presumably SEEK_END
<FireFly> but yeah something like that, I just find it funny since it's a very literal "we have no more input"
<FireFly> and unexpected
<mrvn> FireFly: unless it returns ESPIPE
<FireFly> dunno if they'd gotten around to invent it yet :p
<mrvn> lssek on stdin only works if that is a file.
<FireFly> in 70s Unix? I mean, maybe, idk
<nortti> hence the "end runcom" I presume
<zid> I want an ibm 729
<heat> i know i've definitely read something on how having true as "int main(){return 0;}" wasn't optimal and how you could get real savings by implementing it in asm
<nortti> (as I understand it in these early unices shell scripts, or runcoms, were handled internally by making stdin the script)
<heat> aka mjg's next step towards madness
<FireFly> there is also goto: https://www.tuhs.org/cgi-bin/utree.pl?file=V2/cmd/goto.c
<bslsk05> ​www.tuhs.org <no title>
<heat> hey look, bad variable names and no comments
<heat> its just like BSD!
<mjg> it defo is not optimal!
<mjg> because rtld is turbo shite and it still links with libc11
<FireFly> which like, literally seeks stdin to the start, reads lines looking for a matching label
<mjg> code in asm1111
<FireFly> smh mjg, we're in the second millennium now
<FireFly> no need to write assembly like it's the medieval period
<heat> if shells noticed and interpreted the #! i guess the optimal-est true would be #!/bin/sh
<mjg> ASM KURWA
<mjg> you only need to support the vax anyway
<mjg> senkju
<heat> as they could just fork() off and start running the script
<mjg> you fork off
<heat> no you fuck off
<mjg> OH
<heat> gosh darnit
<heat> this is the LKML!
<mjg> obnoxious cunt
<heat> *plop*
<mjg> take it easy russel
<mrvn> heat: and that is exactly what some comercial unixes have, except with copyright notice and license added
<heat> just a sec i need to talk with chatgpt for a bit, see if it can figure out TLB semantics
<heat> i'll then blindly post this to the LKML
<mjg> make sure to ask chatgpt how sure it is
<mjg> have you seen the loller where a LAWYER used it for a case?
<heat> no
<bslsk05> ​'How to Use ChatGPT to Ruin Your Legal Career' by LegalEagle (00:28:49)
<mjg> it made up cases and that got shipped to court
<mjg> :d
<heat> oh i like legaleagle but 30 minutes
<mjg> lawyer did not even check if they are legit
q3lont has quit [Ping timeout: 252 seconds]
slidercrank has quit [Ping timeout: 252 seconds]
benlyn has quit [Ping timeout: 252 seconds]
TkTech has quit [Quit: Ping timeout (120 seconds)]
TkTech has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
<sakasama> Lawyer submits generated nonsense to court without reviewing for sanity. Brilliant!
<mjg> personally i'm positively surprised it did not work out :d
<morgan> "awyer submits generated nonsense to court without reviewing for sanity" is only the tip of the iceberg on that one lol
<nikolar> did we all just finish watching it
<morgan> no i've been following this one for weeks lol
<nikolar> oh lol
<zid> yea this is ooold
<sakasama> "Another lawyer for the firm, Ronald Minkoff, told the judge lawyers are notoriously bad with technology."
<mrvn> sakasama: so they go to the library and read the actual books?
* sakasama snickers.
<sakasama> Apparently not.
<mrvn> .oO(The one they didn't know F.3d was referencing)
<morgan> lawyer uses ChatGPT to generate bogus cites and then decides that when the court and opposing counsel says they can't find the cases they mean "can you help us look" and not "we think you made these up"
<morgan> different lawyer at the firm doesnt bother checking any of this despite it being his whole actual one job on the case
<morgan> btw we have a whole transcript for the hearing now lemme find it
<bslsk05> ​arstechnica.com: OpenAI faces defamation suit after ChatGPT completely fabricated another lawsuit | Ars Technica
<sakasama> I have no doubt this will become a trend despite the obviousness of the failings.
kerravon has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
<heat> mjg, if i told you my clock_get_posix_time() is 10% of a pipe1 flamegraph would you laugh at me
<heat> wait, i just did
<heat> ohno!
tiggster has quit [Remote host closed the connection]
* mjg wonders whether to laugh at heat
<mjg> this means either your pipez ar turbo fast
<mjg> or your clock_get_posix_time is turbo slow
<mjg> i'm gonna guess the latter
<heat> note: this is single-threaded
<heat> but my pipes are actually.. decent
* mjg presses X to doubt
<heat> just a list of pages mate
<mjg> btw over a week and i got no response from the wis guy
<heat> called it
<heat> my fork is the new upstream
<mjg> so i also consider upstream dead like solaris
<mjg> all hail the new fork
<heat> i even have long options!
<mjg> sakasama: lmao goodl ink
<mjg> heat: so what's your perfferz vs linux
<mjg> the shafted linux
<heat> 4.3M vs 2.6M
<heat> i'm twice as fast :)
<heat> my algo was actually "inspired" by linux soo
<mjg> wait
<mjg> how many cores you have on that vm
<heat> 4
<mjg> what does yorue scheduler do
zhiayang has quit [Server closed connection]
<mjg> oh i confused this testcase with another one
<mjg> context_switch
<heat> in practice it assigns threads sequentially
zhiayang has joined #osdev
<mjg> i retract the q
<heat> but it's crap, really
<mjg> what's your getppid
<heat> i need cfs on this bad boy
<mjg> vs bare metal
<heat> i would like to tell you but this result makes no sense
<mjg> this is a safe space
<heat> i get 47M or so on Onyx :^
<mjg> :d
<mjg> ye i don't think so
<heat> vs 6 on linux, soo
<heat> something is funky?
<mjg> you should be getting sub 30 without any mitiations whatsoever
<heat> let me bust out the flamegraph
<mjg> how bout you add a counter to the kernel
<mjg> to validate on that end
<heat> for what
<mjg> for that syscall, fuckwad
<heat> add a counter for what? syscalls?
<mjg> for getppid
<mjg> you zero it out, do the bench, read
<mjg> see if it lines up
<mjg> it probably wont
<heat> it has to
<heat> i do no pid caching
<mjg> biacz
<mjg> you get a funky result, first thing you do is sanity check the basics
<heat> ok this is legit
<bslsk05> ​gist.github.com: getppid.svg · GitHub
<heat> excuse the shitty flamegraph but the other addresses are syscall entry/exit
<klange> what are you recording these with?
<heat> my own crappy perf tracing (to be replaced)
<mjg> maybe your timer is way off?
<mjg> your have kaby lake right? your cpu *cannot* do that many transitions to the kernel and back
<heat> it must be doing it
<heat> my timer is not way off
<bslsk05> ​github.com: perf: Add perf probing interface · heatd/Onyx@16e312e · GitHub
<heat> it's kind of garbage but does the job (tm)
<mcrod> you know what's crazy
<mcrod> the osdev wiki makes no mention about profiling one's kernel
<heat> no shit, im the first
<klange> 1. It's a wiki.
<mcrod> yes, it is a wiki
<heat> this is fairly advanced stuff for people who care (which are few)
<mcrod> so is writing an OS
<mcrod> fairly advanced comes with the territory
<heat> it's not comparable
<kazinsal> I should start my project back up while I'm off work for the next few weeks
<kazinsal> (I say, for the third vacation in a row0
<heat> if you're writing tracing tools for your hobby operating system you've went through a lot
<heat> i could port dtrace if i really wanted to, a rando that just started his own rpi kernel that says hello world can't
<heat> so i don't really expect or need to go to the wii
<heat> wiki*
<mjg> can you date; ssh onyx loltest -s 10; date
<heat> (but also wii)
<mjg> you get the idea
<mjg> mmm if you are using qemu you can probably use script(1) to catch all output with highly granular timestamps from the host
<mjg> that would work
<mjg> where is that fucking option
<heat> mate, verified on linux
<heat> mitigations=off in a VM, 46M
<mjg> wut
<mjg> what did you boot exactly
<heat> arch
<mjg> that is kaby lake?
<heat> wht
<mjg> and you have fresh microcode?
<heat> fresh microcode, kabylake R laptop, booted arch, -smp 4 --enable-kvm -cpu host,+invtsc, mitigations=off in kernel cmdline
<mjg> wtf
<heat> skylake was a great uarch
<heat> it's why facebook still uses it
<mjg> if that's legit, 46 to 6 is quite a jump ;s
<mjg> ey
<mjg> but since you booted like htis
<mjg> compare wis now
<heat> compare what?
<heat> pipe1_processes -t 4 does 9M now
<mcrod> also hi
<mcrod> i forgot if i said hi
<heat> hi mcrod
<mcrod> hi heat
<heat> anyway as i was saying back there, i don't think the wiki really NEEDS a tracing section
<heat> because at that point you probably have all the competence to figure out yourself
<mcrod> well no, it doesn't NEED it
<mcrod> but I dunno, I feel like just a quick overview of sorts might generate some ideas for some others
<mcrod> even if a non-OS developer is just kinda curious
<mcrod> i dunno
linearcannon has joined #osdev