<mjg>
it's basically onlyp resent in legacy deployments
<mjg>
or when people fuck with autofs, with the idea that this is only mounted at one place at a time
<heat>
what's the modern alternative then?
<mjg>
the alternative is to not rely on a filesystem with posix semantics
<mjg>
or posix semantics to begin with
<mjg>
see object stores all over the place
<mjg>
like hte one on aws
<heat>
well those are not filesystems are they?
<mjg>
no but you can mount them if you insist
<mjg>
key point being posix semantics just don't work in a distributed environment
<heat>
sure
<mjg>
it's a bunch of arbitrary bullshti which people then tried to make accessible over the network
<moon-child>
i mean
<moon-child>
it predates real distributed systems by, like, decades, doesn't it?
<moon-child>
was probably supposed to be used for setups where it's probably fine
gog has quit [Quit: byee]
<heat>
if i had to share some files over the network and wanted it in a filesystem format, i'd probably use nfs
<heat>
unless you want, idk, httpfs
<heat>
something stupid like that (which I don't doubt exist, at least in FUSE form)
<kof123>
> WebDAV is a long-standing protocol that enables a webserver to act as a fileserver and support collaborative authoring of content on the web
<moon-child>
i want eventually consistent distributed state
<moon-child>
not git, but more like git than nfs
<kof123>
webdav and lynx.... <runs> > The Lynx "comment" command initiates an email message to the recorded author of the document (*). To send a comment simply press the 'c' key
<heat>
>The first port of NFS was to a VAX 750 running Berkeley 4.2 BSD
<heat>
VAX VAX VAX VAX VAX VAX VAX
<mjg>
moon-child: don't make me check when "silly rename" showedu p
* kof123
throws in some hesiod
Test_User has joined #osdev
\Test_User has quit [Ping timeout: 264 seconds]
Test_User is now known as \Test_User
<geist>
eep the lava started flowing in iceland
<mjg>
url?
<mjg>
oh there it is
netbsduser has quit [Ping timeout: 264 seconds]
<kof123>
there was that: > DCE/DFS is believed to be the world's only distributed filesystem that correctly implements the full POSIX filesystem semantics, including byte range locking. DCE/DFS was sufficiently reliable and stable to be utilised by IBM to run the back-end filesystem for the 1996 Olympics web site
<kof123>
> Like the OSI model, DCE has not seen much success in practical implementation
<epony>
the Java started flowing out when the Sun gosslings found out about Pascal's P-code machine
<epony>
it looked like the advent of P-code
* epony
cracks a nut
<epony>
oh, and Lisp likes both S&M-expressions but only S-expressions retained their specific torturer braces and upside down hangings.
<geist>
does java have a `safe` keyword?
<geist>
rust, they go the other way, only `unsafe`
<heat>
all of java is safe
<heat>
for "unsafe" you need to use native code, i think
MarchHare has joined #osdev
<MarchHare>
Greetings, program!
navirc has quit [Quit: WeeChat 4.0.4]
<epony>
now add the "fast" keyword
<epony>
and see it lose weight
<epony>
NFS means "No Files Safe"
<epony>
funnily, file safety is missing in Linux "sync" syscalls
<MarchHare>
So, speaking of sync syscalls...I've been playing around with some old exe files. Does anyone happen to have a link for a detailed explanation of how dos exe's are loaded and the relocations are done, preferably with some actual examples? The wikipedia entry on relocations is generic and refers to a basic example showing the general idea, but I want to see a step by step example on a DOS MZ exe.
<zid>
Just find some PE documentation
<zid>
googling for PE .rdata relocation or something idk
<MarchHare>
I'm after MZ exe's not PE.
<zid>
those supported relocations? :p
<MarchHare>
But I was hoping someone would have a decent one. My google searches mostly come up with how to read an exe's headers and stuff.
<MarchHare>
zid: Seems like they did, they have a relocation list right after the header, according to dj delorie.
<zid>
Not sure I've ever actually ran an MZ-only exe
<MarchHare>
zid: And the old bootloader game I started reversing years ago loads what appears to be an MZ exe directly from disk (not from the filesystem) and seemed like it was doing relocations or something, I sure wasn't following what it was doing.
<zid>
you could see what freedos or whatever does if all else fails?
<MarchHare>
I started looking there, but I kind of wanted to see a simplish example just kind of laid out, if that makes sense.
<zid>
I would too, but it ain't here
<zid>
so, keep searching
<MarchHare>
Guess I'll have to. Maybe I'll have to be the one to write the example...
<zid>
dw, it's not info anybody else needs
<zid>
Unless we find a time-hole leading to 1980, anyway
<epony>
Times square holes are not that rare..
<epony>
they lead to the 80ies
<epony>
with culture intact and everything
<epony>
MarchHare, org 100h
<MarchHare>
epony: I'm uh, not writing a com file...
<epony>
the sincere honesty is that I always wanter position independent executables and non-size limited arrays at definition
<epony>
"wantoned"
<epony>
so I hid that old style from you, because history can not repeat itself
edr has quit [Quit: Leaving]
netbsduser has joined #osdev
rustyy has joined #osdev
stolen has joined #osdev
srjek|home has quit [Ping timeout: 252 seconds]
<geist>
a.out!
<moon-child>
everybody always a.out but no one even a.in smh
netbsduser has quit [Ping timeout: 268 seconds]
smeso has quit [Quit: smeso]
smeso has joined #osdev
deckard has quit [Quit: l8r]
deckard has joined #osdev
deckard has quit [Client Quit]
deckard has joined #osdev
<MarchHare>
I was a.in earlier, but now that it's bedtime, I'm about ready to be a.passed_out
<MarchHare>
a.night!
MarchHare has quit [Quit: Leaving]
netbsduser has joined #osdev
masoudd_ has joined #osdev
netbsduser has quit [Ping timeout: 268 seconds]
traged has joined #osdev
traged has quit [Client Quit]
netbsduser has joined #osdev
netbsduser has quit [Ping timeout: 276 seconds]
stolen has quit [Quit: Connection closed for inactivity]
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
masoudd_ has quit [Ping timeout: 276 seconds]
[itchyjunk] has joined #osdev
goliath has joined #osdev
<Ermine>
Now NASen provide knobs to enable nfs access
<Ermine>
I failed to configure uid/gid maps, so I use SMB
gbowne1 has quit [Read error: Connection reset by peer]
heat has quit [Remote host closed the connection]
heat has joined #osdev
masoudd_ has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
GeDaMo has joined #osdev
gog has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
zetef has joined #osdev
zetef has quit [Remote host closed the connection]
zetef has joined #osdev
flom84 has joined #osdev
xenos1984 has joined #osdev
zetef has quit [Remote host closed the connection]
zetef has joined #osdev
zetef has quit [Ping timeout: 276 seconds]
flom84 has quit [Quit: Leaving]
masoudd_ has quit [Ping timeout: 268 seconds]
bauen1 has quit [Ping timeout: 268 seconds]
Gooberpatrol66 has quit [Ping timeout: 268 seconds]
bauen1 has joined #osdev
zetef has joined #osdev
navi has joined #osdev
divine has joined #osdev
project10 has quit [Read error: Connection reset by peer]
project10 has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
netbsduser has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
xenos1984 has joined #osdev
srjek|home has joined #osdev
srjek|home has quit [Ping timeout: 245 seconds]
zetef has quit [Ping timeout: 268 seconds]
gildasio has quit [Remote host closed the connection]
zxrom has joined #osdev
gildasio has joined #osdev
Gurkenglas has joined #osdev
gildasio has quit [Remote host closed the connection]
Gurkenglas has quit [Quit: Client closed]
gildasio has joined #osdev
Gurkenglas has joined #osdev
Gurkenglas has quit [Quit: Client closed]
Gurkenglas has joined #osdev
Left_Turn has joined #osdev
janemba has quit [Ping timeout: 255 seconds]
janemba has joined #osdev
rhburt has joined #osdev
<immibis>
i think NASen are just servers by another name. Some people are installing GPUs in them and running intensive containerized apps.
<Gurkenglas>
I've used Windows, then Debian (GPT-3 treated my terminal allergy when it came out!), then QubesOS. Can you recommend me an OS? My desiderata are that poking around should be productive (eg "ls -l" could come with a description column in system directories) and more importantly that it be made of parts whose communication I can interface with (eg
<Gurkenglas>
it exposes a nodes-edges graph of files/processes/devices and the data flows between them which I can put on screen, and then I can plop down a man-in-the-middle on an edge to eg "log keypresses" or "record screen" or "mirror screen")
<Gurkenglas>
Possibly what I'm looking for is a FrankensteinOS of tiny MirageOS VMs, each with one file/process/device, which I can use off-the-shelf network administration tools to mess with
<heat>
that's extremely out of topic
<Gurkenglas>
Sorry :D. Does it help if I state willingness to create that FrankensteinOS?
<netbsduser>
i'm afraid i don't know anything about frankensteinos, mirageos, nor qubesos
<Ermine>
immibis: everything is electronic computational device by another name
<gog>
i'm an electronic computational device
<gog>
beep
<gog>
meow beep
<Gurkenglas>
netbsduser: ~all I know about MirageOS is that its binary fits in a few megabytes. I pulled the name FrankensteinOS out of thin air just now. QubesOS is basically a pile of Debian VMs, based on the security principle of compartmentalization.
<Ermine>
electronic computational device gog: may I pet you
<gog>
yes
masoudd_ has joined #osdev
* Ermine
pets electronic computational device gog
<Gurkenglas>
gog: are you made of parts whose communication i can interface with?
* gog
piezoelectric prr
<gog>
Gurkenglas: no
<Gurkenglas>
dangit. the data is mounting that such a thing doesn't exist.
<heat>
gog are you running freebsd
<heat>
if so you're not a computational device
Gurkenglas has quit [Quit: Client closed]
<gog>
i'm running catbsd
edr has joined #osdev
<heat>
do not run bsd under any circumstances
<gog>
if i get good enough at making bagels i'm going to open a bagel shop called "hringbrauð" and that's a pun in icelandic because there's a main road in reykjavík called "hringbraut"
sbalmos has quit [Remote host closed the connection]
sbalmos has joined #osdev
rustyy has quit [Ping timeout: 252 seconds]
vdamewood has joined #osdev
srjek|home has joined #osdev
dude12312414 has joined #osdev
<Ermine>
It's not the best time to open a shop when volcano is erupting
<bl4ckb0ne>
Ermine: free heat to cook your bagels though
<Ermine>
you have a point
<vdamewood>
There's a volcanoe near my city where the visitor center sold packets of ash after a recent eruption.
<vdamewood>
volcano*
puck has quit [Remote host closed the connection]
puck has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
zetef has joined #osdev
rustyy has joined #osdev
netbsduser has quit [Ping timeout: 245 seconds]
rustyy has quit [Quit: leaving]
netbsduser has joined #osdev
eddof13 has joined #osdev
zetef has quit [Ping timeout: 255 seconds]
<gog>
hmmm geothermal bagelsl
<gog>
technically the bagels would be 33% geothermally-derived with the electricity we get
<gog>
but the other 66% is hydro
<GeDaMo>
Apparently, the authorities are worried about the volcano's proximity to a power station
<gog>
yeah, svartsengi
<gog>
they spent the better part of 3 weeks building an earthen mound around it
srjek|home has quit [Read error: Connection reset by peer]
gildasio has quit [Ping timeout: 240 seconds]
eddof13 has quit [Quit: eddof13]
windozer has joined #osdev
<windozer>
so... RCU.... this is some kind of joke right?
<gog>
what is
<windozer>
RCU
nur has joined #osdev
<gog>
what's a joke about it
<windozer>
lindozers say "this is the greatest thing since sliced bread, and no u cant see how it works, we PATENTED it"
<windozer>
but i read the patent
<nur>
is the GDT still the same size in 64 bit mode (x86_64)
<gog>
nur: system descriptors are extended
<gog>
segment descriptors are the same
<heat>
windozer, you're 20 years late mate
<nur>
gog what's a system descriptor
<windozer>
and its literally just letting u snatch a data structure and prevent it modifying, and if u want to write, u copy it and replace the pointer, and when everyone is done with the old one...then u kill it
<gog>
interrupt descriptor, task state segment
<heat>
correct
<gog>
gate descriptors*
<nur>
ahh okay
<heat>
fyi that part isn't patented
<heat>
the way to check if everyone is done with it is
<nur>
why is the segment stuff still the same size? You'd think you'd need 64 bits for the base and limit addresses no?
<heat>
nur, x86_64 segments aren't real
<gog>
long mode mostly ignores them, but you can't not have them
<windozer>
i did a ting like this a few years ago in a different project
<windozer>
i just used an atomic counter to detect when its time to kill the old version of the structure
<heat>
that's slow
<heat>
that's... just refcounting
<windozer>
nur: thats why there is now MSR for setting the GS base
<windozer>
because if u didnt have the msr
<windozer>
no 64 bit base for u
<windozer>
heat: its ready/copy/update
<windozer>
a la me
<heat>
it's not
<heat>
if you need to grab a refcount, it's... a refcounted object
<heat>
that's not the point of RCU
<windozer>
that goes without saying
<windozer>
i did same thing in a project written in java, but since i had no concern for refcounts
<nur>
are we talking about RCU?
<windozer>
i just let the gc collect the old copies
<heat>
the power of RCU is that one can iterate a e.g list completely lockless, trivially
<heat>
reads are nearly free, writers pay the cost
<windozer>
thats what i did
<windozer>
atomically increment a refcount in the object and then u can read it
<heat>
lol
<heat>
that's the opposite of free
<windozer>
writers got to acquire a lock and then replace the pointer to the actual data to the new version
<windozer>
we dont count atomic operations as true locked
<windozer>
ofcourse i know that they interlock the bus
rustyy has joined #osdev
<windozer>
but thats momentary and doesnt mean the entire object is accessed under software interlock w a sleeplock or spinlock
gildasio has joined #osdev
<heat>
RCU as an idea is pretty simple and NOT PATENTED, the trick is finding out when its safe to reclaim
<windozer>
yes i want to do it ebtter than i did bbefore
<heat>
the linux RCU patents describe one way of finding shit out
<heat>
and they are, of course, much better than anything else out there
<heat>
because they avoid, erm, atomics
<windozer>
quiet states
masoudd_ has quit [Ping timeout: 246 seconds]
goliath has quit [Quit: SIGSEGV]
eddof13 has joined #osdev
gog has quit [Quit: Konversation terminated!]
frkazoid333 has quit [Ping timeout: 268 seconds]
Left_Turn has quit [Ping timeout: 256 seconds]
sbalmos has quit [Quit: WeeChat 4.1.2]
bauen1 has quit [Ping timeout: 268 seconds]
Left_Turn has joined #osdev
antranigv has quit [Ping timeout: 264 seconds]
sbalmos has joined #osdev
eddof13 has quit [Quit: eddof13]
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
eddof13 has joined #osdev
<windozer>
well
<windozer>
i will implement RCU the Linux way then
<windozer>
once i finish reading these patents
<windozer>
nice of them to write patents so u can just copy the logic str8 out of them
<windozer>
beats reading linuxz code
xenos1984 has quit [Ping timeout: 268 seconds]
<windozer>
did anybody else here implement RCU
xenos1984 has joined #osdev
<heat>
i did
<heat>
fwiw if you're reading patents and getting some actual non-gibberish out of it, you might end up being a good lawyer if you ever pursue that path
bauen1 has joined #osdev
goliath has joined #osdev
<pounce>
i was going to once
<pounce>
but then i got bogged down in async rust primitives and oops
<pounce>
now it's 7 years later and im a programming languages researcher
<pounce>
RCU, don't try it kids
<heat>
but you never did RCU did you
<heat>
rust, don't try it kids
<windozer>
i dont and wont use rust
<windozer>
if i wanted an over bearing line manager screaming demands at me about my code i would go back to my first job out of college
<netbsduser>
i would like to implement rcu but i haven't yet
<netbsduser>
this has spurred me on to read about it sooner rather than later
<Ermine>
Wow uefi has a presentation on debugging methodology
<heat>
netbsduser, fwiw i used lots of early articles on RCU and what they now call "classic RCU"
<Ermine>
2011 though
<heat>
on lwn and other platforms (paul mckenney had a couple of academic papers on this IIRC as well)
<heat>
there's another RCU called tree RCU which is 1) far more modern 2) maybe a bit too overkill, too scalable for common mortals
<heat>
but that one is maybe even more documented on lwn
<Ermine>
Once again I regret not having serial port on my pc
<Ermine>
But seems like motherboards for home/gaming stuff are not equipped with rs-232
<netbsduser>
>"Unfortunately, this spinlock can also suffer extreme contention if there are more than a few hundred CPUs, which might soon become quite common if multicore trends continue" oh no, not the many-hundred-core CPUs
<netbsduser>
that will soil my scaling
<heat>
i know right hahahaha
<puck>
i almost thought you were talking about UEFI and got very worried for a moment
<heat>
fwiw i tried a few numbers of threads (in what mjg would call LAPTOP SCALE LUL LMAO) and it always scaled
<heat>
i couldn't get the spinlock to actually contend
<puck>
(annoyingly my desktop already does multicore uefi, ruining my plans of commandeering an unused core to do funny things)
<heat>
your what does what now
<puck>
heat: i think it uses some extra cores during initialization
<puck>
if i commandeer one it locks up the UEFI
<puck>
but, my code runs perfectly smoothly
<heat>
right, that's normal, even OVMF does that
<heat>
they use the MP protocol(s) to run stuff on the APs
<puck>
yeaoh
<puck>
i used that protocol to try and take over a core, because uefi doesn't have preemptive multitasking*
<puck>
*partially true. there's like four priority levels
<puck>
stuff's pretty wonky tho
<heat>
yeah
<puck>
if i run too much code in callback prio level it gets mad and doesn't boot
<puck>
and i don't know why because the entire screen is covered in my beautiful animated bootsplash
<heat>
some code needs TPL_APPLICATION
windozer has quit [Quit: HeXChat 2.10.2]
Gooberpatrol66 has joined #osdev
Gurkenglas has joined #osdev
<puck>
heat: yeah this is running in TPL_CALLBACK
<puck>
which is totally fine for interacting with the GOP
gog has joined #osdev
node1 has joined #osdev
<node1>
Hi
<node1>
Is the clock rate for an instruction pipelined CPU always necessarily longer than that of a non-pipelined CPU?
antranigv has joined #osdev
bitoff has quit [Remote host closed the connection]
bitoff has joined #osdev
<gog>
i... don't understand what you mean by this
CaptainIRS has quit [Quit: Ping timeout (120 seconds)]
<heat>
gog, i mean linux kernel system operating
<gog>
heat
<heat>
bazel
<gog>
freebsd operating kernel
<heat>
no
<heat>
nooo
<gog>
yes
<gog>
yes
<gog>
yesssssssss
CaptainIRS has joined #osdev
<node1>
was it for me?
<heat>
paidbsd crapper
kazinsal has quit [Ping timeout: 245 seconds]
<gog>
node1: what do you mean by this question yes
nitrix has quit [Remote host closed the connection]
nohit has quit [Read error: Connection reset by peer]
kazinsal has joined #osdev
arminweigl has joined #osdev
nitrix has joined #osdev
vdamewood has quit [Ping timeout: 245 seconds]
nohit has joined #osdev
GreaseMonkey has quit [Remote host closed the connection]
<gog>
the clock rate is the clock rate, it's the number of times per second the circuit can change state
<node1>
I'm asking whether the clock rate (or clock cycle time) in a CPU that uses instruction pipelining is always required to be longer compared to a CPU that does not use pipelining(which looks hypothethical)
citrons has quit [Ping timeout: 245 seconds]
mjg has quit [Ping timeout: 245 seconds]
<gog>
a pipelined cpu has more to do in each clock cycle, but it's not necessarily longer
amj has quit [Ping timeout: 245 seconds]
<gog>
certain events or instructions can cause the pipeline to have to be stalled or flushed which impacts performance
citrons has joined #osdev
<node1>
Yes but i'm just comparing with non-pipelined CPU instruction.
<gog>
it depends
<node1>
For me it looks like it should be always larger.
mjg has joined #osdev
<node1>
Based on logical reasoning :)
<node1>
CPI is always larger for pipeline
<gog>
yes, but that doesn't mean the instruction itself is going to take more time and the CPU itself may be able to have a higher base frequency
netbsduser has quit [Ping timeout: 268 seconds]
<gog>
so there's a tradeoff of power consumption and throughput per cycle
<gog>
and the fact that if you repeatedly stall the pipeline it's actually slower than a non-pipeline cpu
<node1>
ok
<heat>
gog
<heat>
gogggggggggg
<gog>
heat
<gog>
heaaaaaaaaaaaat
<heat>
give me attention
<heat>
i am beby
amj has joined #osdev
<gog>
no
<heat>
what
<heat>
why
<gog>
jk
<gog>
hi heat how are you today
<heat>
im ok
<heat>
i'm not getting swamped by uni anymore
<heat>
which is good
<gog>
good
<heat>
for a couple of weeks, that is
<heat>
so i've written more onyx again
<heat>
i have a really annoying issue atm that i need to figure out
<node1>
oka thank you gog
<heat>
where clangd the language server doesn't agree with clang the compiler, given the same options
node1 has quit [Quit: Client closed]
<heat>
particularly for lock analysis stuff
<heat>
if you could look into it gog that'd be great!
<gog>
maybe some of the options aren't passed from the frontend
<heat>
yeah i... i don't get it
<heat>
i may need to update my toolchain to the latest version and see if that fixes it
<gog>
have you tried turning it off and on again
<heat>
yes
<heat>
i'm a computing professional
<gog>
i'm not
<gog>
i'm striving to be as unprofessional in my conduct as possible
<gog>
i've been showing up drunk and harassing the customers
<heat>
are you a computing unprofessional then
<gog>
yes
gbowne1 has joined #osdev
goliath has quit [Quit: SIGSEGV]
Matt|home has quit [Remote host closed the connection]
gareppa has joined #osdev
GreaseMonkey has joined #osdev
netbsduser has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
brynet has quit [Quit: leaving]
meisaka has quit [Ping timeout: 276 seconds]
alfplayer has quit [Ping timeout: 264 seconds]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
brynet has joined #osdev
gareppa has quit [Quit: WeeChat 4.0.5]
<heat>
gog.com
<gog>
welcome to zombocom
<gog>
this is zombocom
<gog>
welcome
<heat>
welcome to gogcom
<heat>
this is gogcom
epony has quit [Remote host closed the connection]
<gog>
heaty
<gog>
i'm sad
<gog>
but i'm also happy
<heat>
why
<heat>
what's wrong
<gog>
idk
<gog>
girl stuff
<heat>
girls ☕
<mjg>
women amirite
<mjg>
i have a cure tho
* mjg
pets gog
* gog
prr
<heat>
i thought you were going to say HRT
<heat>
which technically is a cure for woman
<heat>
womanite
<gog>
i think my emotional volatility over the last couple months is related to that
<gog>
i changed meds and i feel generally better
[itchyjunk] has joined #osdev
<gog>
like i have energy and my body doesn't hurt every day
<heat>
this is a certified pog moment
<mjg>
i can tell you were not looking at eufi
<mjg>
uefi
<heat>
no, i've been looking at writeback
<mjg>
i was talking to my friend
<heat>
folio locks are a fun PESSIMAL thing
<mjg>
gog
<heat>
what does freebsd use for page locks again?
<gog>
mjg
<gog>
i haven't looked at uefi in a couple weeks
<heat>
good choice!
<gog>
i'm busy writing a jvascript thing
<heat>
bad choice!
<mjg>
heat: CRAP
<mjg>
is what it uses
<heat>
that's GOOD TO KNOW
<heat>
atm linux folio locks can't spin on the holder
<heat>
which sucks but they don't want to make struct page larger
<mjg>
freebsd locks dn't spin either
<mjg>
for pagen
<heat>
i do wonder how pessimalen that is
<heat>
i guess if you use it too liberally for e.g LITERALLY MAPPING PAGES it may be pessimalen
<heat>
as in those cases it's a really short lock
<mjg>
it's terrible
<mjg>
no joke
<mjg>
worst bottleneck at this pint
<gog>
rgb color space is kinda weird
<gog>
liek when you have two fully saturated channels
<gog>
then yoou have a more compressed range of tints
<bslsk05>
lore.kernel.org: Virtual Scanning Considered Harmful - Matthew Wilcox
<heat>
thoughts?
<mjg>
linked list walks being fucking atrocious is not new
<heat>
yeah but physical scanning is also kinda nuts? new idea?
<mjg>
however, chances are he can speed them up big time with early enough prefetch
<mjg>
literally scan all physical pages every time is PESSIMAL indeed
<mjg>
but you can probably slap something simple on top, say a bitmap for 2M mappings or some shit
<mjg>
so you would be able to avoid majority of unused memory
<heat>
is it though?
<heat>
if you can scan roughly 40x as much memory, it depends on how big your LRU lists usually are
<mjg>
go past your laptop thinking man
<mjg>
i got a box with literally 1TB
<mjg>
scanning the entire thing is a turbo loller
<mjg>
and 1TB is not anywhere near the biggest you can find out there either
<heat>
i don't care
<mjg>
webdev
<heat>
how big are your lru lists?
<heat>
when push comes to shove and it does need to walk through them
<mjg>
for vm i don't know, i epect there is a lot of stupid going on there, so probably longer than necessary
<Ermine>
1TB ram?
<heat>
if you had to go through 1TB/40 before but now you need to go through 1TB, it's roughly the same performance on anything that's not a VAX
<mjg>
ye
<mjg>
heat: except most of the time i'm not using anywhere near 1TB
<heat>
and i seriously doubt that LRU lists are a 40th of the whole memory
<heat>
right, so why are you scanning LRU then?
<mjg>
heat: and even if i did majority of it can probablyb e exluded
<mjg>
freebsd presumably is looking for good candidates for whacking from memory
zetef has joined #osdev
<mjg>
i just noticed the email is from october
<mjg>
and there are no rplies
<mjg>
highly suspicious
<heat>
no one wants to do LRU work i guess
<heat>
particularly extensive LRU work, that is
<mjg>
someone should give this email as a prompt to chatgpt
<mjg>
problem solved within fucking minutes
<heat>
the problem with the physical approach is that i have no idea how would could easily find the replacement candidates without going through the whole memory
<heat>
maybe xarray? but if you try to insert into an xarray at the head you'll have a nasty surprise