<rustyy>
hey guys, is anyone familiar with ntfs internals? i am trying to figure out whether ntfs-3g and ntfs3 driver report a false-positive issue with ntfs volume or whether the volume is actually dirty
<rustyy>
ntfs $LogFile has active clients defined by LFS_CLIENT_RECORD entries and RESTART_AREA clean flag is not set
<rustyy>
based on that ntfs-3g reports that volume is dirty, but is it justified?
<zid>
klange: i wish it was hlt, it's mov cld, [celcius]; test cld, 3; jz nothlt
torresjrjr has quit [Remote host closed the connection]
torresjrjr has joined #osdev
<kof673>
no but ...i never trust ntfs on linux/bsd ...only use for things i don't care/have a backup if it gets trashed. that may be outdated just.....see that occasionally...
<kof673>
basically i will go scandisk on a windows machine when that happens, seems to fix things. again, may be outdated...ditto for fat-32 and ex-fat whatever else
gbowne1 has quit [Quit: Leaving]
GeDaMo has joined #osdev
netbsduser has joined #osdev
<rustyy>
sigh, yeah, makes sense
Matt|home has quit [Remote host closed the connection]
<kof673>
well i mean that is mostly on microsd / usb flash drives, so i assume partially due to not unmounting properly :/ and failing drives/etc.
<kof673>
so may just be flaky hardware
kfv has joined #osdev
netbsduser has quit [Ping timeout: 264 seconds]
<Ermine>
Using ntfs-3g for years, never got a single block trashed
<GeDaMo>
"In reality, all flash memory is riddled with defects — without exception. The illusion of a contiguous, reliable storage media is crafted through sophisticated error correction and bad block management functions." https://www.bunniestudios.com/blog/?page_id=3592
<bslsk05>
www.tomshardware.com: Is your Intel Core i9-13900K crashing in games? Your motherboard BIOS settings may be to blame — other high-end Intel CPUs also affected (Updated) | Tom's Hardware
<clever>
zid: somebody linked this to me recently, when i mentioned my system malfunctioning
<clever>
basically, the bios defaults the power limit to 4096W, lol
<zid>
amd's memory controller is just fucky and their bios is immature
<zid>
it uses like 6 different voltages and they get hit harder/less hard depending on load
<clever>
reducing the clock multiplier was one fix, ive now set that back to auto, and enforced a wattage limit instead
<clever>
cpu hasnt malfunctioned yet
<zid>
and other weirdness like the dram freq impacting the cache freq
<clever>
but the GPU has malfunctioned several times, with both the reduced cpu clock, and the reduced cpu wattage
<zid>
I bumped vsoc by literally 0.06V and it seem to be stable again
<clever>
GPU malfunctions vary, sometimes its corrupt vertex data, sometimes it just hangs and X hard crashes
<zid>
The ram is great, it's an 800MHz kit that will do 1200MHz :p
<clever>
could it also be the pcie root controller?
<zid>
the pci-e root controller these days it the cpu, clever
<zid>
is*
<clever>
yep
<zid>
So make sure your 100MHz is actually 100MHz and you don't have any [auto]
<clever>
but, could the pcie part of the cpu malfunctioning, explain why the gpu is malfunctioning?
<zid>
Some boards in the past were trying to cheat on benchmarks by making the 100MHz root clock 101Mhz
netbsduser has joined #osdev
<zid>
101MHz bclk * 48 for 4.848 instead of 4.8MHz, then showing how their mobo is 'faster' than others, but the pci-e bus would also go to 101MHz
Nixkernal has joined #osdev
bradd has quit [Quit: No Ping reply in 180 seconds.]
bradd has joined #osdev
netbsduser has quit [Ping timeout: 256 seconds]
dzwdz has quit [Ping timeout: 264 seconds]
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mjg>
netbsd 10 rc5 available
<mjg>
still no timeline anywhere to be seen
<gog>
good
<gog>
never give roadmaps, timelines or guarantees
<mjg>
freebsd always publishes a timeline for alpha, beta, rc and release builds
<mjg>
and it is always wrong too ;d
<mjg>
i don't recall even one release done on time
<zid>
never give roadmaps, give cryptic directions like "past the third tree you will find what you seek"
<bslsk05>
github.com: Onyx/kernel/include/onyx/preempt.h at master · heatd/Onyx · GitHub
<mjg>
it's crap
<mjg>
dec_per_cpu(preemption_counter);
<mjg>
nsigned long counter = get_per_cpu(preemption_counter);
<heat>
the decq %gs:0x158; mov %gs:0x158, %rax; test %rax, %rax; is technically bad but i bet it doesn't make much of a difference
<mjg>
if (unlikely(counter == 0 && !irq_is_disabled()))
<mjg>
what you want is what FREEBSD is doing
<mjg>
and probably linux
<zid>
what do, load, dec, test?
<mjg>
namely you check if you are getting preempted
<zid>
to remove having to care about the writeback finishing? does it care?
<mjg>
and only then do any other work
<mjg>
almost every time you are in the allocator the counter is dropping to 0
<heat>
zid, decq %gs:0x158; jz
<mjg>
and you are *not* getting preempted
<mjg>
so you are executing an extra branch
<zid>
oh, yea, that'd work, hah
<mjg>
atomic_interrupt_fence();
<mjg>
td->td_critnest--;
<mjg>
atomic_interrupt_fence();
<mjg>
if (__predict_false(td->td_owepreempt))
<mjg>
critical_exit_preempt();
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mjg>
now it sucks that this is in the task-equivalent as opposed to percpu
<mjg>
but branch-wise it is much better
<mjg>
then critical_exit_preempt starts with
<mjg>
if (td->td_critnest != 0)
<mjg>
return;
<mjg>
but you almsot never get there
<mjg>
tl;dr win
<heat>
linux just increments the preemption counter when disabling irqs
<mjg>
i have some recollection they keep the "am i getting preempted" flag within the same var as the counter
<heat>
wait, no, they just increment it when entering a hardware irq
<heat>
the preemption counter is mega packed with like 5 or 6 fields
<mjg>
look mofo, bottom line is, you can be doing less work there
xenos1984 has quit [Ping timeout: 260 seconds]
<heat>
but the nice part is that decq %gs:0x158; jz CanPreempt just works
xenos1984 has joined #osdev
<heat>
i can be doing less work there but you're zooming in on very small details that don't really matter
<mjg>
you literally asked about microoptmizing stuff with noinline
<mjg>
adjacent to it is not rolling with branches which don't need to exist in the fast path
navi has quit [Quit: WeeChat 4.1.2]
<mjg>
now you are saying some shit about this not being important?
<mjg>
liek mofo, plz
<heat>
the resched bit being in the preempt counter is a better win
<mjg>
the crux is that you only need one branch inlined in the fast path to preempt_enable
<mjg>
having both the counter and the flag in one var is an improvement over having them split
<mjg>
but is comparatively minor
<heat>
the linux resched bit is inverted
<heat>
so decq %gs:0x158; jz Just Works
<heat>
it's insanely micro-optimized but also a great idea
<zid>
I need more keywords heat, so I can optimize around volatiles better
<mjg>
does not sound insanely microoptimized
<zid>
can you add me some to C2x
<heat>
what keyword do you need
<heat>
C2x was finished in january so i'm afraid it's not possible
<netbsduser>
i love these little no-preempt counters, they're so cute
<zid>
I need a way to tell it that it's volatile because I want writes to invalidate reads
<zid>
not to keep doing a readback over and over if I haven't written to it yet
<netbsduser>
i do it the traditional way by splsoft() instead
<zid>
I have a mmio reg that I need to mark volatile just to make it even do the write, for example, else it just looks like a statement that does nothing, but I don't actually need any *other* semantic on top
<zid>
as long as writes invalidate reads
<zid>
register is just "Write an address to me to select what internal register you read if you read it"
<zid>
so my code is all macros like {write(4); return read();}
<zid>
but 90% of those writes end up redundant
<zid>
but I'm not writing the whole thing in assembly goddanit
<heat>
does __asm__ __volatile__("":::"memory") work?
<zid>
alternative would be to keep a C variable that mirrors its content
<zid>
{ so write(4); t = 4; return read(); }
<heat>
netbsduser, ah yes, the traditional conservative UNIX spl
<zid>
then change it to { if(t != 4) write(4); t = 4; return read(); }
<heat>
you're in the UNIX Tea Party
<zid>
which might give slightly better codegen overall, if it elides enough of the ifs and t = 4;s
<zid>
but it probably won't
<zid>
and wastes 4 bytes of the rams
xenos1984 has quit [Ping timeout: 268 seconds]
xenos1984 has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
matrice64 has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
Cindy has joined #osdev
<Cindy>
hi hi
<Cindy>
nikolapdp: remember that m68k emulator?
<Cindy>
i made a seperate branch to test out something
d5k has joined #osdev
<Cindy>
first branch: giant lookup tables, functions per EA modes and size, second branch: decoder function (that parses the opcode), and executor/disassembler function
<Cindy>
compiled sizes: 1) >2MB 2) 18kb
<Cindy>
after stripped
<nikolapdp>
heh yeah that would make sense
d5k has quit [Client Quit]
<nikolapdp>
have you benchmarked them
<nikolapdp>
Cindy ^
<Cindy>
not yet
<Cindy>
that's why i made seperate branches
<heat>
2MB of lookup tables sounds cache-awful
<nikolapdp>
yeah that's what we were talking about
<Cindy>
the lookup table is actually 524KB
<Cindy>
or 65536 x 8
<Cindy>
because it's a table full of pointers
<Cindy>
but yeah, cache awful
<Cindy>
the decoder function decodes a opcode (16-bit) into a instruction structure
<zid>
2MB is like, 1/384th of the L3 on a good cpu
<zid>
or 80% on mine
<Cindy>
the executor/disassembler takes a instruction structure
<Cindy>
while in the first branch
<Cindy>
it just gets the function for the opcode in the lookup table
<Cindy>
and executes that
<nikolapdp>
that's why i asked if you've benchmarked
<nikolapdp>
i am curious how differently they perform
<Cindy>
i will benchmark with a simple m68k program
<heat>
zid, yeah but ideally you want to stay on the L1
<heat>
for my CPU it doesn't even fit on the L2
<nikolapdp>
doesn't fit into my l2 either
<nikolapdp>
only l3
<heat>
and is 2/3rds of my L3 cache
<Cindy>
i'll get rid of the cycle counting
<Cindy>
to make it run as fast as possible
<nikolapdp>
1/2 of mine
<Cindy>
and measure instructions per second
<Cindy>
between 2 branches
<heat>
sorry, 1/3rd
<nikolapdp>
you can try various compiler optimizations
<nikolapdp>
to squeeze as much as you can out of iz
Matt|home has joined #osdev
<zid>
when do we get x3d cpus for free
<nikolapdp>
never
<Cindy>
i've only implemented the first line of instructions in m68k
<Cindy>
(aka. 0000xxxx xxxxxxxx)
<zid>
5800x5d when
<Cindy>
m68k uses the first 4 bits as the line
<nikolapdp>
zid i doubt we are getting any more 5xxx cpus
<Cindy>
nikolapdp: have you read the m68k patents?
<zid>
idk man, we've already had 2
<zid>
three even
<Cindy>
motorola detailed so much about the internals of m68000, even the source microcode and nanocode
<nikolapdp>
oh that's cool
<Cindy>
and how it all works... in patents
<nikolapdp>
i wonder why, doubt they needed to go into so much detail
<heat>
IN PATENTS
<nikolapdp>
lol
<Cindy>
you would never find this kind of detail in modern patents anymore
<heat>
good, it makes no sense
<Cindy>
not with corporate lawyers wanting to make everything as vague as possible
<heat>
why would you thoroughly document something in a patent
<nikolapdp>
that's kind of the idea behind the patents, no matter how silly
<Cindy>
because maybe that's the point of the patent?
<heat>
it makes your patent objectively worse, and you can't legally copy it anyhow
<bslsk05>
patents.google.com: US4312034A - ALU and Condition code control unit for data processor - Google Patents
<Cindy>
and it has EVERYTHING
<Cindy>
literally everything down to the schematics, microcode, nanocode
<Cindy>
of how it works
<Cindy>
nikolapdp: and this is why mame has a microcode-level 68000 emulator now
<Cindy>
motorola has effectively open sourced their processor
<Cindy>
in patents
<nikolapdp>
did the patents expire
<Cindy>
yes
<nikolapdp>
it basically is open source now
<Cindy>
expired in the late 90's
<nikolapdp>
or public domain technically
<Cindy>
you can figure out a lot in the microcode
<heat>
maybe in 50 years you'll be able to DIY your own core duo
<zid>
HEATRIXINSIDE
<nikolapdp>
well if you can reverse engeneer it, you could do it now
<nikolapdp>
i don't think there's enough information around to make it on your own otherwise
<heat>
you would not be able to do it
<Cindy>
a guy figured out how the *BCD instructions worked from the microcode patents
<nortti>
I think SSE4 is still under patent too?
<heat>
unless your home is a TSMC foundry
<Cindy>
and figured out how all the m68k emulators DID IT WRONG THE WHOLE TIME
<heat>
and you're legally clear and have a license for the x86 and x86-64 ISAs
<heat>
and you have the knowhow of thousands of engineers
<zid>
core2 duo but on home-fab scale
<zid>
4 feet wide cpu
<zid>
cool it by putting a waterbed on top connected to a chiller pump
<nikolapdp>
sounds about right
<zid>
run it at a few khz cus of speed of light
<Cindy>
also this is a reminder that kega fusion sucks
rpnx has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
<mjg>
DON'T LINK PATENTS IN THE CHANNEL
<mjg>
you r*****s
<mjg>
thank you
<nortti>
even stuff that's expired before several ppl here were born?
<mjg>
don't link shit
netbsduser has quit [Ping timeout: 256 seconds]
<heat>
you rascals
netbsduser has joined #osdev
<mjg>
so i'm watching a youtube video, dude wants to dunk on the "right" for liking the samurai
<mjg>
and says if you read history you will know they did not follow bushido
<mjg>
except, mofo, bushido was made up long after samurai were dead
<mjg>
so technically he is right, but no
<nortti>
doesn't it as generally understood originate from the edo period, after the samurai stopped doing all the warring and became more buraucrats, but still very much a thing?
<nortti>
honestly did not realize ppl thought it was an actual code that existed, instead of a loose collection of shared cultural ideas
<Ermine>
BSD engineering ethos
<Ermine>
bushido sounds cool on itself tho
<zid>
CHIVALRY gets the same treatment nortti
<zid>
Very little of chivalry is about how to help a lady down from a stagecoach, a lot of it is about how to cut a dude's head off
<zid>
people seem to focus on the former for some reason
<nortti>
right, "a knight" is just a dude with legally sanctioned ability to live off of others's work and access to better weapons of war
zetef has joined #osdev
ramenu has quit [Ping timeout: 246 seconds]
zetef has quit [Remote host closed the connection]
zetef has joined #osdev
merry has quit [Ping timeout: 268 seconds]
<heat>
the bsd engineering ethos is literally bushido
<heat>
mainly because they're all weaboos
rorx has joined #osdev
<heat>
nortti, wait, how did knights make a living if they weren't necessarily landed? i think?
<GeDaMo>
They got paid for fighting dragons :|
<heat>
oh :( did they kill all the dragons?
<zid>
the only one left is on the flag
<zid>
giant killer snails all gone too
<nortti>
heat: might be my understanding is too area-specific, but as far as I understand being a knight meant you had tax-free estate
<zid>
being knighted doesn't give you any land currently
<zid>
foe xample
<nortti>
true, I was thinking of when knights were still relevant militarily, so before late middle ages
ramenu has joined #osdev
<zid>
are you saying we can't just throw richard branson at the next invasion
<zid>
fuck
<heat>
lewis hamilton can definitely kill a guy
<zid>
that's racist
<heat>
uh oh i did an accidental racism again
<nortti>
< zid> are you saying we can't just throw richard branson at the next invasion ← you can if you want to, but it probably won't do much to break the frisians' shield wall
<zid>
we are the frisians
<zid>
it's the gauls we fight
<nortti>
okay looks like in more southern/western parts of europe there were knights who were instead attached to a higher lord (who, presumably, provided for them in exchange for military service)
matrice64 has quit [Ping timeout: 260 seconds]
gbowne1 has joined #osdev
Arthuria has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
gog` has quit [Quit: byee]
zetef has quit [Ping timeout: 252 seconds]
lentement has joined #osdev
lentement has quit [Ping timeout: 268 seconds]
Arthuria has quit [Ping timeout: 264 seconds]
<heat>
mjg, mothercrapper does the freebsd kernel have gcov support?
<heat>
yes it does, but GPL!!
<Ermine>
What is linux engineering ethos then?
<heat>
non-kissing of women
<nikolapdp>
is that ony engineering ethos too
<nikolapdp>
*onyx
<Ermine>
oni-x
<heat>
obviously, as i copy everything from linux
<nikolapdp>
kek nice
<heat>
but in true heat fashion since i'm worse at linux than linux one or two girls might squeeze in from time to time
<heat>
i can't do ext4 as well as linux, but i also can't do celibacy as well as linux
<Ermine>
I guess girls get attracted by dtrace?
<nikolapdp>
has anyone tried to attract a girl with dtraec
<heat>
mjg for sure
zetef has joined #osdev
zetef has quit [Remote host closed the connection]
Arthuria has joined #osdev
linearcannon has quit [Remote host closed the connection]
linearcannon has joined #osdev
<mjg>
nikolapdp: there was one which managed to *not* lose attraction with freebsd, true story
<mjg>
she was a nerd, started dual booting linux and freebsd, things lasted a little after that
<heat>
can i probe your internals 😳
<mjg>
i installed freebsd on a pc of a not a nerd girl
<mjg>
things did not take off
<mjg>
SOMEHOW
<mjg>
i have no idea what happened there
<heat>
WHAT
<mjg>
women, am i right?
<heat>
freebsd devs ☕
<mjg>
fwiw the latter case was me towards the end of high school
<mjg>
:d
<mjg>
the former was college
ramenu has quit [Ping timeout: 256 seconds]
<heat>
freebsd should be 18+
<heat>
netbsd should be 65+
<mjg>
i decided to not mess with girl's systems after that
<mjg>
heat: well i believe the youngest netbsd dev (i mean user) is 66