<_73>
in the Linux kernel (5.15), the file arch/x86/include/asm/syscall.h contains the line "extern const sys_call_ptr_t sys_call_table[];". From my x86_64 system I have a kernel module that has "#include <asm/syscall.h>", however when I try to access "sys_call_table" the compiler complains with "ERROR: modpost: "sys_call_table" [/home/_73/p/test-module.ko] undefined!". What am I misunderstanding about why "sys_call_table" is undefined? Isn'
bitoff has quit [Remote host closed the connection]
[_] has joined #osdev
SGautam has joined #osdev
[itchyjunk] has quit [Ping timeout: 245 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
masoudd_ has joined #osdev
masoudd has quit [Ping timeout: 260 seconds]
[_] has quit [Ping timeout: 256 seconds]
<heat>
_73, that symbol isn't exported to modules
epony has quit [Remote host closed the connection]
epony has joined #osdev
<zid>
for obvious reasons, the hell would they do with it
<zid>
other than be evi
<heat>
pretty much yeah
<zid>
heat, did you know there's a link's awakenin randomizer
<zid>
I have done nothing else since I found out
<heat>
yeah you told us all a few days ago didn't you
<zid>
did YOU know
<zid>
DID YOU
\Test_User has quit [Quit: \Test_User]
\Test_User has joined #osdev
cow321 has quit [Remote host closed the connection]
<heat>
i did not
<heat>
thank you for letting me know
cow321 has joined #osdev
[itchyjunk] has joined #osdev
<heat>
finally got a use for my usb-c port, so that's nice
<gog>
hi
<heat>
hi gog
<gog>
hi heat
<heat>
how r u
<gog>
i'm good
<gog>
how u
<heat>
im updog
<bl4ckb0ne>
whats updog
<heat>
it's all good
<heat>
what's downcat
<bl4ckb0ne>
is it the opposite of this updog
<gog>
i'm downcat
<bl4ckb0ne>
hi downcat im dad
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
eck has joined #osdev
Turn_Left has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
masoudd_ has quit [Ping timeout: 245 seconds]
Left_Turn has quit [Ping timeout: 240 seconds]
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
<heat>
it turns out synchronous IO really sucks
<heat>
it kills any throughput one might've hoped to get, and you also risk getting a livelock
<heat>
writepages can make 0 progress
<heat>
this is fascinating, i'm like, you know, learning basic operating systems lessons that they found out about in the 80s
<mcrod>
loser
<mcrod>
nerd
<heat>
fuck you
valshaped7424880 has quit [Ping timeout: 256 seconds]
<mcrod>
:)
<Ermine>
so you're walking their way
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
valshaped7424880 has joined #osdev
<FireFly>
zid: LA randomizer sounds (chaotic) fun
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
chibill has joined #osdev
<chibill>
Currently, slightly annoyed. Lost access to most of the IRC channels I was in from the weird falling out Libera Chat had with Matrix. :/ Which I used as an alternative to using my own ZNC.
chibill has quit [Quit: Client closed]
valshaped7424880 has quit [Ping timeout: 276 seconds]
valshaped7424880 has joined #osdev
SGautam has quit [Quit: Connection closed for inactivity]
chibill has joined #osdev
zxrom_ has joined #osdev
zxrom has quit [Read error: Connection reset by peer]
Bonstra has joined #osdev
<geist>
oh yeah i forgot about that
<heat>
I Forgor 💀
<geist>
hello heat. how are you?
<heat>
hi geist
<geist>
now that christmas is over but i still have days off work i should get back to hackin
<heat>
im fine hbu
<heat>
i've been doing writeback work, but i still need to shift all my block IO to async as the last big change before merging
<geist>
ooh neat someone submitted a v9p fs to LK
<zid>
geist: Good news, still time to do advent of code :P
<heat>
v9p?
<geist>
9p over virtio. i've meant to look into that ages ago but never got around to it
<heat>
oh
<zid>
Only reason I know what that is is because it came with my virtio-net doc
<heat>
i think virtio 9p was deprecated by virtio-fs
<heat>
but still cool
<geist>
well, should at leas tlook into that too
<heat>
if you do it correctly you can probably reuse the bulk of the 9p code
<geist>
yah
<geist>
and actually that reminds me, i need to retarget virtio on top of PCI as well, i started that a long time ago but never finished it
<geist>
still only runs on virtio-mmio
<heat>
i have the opposite problem :p
<geist>
yah it's not so much that either is trickier than the other, but abstracting the bulk of the code so that it efficiently uses both transports is a bit of work
<heat>
yo did you use fsx at apple when you worked on filesystems?
<geist>
hmm, i think we had this converatino a long time ago and i think the answer was no, it hadnt been invented yet
<Ermine>
heat: does async thing change anything wrt #85 ?
<geist>
it's some sort of shell thing that lets you bang on the fs?
<heat>
fsx essentially just does a bunch of ops on a file and validate them
<heat>
not a shell thing
<heat>
it's pretty old
<geist>
ah, yeah i think that didn't exist, though i wrote a utility that did something similar when i was there and i remember the test folks thought it was fantastic
<geist>
and i probably wouldn't have done so if fsx existed
<heat>
by Avadis Tevanian, Jr
<geist>
ah yes, we had exatly the conversation before :) must have existed but i dont remember it
<geist>
or maybe the fs team thought it wasn't useful, or i didn't
<geist>
possibly because what i was trying to do was bgreak the FS via a ton of threads wailing on things, and fsx wasn't set up for that
<heat>
ah cool
<heat>
oh yeah fsx doesn't do that
Gooberpatrol66 has quit [Ping timeout: 260 seconds]
<geist>
i have no idea if they're using that stress code i wrote
<heat>
it's a pretty serialized thing, you give it a seed and it does a bunch of ops
<geist>
it was no big thing, usual create N threads, each thread rolls a random number, picks an op, then does one of N things to M files
<heat>
eventually i'd like to use linux's xfstests but that's going to take a while
<heat>
yeah i stole one of those from ltp
<geist>
truncate,create,delete,rename,etc
* heat
nods
<geist>
a lot of bugs were found with racing things like create/delete and rename. rename is ebil
<heat>
Ermine, no #85 is strictly on the "frontend" of VFS stuff
<Ermine>
nice
<heat>
skrew rename
<geist>
racing truncates and writes that are extending a file are ebil to
<Ermine>
ebil?
<geist>
evil
<Ermine>
ah
<zid>
updating files is harrrd
<geist>
return -EBIL;
<heat>
writing is hard
<geist>
i ean it's always trivial to just put a lock around the whole thing. problem solved, but it gets exponentially harder if you want to finely grained lock stuff as you probably should
<zid>
new files are easy at least heat
<geist>
but for some silly embedded thing, or somehting like camera firmware or whatnot, just slamming a lock around the world gets it done
<zid>
even a lock doesn't help vs pwoer loss in the middle though :P
<zid>
still possible to race vs the psu
<geist>
sort of though, because that means by definition you only had one outstanding operation at a time
<geist>
so that actually kinda cleans up most recovery problems
<zid>
good news, my drives all have NCQ and lie
<geist>
kinda the only sane way to deal with FAT
<heat>
the vfs is one of those things you can't really put a big lock around
<heat>
and not take a huge hit
<geist>
yeah i'm mostly thinking bout it from a 'you're writing camera firmare that is writing out a new .jpg'
<heat>
yeah who cares about performance on a camera
<geist>
allocate space for new file, write to it, then go create FAT entry, done
<geist>
sure, my point is being lost
<heat>
no, i get your point
<heat>
just saying that it's pretty undoable on a real UNIX system
<Ermine>
what if there were no synchronous io api
<heat>
you'll take a real hit even on mundane stuff like faulting file pages in
<geist>
that's fundamentally the truble i'm in with LK. i want to build something higher perf, but the expense goes up kinda exponentially and most folks just use the 'create a file write to it move on' sort of API
<geist>
or really most folks are just 'open file read it into memory' because of embedded applications
<heat>
but lk doesn't have a vfs does it?
<geist>
yeah it does, but it's simple
<geist>
handles mounts in a unix like overlay, but passes the entire substring to the FS
<geist>
but has stuff like open/close/read/write/create/delete/rename
<heat>
oh
<heat>
that's pretty fancy
<geist>
but it'snot unixy in that there's no high level vnode maintenance. it's basically just 'pass the substring to FS and FS hands back a file cookie'
<geist>
so it's up to the FS to do all the internal tracking of open files, etc
<heat>
yeah
<heat>
probably works pretty well for embedded
<heat>
even having mounts is maybe too much
<geist>
yah especially RO fses
<heat>
if you wanted a Real System on top of lk you probably want it, idk, 10x more complex? :p
<heat>
i don't know a ton about the traditional sun vfs stuff with vnodes and all, but i like how linux does things
<geist>
exactly
<geist>
or just build a µkernel on top of it, and move all the Real Stuff into user space
<geist>
and just dont build the native VFS/etc inside the kernel
<geist>
ie, what we did with zircon
<heat>
i was reading about the svr4 vnode stuff the other day and while it's cool, it seems oversimplified to me
<heat>
such that they created a special filesystem just for block devices
Turn_Left has quit [Ping timeout: 256 seconds]
* geist
afks for a little bit
<geist>
need to do some stuff in the yard while there's still light
<heat>
linux has: inode <-> address_space, and it fits really well for block devices cuz then the inode is the filesystem's, while the address_space represents the block device