<bslsk05>
patchwork.kernel.org: [V9fs-developer,V2] 9P: introduction of a new cache=mmap model. - Patchwork
<kof123>
maybe? > rdma. connect to a specified RDMA channel
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
pandry has joined #osdev
Hammdist has quit [Quit: Client closed]
stylefish has quit [Quit: stylefish]
stylefish has joined #osdev
stylefish has quit [Quit: stylefish]
stylefish has joined #osdev
Hammdist has joined #osdev
lg has quit [Ping timeout: 268 seconds]
lg has joined #osdev
virt_ has joined #osdev
virt_ has quit [Quit: bye <3]
virt has joined #osdev
node1 has joined #osdev
edr has joined #osdev
gildasio1 has joined #osdev
gildasio has quit [Ping timeout: 240 seconds]
project10 has quit [Quit: .]
goliath has quit [Quit: SIGSEGV]
stolen has joined #osdev
alfplayer has quit [Ping timeout: 252 seconds]
lg has quit [Ping timeout: 260 seconds]
node1 has quit [Quit: Client closed]
<nur>
anyone bought a Raspberry Pi 5 recently?
janemba has quit [Ping timeout: 255 seconds]
janemba has joined #osdev
lg has joined #osdev
virt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
q3lont has quit [Quit: Leaving]
pretty_dumm_guy has joined #osdev
alfplayer has joined #osdev
dude12312414 has joined #osdev
alfplayer has quit [Ping timeout: 252 seconds]
goliath has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid>
gog: new 57 min dosh vid :o
<clever>
nur: i think mine is at the post office, DHL claims a delivery was attempted on the 21st, but nobody showed up at the door, and there have been no retries
<clever>
nur: ive also been digging into the firmware extensively, and may be able to answer questions without the pi itself
gog has quit [Quit: Konversation terminated!]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
gog has joined #osdev
stylefish has quit [Ping timeout: 268 seconds]
stylefish has joined #osdev
heat has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
<nur>
I figure there'd be some cyber monday deals
<nur>
trying to find one for myself :)
xenos1984 has joined #osdev
<nur>
clever, where did you order it from
<clever>
nur: i pre-ordered it the day after the announcement
<clever>
and it took a month to ship
<nur>
should I get one or can I do development with just QEMU
<clever>
depends on what your developing
<nur>
I want to try a hand at making an OS for ARM
<clever>
nur: you can start with qemu-virt-aarch64, and/or pi3/pi4
<clever>
the main things to be aware of, is that the pi5 has psci for starting the secondary cores, while pi3/pi4 use spin-tables
<clever>
just respect device-tree, and be prepared to write some more drivers when the 5 arrives
<nur>
I don't have a Pi 3 or 4
<Ermine>
how hard is it to make third party firmware for a NAS
<clever>
nur: qemu can be used as well
<nur>
clever, that saves me some money until I have justified the purchase :)
<clever>
if you setup a hard-coded PL011 uart driver, with a hard-coded MMIO addr, you can get debug info out of both qemu and the rpi pretty early (even on the pi5)
<clever>
and then use that to debug your device-tree logic
<clever>
then you just walk the device-tree, and spawn drivers based on the compatible= strings
<clever>
and any hw block you support will be working
<clever>
then the pi5 wont be too much different, and you could run the same aarch64 kernel on the whole pi3/pi4/pi5 range, and qemu-virt
<nur>
I only vaguely know how to deal with ARM hardware :-|
<heat>
you'll need to set this up in assembly, then make it the first section using a linker script
<heat>
so when you objcopy it to a flat binary, the header is the first thing in the file
stylefish has quit [Quit: stylefish]
<nur>
I see
<nur>
so kind of like the magic boot header on x86
stylefish has joined #osdev
<heat>
i don't think the linux x86 boot header has executable code in it :v
<zid>
what does 'x86' assemble to
<nur>
thanks for the tips everyone but it's almost 4am and I need to head to bed
<nur>
g'nite
<zid>
your clock is set wrong, it's 19:47
<immibis>
wouldn't #address-cells have to be the same for memory on a given platform anyway?
<heat>
no
<heat>
if your hardware only supports 32-bit addresses or 32-bit sizes it makes sense to set those to a smaller size
<heat>
at the very least you have space
stylefish has quit [Quit: stylefish]
virt has joined #osdev
<clever>
immibis: the rpi dtb also mixes both 32bit and 64bit addresses
<clever>
the VPU bus is 32bit based, so its using #address-cells=1, and ranges= to map it into the 64bit ARM bus
stolen has quit [Quit: Connection closed for inactivity]
virt_ has joined #osdev
virt has quit [Ping timeout: 268 seconds]
<immibis>
that's a different bus though
<clever>
yeah
<clever>
its the perfect example of where address-cells can differ
<immibis>
the whole device-tree hierarchy is kinda dumb. It should just be a flat list of devices, and each device should be linked to one or more busses it needs
virt_ is now known as virt
<heat>
no
<heat>
the natural way to represent a system is a hierarchy
gorgonical has joined #osdev
<gorgonical>
thanks for the help last week zid and heat. It was in fact the sign extension that I fucked up
<heat>
it was sortie, not zid
<heat>
but np :)
<gorgonical>
Oh
<gorgonical>
Right
<gorgonical>
Thanks for nothing zid, and thanks sortie
<gorgonical>
It was obvious once you two pointed it out. Why we don't explicitly use s64 as the retval for all syscalls is beyond me
<heat>
if you think of a conventional x86 PC system, the PCI host bridge has bridges for child buses {X, Y, Z}, and those child buses can have bridges for {W, N, N+1}, etc
<immibis>
are exception levels just rings?
<immibis>
heat: but that's just one hierarchy. What about I2C busses, which can be completely orthogonal to memory busses?
<gorgonical>
immibis: that's how I think of exception levels, as rings yes
<immibis>
especially on a single-board computer, there's no reason that all devices would be hierarchical
<gorgonical>
I feel like the term ring is x86 specific, but certainly in arm/risc-v there's little difference between where an exception gets handled and the permission level otherwise
<immibis>
memory isn't even a hierarchy - it's a spanning-tree, since the CPU isn't the only root.
<heat>
well, you just have an i2c controller in the device tree
<heat>
memory is not a hierarchy in the traditional sense, so it's not represented as one
<gorgonical>
with the minor caveat of numa topologies
<heat>
right
<immibis>
but the default hierarchy is the memory address hierarchy
<immibis>
that's how you're proposing organizing devices
<heat>
what?
<heat>
where did I propose that?
<immibis>
heat: the write-enable pin on this flash chip is connected to a completely unrelated GPIO output of a logically unrelated device. Where's the hierarchy?
<immibis>
(let's say it's connected to an ethernet PHY)
<heat>
huh?
<immibis>
The write-enable reuses the link light pin because there's no link light. the PHY is accessed via an MDIO bus from a switch. The switch is connected to the CPU via PCIe.
<heat>
you're referring to these devices as if they're loose devices in the board with no relation to other bits whatsoever
dude12312414 has joined #osdev
<immibis>
have you ever seen a single-board computer? a GPIO is a GPIO and it will be connected to wherever there's a compatible spare pin
<clever>
immibis: yeah, that write-enable is where it begins to change from a tree with 1 root, into just a tangled web of interconnects, and phandle comes to the rescue
* CompanionCube
wonders if the real-mode 'use a bootloader' message would count as executable code in the boot header :p
<immibis>
so why pretend it's a tree to begin with?
<heat>
because "tangled web of garbage" is the exception and not the rule
<clever>
immibis: the tree at least lets you group things based on things they have in common, like which bus they are on, and how that bus is mapped into the "parent" bus
<immibis>
that doesn't make sense
kof123 has left #osdev [#osdev]
bauen1 has quit [Ping timeout: 260 seconds]
<heat>
if your boards are so simple that they are essentially just a list of fancy devices, that's great but device trees and ACPI are supposed to represent all sorts of complex or even arcane setups
<zid>
heat: You mean your computer doesn't use a pci to usb to pci-e to pci to usb to sata bus!?
<Ermine>
NASen are expensive
<Ermine>
Depsite having only 2-core armv7 processor and ~500Mb of memory
<gorgonical>
Ermine: at my previous research lab we bought a freeNAS machine and it was a pretty good deal I remember
<zid>
500 megabits is not a lot of memory
gbowne1 has joined #osdev
<zid>
most people I see, just repurpose their previous desktop, with an underclock + undervolt :p
<zid>
as long as you don't need the bandwidth and bought intel
<nortti>
can you not underclock / undervolt amd?
<Ermine>
gorgonical: is it just regular machine or something in form factor of desktop NAS?
<zid>
nortti: ofc you can?
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid>
no idea why you asked that
<nortti>
22:34 < zid> most people I see, just repurpose their previous desktop, with an underclock + undervolt :p
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<nortti>
22:34 < zid> as long as you don't need the bandwidth and bought intel
<zid>
exactly, so I'm not sure how you got amd + can't undervolt
<gorgonical>
Ermine: iirc it was a machine from freeNAS, the people that make the freebsd distribution. So it was a proper NAS format. Not a rack unit though
<zid>
"I hear people do x, unless <intel + high bandwidth>"
<zid>
intel only ships enough pci-e lanes for a single slot of expansion card these days
<gorgonical>
yeah we probably got the mini series
raggi_ is now known as raggi
<nortti>
I read it as "I hear people do X, as long as low bandwidth and intel"
<zid>
work on that
<Ermine>
is it called truenas now?
<gorgonical>
yeadh
<geist>
zid: with amd it already doesn't use a lot of power. ZING
alfplayer has quit [Quit: Connection closed]
<Ermine>
OH OpenZFS
<nortti>
zid: is it more natural for an L1 english speaker to group "as long as you don't [[need the bandwidth] and [bought intel]]" rather than "as long as [you don't need the bandwidth] and [bought intel]"?
<Ermine>
"Starting at $1048"
<gorgonical>
yeah they aren't extremely cheap either. But much better than $5,000 for a "real" NAS
Hammdist has quit [Quit: Client closed]
<geist>
i use synology nases in general and they're kinda in that range too
<gorgonical>
Can always roll your own with a NUC-form factor machine and an external HDD enclosure
<zid>
nortti: You missed the implied period with it being split over two lines with an emoticon
<Ermine>
Synology are less powerful, but they start at $300-350
<zid>
Most people reuse their desktop. Unless they bought intel and need bw.
<nortti>
I'm used to people adding a qualifier to their message on a separate line, so I do not necessarily consider a message break a period if the two messages fit together as a single sentence
<zid>
see the emoticon
<geist>
yah i'd consider a :P to be a sentence break
<geist>
like you stopped saying it, then stuck out your tongue
<geist>
not a thing you'd do in the middle of a sentence
<nortti>
I'd see no reason why that couldn't happen in the middle of a sentence
<CompanionCube>
Ermine: iirc openzfs is just the filesystem, truenas is the software/distro
<zid>
well, work on that
<Ermine>
Yes
<gorgonical>
CompanionCube: yes that's right
<nortti>
especially if we're talking of face to face conversations, in which it's common for a "sentence" (not really a concept in speech tbh) to be amended
<zid>
Plus, if I meant what you said, I'd have phrased it entirely differently
<geist>
usually with some sort of conjunction like and or but or something
<nortti>
zid: I mean, sure, if I knew your speech patterns well that would be additional data, but I don't (and I talk a lot with L2 speakers who do not necessarily use the same patterns an L1 speaker does, so I can't rely on that to override the default if no other data seems to suggest the default is wrong)
<Ermine>
I guess every other truenas series is rack mountable
<geist>
but re: the original sentence, it is ambigous what the 'dont' applies to
<immibis>
heat: arcane setups are exactly when trees DON'T work.
<gorgonical>
I think they make the mini as rack mountable, but it's like $500 more
<geist>
we need something like logjam to fix that
<zid>
but not ambiguous in the way you'd end up with "amd can't undevolt"
<immibis>
pci to usb to pci-e to usb to sata is a very simple tree structure.
<geist>
my joke was you dont need to undervolt if it already is power efficient. which is not based on any sort of real logic
<geist>
just a dig because.
<zid>
mine actually runs kinda hot
<geist>
or if you have a bulldozer
<zid>
there's a B2 revision with runs at lower voltages
<zid>
with? which
<netbsduser>
immibis: don't you organise your kernel's devices into a tree too?
<nortti>
< zid> https://imgs.xkcd.com/comics/lojban.png ← tbh lojban doesn't even succeed in that. it focuses purely on specific forms of syntactic ambiguity and ignores all things like "word can mean several things" and "pragmatics exist" and the whole field of evidentiality
<geist>
oh question: if you end a sentence with ... would you consider that rude and/or passive aggressive?
<Ermine>
gorgonical: well, looks cool
<zid>
wistful!
<zid>
depends on context ofc
<netbsduser>
it's a practice which has a considerable body of tradition behind it
<zid>
like...
<sortie>
geist: Good question ...
<zid>
it could just be a legitimate pause?
<sortie>
SURPRISE!
<geist>
yah someone told me genz can read that as passive aggressive
<zid>
the space before the dots makes it look like a "bruh", sortie
<nortti>
in a conversation I'd consider it a sort of trailing off, not necessarily passive aggressive or rude, but showing a bit of disengagament if that is how you end the sentence
<zid>
which is 100% passive aggressive
<heat>
netbsduser, it also ends up being the most useful model for power management et al
<netbsduser>
gen z thinks a lot of things
<sortie>
geist: genz just doesn't varargs
<heat>
hello
<heat>
genz here
<heat>
what quesiton??
<sortie>
I don't believe heat is genz
<immibis>
netbsduser: I don't have a kernel, but I have worked on devices that are decidedly not trees.
<nortti>
though I do know that older people use … as a generic clause separator / ender
<zid>
heat is a zoomer
<geist>
i think the idea is us genxers use ... all the time because we were ignored as children
<netbsduser>
heat: the top reason for it is of course for a layered device model
<immibis>
heat: so you turn off the I2C controller controlling a device because the I2C controller was in a different branch of the tree?
<immibis>
devices are a DAG - deal with it, or suffer.
<sortie>
I mostly use ... as a continuation
<geist>
though i tend to do ,etc or something at the end, to mean 'and you can fill in the details' which i guess is kinda passive aggressive
<geist>
not really, but more like 'i dont have the time to type in the rest of this'
<immibis>
devices are a DAG ...
<netbsduser>
though in fairness you can also perceive that as a stack discipline
<sortie>
Although "foo..." to end a sentence? Yeah more like trailing off ambiguiety and uncertainty
<sortie>
Guess it could be sarcasm too...
<nortti>
geist: in gretchen mcculloch's book "because internet" she looks into this exact thing. if you're interested in language and internet or textual communication in general, I'd highly recommend giving it a read
<heat>
yeah ... can be passive aggressive
<zid>
heat, ...
<geist>
i think of ... at the end for something like imagining a scene in a movie where someione sort of trails off and looks up. ie, exactly the wistful thinking
<heat>
...
<zid>
by itself it is 100% fully aggressive
<zid>
it's taking your shirt off
<geist>
oh … by itself is 100% yeah
<sortie>
I hear genz uses () instead of (...) like K&R intended
<geist>
maybe that's what i heard. less of at the end of a sentence and move of a full on …
<netbsduser>
i'll leave that to your honourable selves...
<heat>
your ...s are weird geist...
<zid>
geist: You using the unicode is giving me paroxysms
<geist>
rawr!
<geist>
on on my mac, so alt-; its so easy
<heat>
😾
<Ermine>
Where genz is supposed to use ()?
<nortti>
< geist> i think of ... at the end for something like imagining a scene in a movie where someione sort of trails off and looks up. ie, exactly the wistful thinking ← my interpretation is more like a scene where someone trails off and then tries to leave the conversation
<geist>
nortti: hmmm, yeah
<geist>
another interpretation is wher eyou say something and then you trail off, with the idea that you led the other person to the answer and they complete the sentence for you
<Ermine>
Ah, varargs
<geist>
another silly movie trope
<zid>
wistful vs can't be fucked is context, ... by itself is shirt off, unicode is "I hate you with a burning passion"
<zid>
easy
<Ermine>
GenZ position: varargs bad
<heat>
when someone uses unicode and the funny caracters pop in my computer 🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬
<zid>
genz position: Why would I not just write this in Go?
<geist>
˙å†é ¥øü
<sortie>
I had this manager that did this amazing trick where you know, you can just keep talking to him, but he's always kinda walking away, but you keep talking and he stays for as long as you need, and once there's no need to talk anymore, he's gone. Kinda cool time management
<immibis>
which generation is node.js?
<nortti>
funnily enough there are ABIs where () and (...) would pass values differently
<Ermine>
They undermine typing system in C
<immibis>
devices are a DAG⋰
<Ermine>
And useful only for a couple of functions
<zid>
() and (...) are different on amd64
<heat>
nortti, oh 100%, i'm fairly sure sysv is one of those
<heat>
for float at least
<immibis>
devices are a DAG ⋮
<zid>
one needs an xor eax, eax
<zid>
one doesn't
<heat>
that said
<sortie>
nortti, yeah I was kinda thinking about that, since a fixed number of arguments with particular types usually have more efficient special case calling conventions than the boundless stdarg
<heat>
a() { extern printf; printf("fuck");}
<immibis>
(⋯) means pass arguments in registers, and (⋮) means stack them on the stack
<sortie>
:D
<Ermine>
main where
<nortti>
void foo(unsigned register a) // pass arguments in registers
<heat>
/* pass arguments in registers*/
<heat>
FTFY
<zid>
I just do
<sortie>
A signed register uses TLS
<zid>
static int a asm("eax"); static int b asm("ebx"); etc
<zid>
then just do eax = arg1; ebx = arg2; ... f();
<immibis>
ABI is stupid. The compiler should choose a way to input registers for a function and save it in some kind of interface file. It's stupid that we rely on different compilers computing the same outputs for a given input, instead of having one read in what the other generated.
<bslsk05>
twitter: <pkhuong> I think using TPUs to explore the space of 3 inputs / 8 instructions from (mov, cmp, cmov) says more about internal budget allocation at the protobuf moving company than anything else.
<heat>
hahaha
danilogondolfo has quit [Quit: Leaving]
<immibis>
google did what?
<immibis>
heat: devices are a DAG
<nortti>
pretty sure services can have cycles
<nortti>
*devices
<Ermine>
TPUs = tensor processing units ?
<heat>
i don't agree
<heat>
Ermine, yes
<immibis>
heat: would you turn off the I2C controller because it's on a different branch from the devices on the I2C bus?
<heat>
the devices on the I2C bus are not part of the device tree
<immibis>
really?
<heat>
yes?
<immibis>
the devices are not part of the device tree?
<heat>
those devices aren't
<immibis>
what is the point of the device tree if it doesn't tell you the devices?
<heat>
I2C is barely a bus, it doesn't do power management at all
<gorgonical>
or discovery
<immibis>
nobody said it did.
<immibis>
of course it's a bus
<immibis>
if you need a power domain tree then make a power domain tree
agent314 has joined #osdev
q3lont has quit [Ping timeout: 276 seconds]
gxt has quit [Remote host closed the connection]
virt has quit [Remote host closed the connection]
gxt has joined #osdev
virt has joined #osdev
bauen1 has joined #osdev
<gorgonical>
I am doing unwise things
<gorgonical>
I need to query a Linux socket for polling events without a corresponding process context becuase the process context isn't in Linux
<gorgonical>
So I want all the other parts of poll to happen immediately, without blocking. I think I can do this if I pass a NULL file and NULL polltable
virt has quit [Ping timeout: 256 seconds]
netbsduser has quit [Ping timeout: 260 seconds]
<heat>
AFAIK you can't pass a null file but a null poll table may be possible
<gorgonical>
I know there's a macro that explicitly checks if the polltable is null because it may have been killed already
<gorgonical>
the sctp implementation (which is reasonable clear) doesn't actually care if there's filep, it just directly inspects the socket state. I don't know about tcp/udp though
<heat>
tldr it's old code, it used to set it to NULL
<gorgonical>
oh
<gorgonical>
I can't think of any other situations in which you might want to query pollable events without actually doing the pollwait, since polling is implicitly a userspace action
virt has quit [Ping timeout: 245 seconds]
<gorgonical>
explicitly, even
<heat>
"The poll_table_struct can still be NULL since some kernel code calls it internally"
<heat>
but then he invokes some staging driver as an example, so i don't know if that's still correct