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
<geist> yah just do a separate build dir
<geist> far easier to do
<geist> build-all/ build-dbg/ etc
<geist> only risk there and i've fallen to it many times, is you load the wrong one
<geist> and you sit there and pull out your hair wondering why some change doesn't work
<geist> i've made that mistake so many times i almost first thing just add a printf and see if i see it
<ZetItUp> haha :D
simpl_e has joined #osdev
tricklynch has quit [Ping timeout: 252 seconds]
<klange> My build system remains a cobbled together mix of Make and Python but the Python is now mostly Kuroko... except the ramdisk build script since that still uses the `tarfile` module...
specing has quit [Ping timeout: 272 seconds]
sortie has quit [Quit: Leaving]
<klange> I litter object files in my kernel/ and libc/, have one rootfs build dir that is shared with the sysroot for the toolchain, there's a hundred generated makefiles... but it all works.
Arthuria has quit [Ping timeout: 252 seconds]
<moon-child> geist: re loading the wrong build: make a make target for that!
<moon-child> 'make qemu' or 'make qemu BUILD=debug' and it does the right thing
<geist> hmm?
<moon-child> 'geist | only risk there and i've fallen to it many times, is you load the wrong one'
flx has quit [Quit: Leaving]
<geist> well yeah but what do you mean make a make target precisely?
<moon-child> a make target to do whatever 'loading' means. Presumably running an image in a vm
<geist> oooh yeah
<geist> yah totally, that's a good idea
<geist> usually i write at least a script or a make target for that sort of thing, yeah
<geist> though doesn't help when you're jtagging, etc
gog has quit [Ping timeout: 264 seconds]
<heat> find * -name '*.c' -exec sh -c "echo \"\\"{}\\"\", " \; <-- anyone knows why this doesn't work?
<heat> i'm trying to recursively glob all .c files and essentially do echo "\"$filename\","
<klange> find * -name '*.c' -exec sh -c "echo \\\"{}\\\", " \;
<klange> try that
gog has joined #osdev
<klange> though actually
<moon-child> what's wrong with find * -name '*.c' -exec echo {} \; ?
<doug16k> printf "%s\n" ./**/*.cc
<heat> woohoo that works, thanks a lot klange
<doug16k> er, .c
<klange> find * -name '*.c' -exec sh -c 'echo \"{}\", ' \; # this should work too
<heat> in the meanwhile I found -printf which should also work
<heat> find * -name "*.c" -printf "\"%p\",\n"
<heat> moon-child: doesn't wrap it in quotes and doesn't add the ','
<doug16k> oh you want shell quoted? printf "%q,\n" ./**/*.c
<klange> relying on ** globbing is a dangerous game
<doug16k> in source directory?
<klange> but %q is magic and will handle weird-ass filenames, so that's nice
<klange> _but_ it does specifically do shell quoting, so depends on where these quoted filenames are going?
<doug16k> yeah it depends where you use it. for quick one off thing bash glob is less cumbersome than find
<doug16k> test it with echo then throw it at the real thing
isaacwoods has quit [Quit: WeeChat 3.1]
flx has joined #osdev
ahalaney has quit [Quit: Leaving]
gog has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
elastic_dog has quit [Ping timeout: 264 seconds]
<geist> the glob might exceed the command line though
<geist> also fiddling with that here, the ** part of the glob doesn't seem to go more than one dir
<geist> i'm only seeing it do the same thing as */*.c
<geist> maybe a different shell? this is bash
elastic_dog has joined #osdev
<klange> I believe you need an ext option to get it go deeper, which is one of the pitfalls of **
zyxwvu__ has quit [Quit: Leaving]
<johnjay> dumb question but does libera have the same policy of ## vs # channels?
<johnjay> apparently both ##cooking and #cooking exist but the former has more users
<dh`> libera is not different from the way freenode used to be
<klange> Libera's policy docs are a directly clone of the Freenode ones before Lee's changes.
<klange> This was partly responsible for the union of #osdev and osdev.org for the operation of the new channel: we're a group registration with an extern project now, so have claim to single-# channel.
<geist> oh word.
<geist> was wondering that, because the freenode one was kinda grandfathered in, iirc
<klange> Yeah, I wasn't just asking out for agreement on that out of personal interest ;)
<klange> man my typing has gotten so bad lately
iorem has quit [Ping timeout: 252 seconds]
jmpeax has quit [Quit: leaving]
Izem has joined #osdev
iorem has joined #osdev
<gorgonical> For some reason I just thought maybe the plural of array should be arraies, not arrays.
<gorgonical> Wrote it and thought "that doesn't look right"
<heat> you may be onto something here
heat has quit [Ping timeout: 265 seconds]
<johnjay> that reminds me i've never heard someone pronounce the word "trie"
<johnjay> does it rhyme with "tree"?
<Izem> yeah
<Izem> it's supposed to be try technically
<johnjay> i could see it pronounced like "tray"
<Izem> how do you get the A?
<geist> klange: nah that's fine. i was happy to let you drive and be the decider
<geist> i will not besmirch any decisions there because i did not take control of the vehicle
<klange> I wasn't gonna just take the reigns without agreement, that would be... Lee-like ;)
<klange> Should I reflash my t410 with coreboot... it's from the last generation of ThinkPads to ship with a real BIOS.
<geist> well, guess the question is why
<geist> and 'just to play with it' is a perfectly valid reason
<klange> Pretty much. Weighing boredom against the difficulty of the task - I lack all the tools at the moment for chip flashing, and this bios chip requires complete disassembly of the unit to get to!
<kazinsal> Clearly it's for Kuroko as a coreboot payload
knebulae has joined #osdev
<doug16k> should get klange to look at the world economy. probably fixed in a week
<doug16k> would you like info tlb to be like this: https://gist.github.com/doug65536/61f7f2a9298502f28979878a5c6dda10 any feedback?
<bslsk05> ​gist.github.com: gist:61f7f2a9298502f28979878a5c6dda10 · GitHub
iorem has quit [Quit: Connection closed]
Izem has quit [Quit: Connection closed]
<doug16k> the way it says the path is self explanatory enough?
<klange> I think the one thing I'd like out of info tlb is if it could collapse ranges
<doug16k> yeah I did add parameters to force a specific top level page (other process) and give start and end or start and length
<klange> gigabytes of 2M entries all with the same bits? please don't make me scroll through all of that >_>
<doug16k> like: info tlb $cr3 0xfeed0000 0xfeedffff
<doug16k> ah...
<doug16k> coalesce nice contiguous stuff
<klange> 'course probably only useful to a moron like me mapping a bunch of contiguous pages...
<doug16k> yeah I see what you mean. like hexdump saying ** meaning repeat that row
<doug16k> assume next page is next page
<doug16k> what if a random scattering of them have A bit set and most dont. break the coalesce there?
<doug16k> have to right?
<klange> I would say definitely break on flags
<stux> <johnjay> that reminds me i've never heard someone pronounce the word "trie" <-- i've always pronounced it the same as "try", not sure which is correct from wikitionary: https://en.wiktionary.org/wiki/trie
<bslsk05> ​en.wiktionary.org: trie - Wiktionary
<gorgonical> that's how i've pronounced it
<klysm> tree-eh?
<klange> My love for configuration options says "break on discontiguous frame mappings by default, but have an option to ignore them; always break on flags because wtf are you using info tlb for if you didn't care about those"
<klange> stux: My understand is it is actually supposed to be the same as "tree" because it comes from "retrieval", but we've all just agreed that's moronic and "try" was invented because duh.
<klange> understanding*
<gorgonical> klange: that makes my argument for gif being pronounced different from the peanut butter weaker though
<klysm> unless japanese pronunciation were normative, then it would be tree-eh
<doug16k> can't be j
<gorgonical> it's graphics interchange format, not jraphics
<doug16k> exactly
<klange> Truly choosy developers choose PNG anyway.
<gorgonical> apparently in japanese they say it like "try":
<gorgonical> トライ
<klysm> trai
<gorgonical> did my client really just send underscores?
<doug16k> I wanted to call it the goofy encumbered format, too bad it's an e
<klysm> no, it's the "torai" hiragana you sent
<gorgonical> lol okay so extra borked terminal set up
<klange> 1) that's katakana
<gorgonical> classic
<klysm> erm, katakana
<klange> 2) it's more properly a トライ木 or if you want to avoid the issue a プリフィックス木
<klysm> "toraiki"
<klange> > trie という名称は "retrieval"(探索、検索)が語源であるため、"tree" と同じ発音を用いる(リトゥリーヴァル)。しかし、ツリー構造との混同を避けるために「トライ」という読み方を奨励する人もいる。日本語では、「トライ木」という呼び方がほぼ定着している。
<doug16k> font cache misses
dh` has quit [Ping timeout: 264 seconds]
<klysm> get kochi-moncho or something, doug16k
<klysm> mincho*
<doug16k> half the fun of a cache is inserting stuff you aren't going to use again :P
<klange> <'trie' comes from 'retrieval', which would be read as 'tree'. However, to avoid confusion with "tree", some people encourage the use of "try". In Japanese, it is generally called "torai-ki".>
<klange> or something to that effect, I'm not a professional translator or anything, I just live here.
<klysm> thank you for your very pro looking translation
<klysm> meanwhile if you see something you don't recognize, jisho.org (click on "radical") is an excellent way to type new symbols from radicals
<gorgonical> this is now fully off-topic, but what is it about computer science people and japanese?
<gorgonical> there are not very many computer people learning e.g. dutch in their free time
<klysm> well the reason I am learning it is because there is a vowel after every consonant and that sounds really pretty in my hearing
<klysm> retrieval is an interesting word because it contains "ヴ" or "v" which isn't a commonly used letter
<klange> I blame the 80s and 90s: NEC, Sony, Nintendo... today's computer nerds grew up on Japanese hardware.
<gorgonical> I think the first reaction is to blame anime, but increasingly I have foudn that to not really be a motivator for anyone that gets very far
<klange> klysm: In this case the author of the snippet is likely going for a more direct representation of the phonetics, vs. many katakana words that follow certain rules with considerable disregard for how the word actually sounds in its native tongue.
<klysm> yes of course
<gorgonical> e.g. mcdonald's
<klange> Now that one is... complex and regional.
_whitelogger has joined #osdev
<gorgonical> I only know of the difference between makku and makudonarudo
<gorgonical> Gotta fix my weechat
<klange> Ah, then I must introduce you to makudo! because we must shorten everything but no not like _that_!
<klysm> hmm ever hear of makujitsu?
_whitelogger has joined #osdev
<gorgonical> There we are. I can actually read it now. Incidentally is makudo still doing that thing where after 5pm you get extra meat?
<doug16k> you can do that https://godbolt.org/z/GaMqfbs8f (default function pointer parameter to some function)
<bslsk05> ​godbolt.org: Compiler Explorer
_whitelogger has joined #osdev
<doug16k> line 9-15 are almost unreadable
srjek|home has quit [Ping timeout: 244 seconds]
vai has joined #osdev
<klysm> gorgonical: the art of the mac (マック術)
<klysm> doug16k, looks like you're trying to call routines from asm without caring too much what gets called?
<doug16k> where
<klysm> oh actually it looks like you're just doing printf
<doug16k> yeah
<doug16k> that's the limited bootloader one
<doug16k> have to handle utf16 for uefi case, I just slapped it on always utf16 on the godbolt
<doug16k> I hate the debug output in uefi
<doug16k> it makes a mess with terminal escapes that recreate screen updates
<klysm> does the uefi shell present an ansi terminal by default?
<doug16k> yes it puts the screen on com1
<doug16k> keyboard input from com1 too
<doug16k> so if you use api calls that print at a particular place on the screen, it sends all the escapes and moves cursor around
<doug16k> so where does log go then?
<doug16k> going to have to set up a com2 and explicitly write serial output
<doug16k> com1 is unusable, taken, by ovmf
<doug16k> I appreciate what they did but it's bad too
Shikadi` has quit [Ping timeout: 264 seconds]
dh` has joined #osdev
<doug16k> I wonder if I could open com1 and cut off that terminal thing
Pseudonym has joined #osdev
<geist> did that work?
<doug16k> not sure yet, still adding in API decls for serial (I didn't have them yet)
koolazer has joined #osdev
<doug16k> nope, keeps drawing on com1
<doug16k> I printed hello to every com port. (all 2)
<doug16k> I LocateHandleBuffer every com port in the entire universe, HandleProtocol every one, and print "Hello"
nur has quit [Remote host closed the connection]
nur has joined #osdev
<doug16k> works, hello comes out
<doug16k> it's probably printing to the same object as I got for com1
<doug16k> the SIMPLE_TEXT_OUTPUT_PROTOCOL probably is
bradd has joined #osdev
<bslsk05> ​gist.github.com: efi_serial.cc · GitHub
<doug16k> write isn't const correct declaration so I had to do that stupid buffer
<doug16k> I'll modify the official declaration
<doug16k> if write modifies the memory I hope it corrupts their entire hard disk
<bslsk05> ​github.com: edk2/SerialIo.h at master · tianocore/edk2 · GitHub
<doug16k> are they kidding?
cultpony has joined #osdev
<doug16k> they couldn't possibly write that memory, right?
<moon-child> I think 'IN' means const
<moon-child> maybe?
<doug16k> IN is for microsoft style static analyzer
<kazinsal> chances are IN/OUT/OPTIONAL are all defined as blank
<doug16k> sure looks like it
gmodena has left #osdev [Textual IRC Client: www.textualapp.com]
<kazinsal> it's ostensibly for improving self-documentation of function prototypes
gmodena has joined #osdev
<doug16k> you can do some of that in gcc finally
<doug16k> really do it, the kind where it know which parameter is buf size
<doug16k> you tell it
<doug16k> the "access" attribute
<doug16k> hey I should see if I can put some of those in my kernel string.h type stuff
<doug16k> probably already knows the standard ones
<doug16k> with builtin on I mean
<kazinsal> every once in a while I think about going and slapping in/out/optional/nonnull documentation modifiers in function prototypes
<doug16k> it would be so neat if it checked your flow analysis against the builtin access attributes and saw that you violate them and warn you that you might need -fno-builtin-whatever
<moon-child> follow that trail far enough and you end up with dependent types
<kingoffrance> follow that trail far enough you end up with #pragma :)
<doug16k> there is a CONST in EFI declarations
<doug16k> EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage has this parameter: IN CONST VOID *Image,
springb0k has quit [Ping timeout: 264 seconds]
<doug16k> therefore EFI_SERIAL_IO_PROTOCOL.Write buffer not being CONST is a bug?
<doug16k> I wonder what would happen if I made IN mean const
<doug16k> would it go nuts?
<doug16k> would make silly const parameters, like const int thing
<doug16k> yep, if I make IN mean const I get tons of 'duplicate const'
<doug16k> should I make the headers const correct and send a pull request? lol
<doug16k> that's not the only one that isn't const correct
asymptotically has joined #osdev
<doug16k> the spec isn't const correct
<doug16k> those headers are doing the nonsense the spec says
mctpyt has joined #osdev
Lucretia has joined #osdev
<stux> <klange> stux: My understanding is it is actually supposed to be the same as "tree" because it comes from "retrieval", but we've all just agreed that's moronic and "try" was invented because duh. <--- oh that's interesting. And it would actually make sense so that it sounds different enough from "tree" to not make it confusing.
<stux> the japanese stuff i can't read but I understand that there must be some Japanese influence in the design of the structure?
alexander has joined #osdev
<doug16k> funny how you can't really do anything with com port errors as debug log. you going to write it to the log? :)
fwg has joined #osdev
<doug16k> and panic is a bit excessive
_whitelogger has joined #osdev
<doug16k> I had it recursing into itself when it tried to log write error. duh!
<doug16k> not write error. I forget what
<doug16k> just a message about something
iorem has joined #osdev
<doug16k> DUDE
<doug16k> it is writing the screen to all com ports
<doug16k> they can't be serious
<doug16k> I just made the serial code use com2, and it worked, output came out, made chardev socket for com2, used `while true; do nc localhost 7789; done` to keep watching it. then the terminal drawing overwrote stuff and it put the progress bars up
<doug16k> ovmf takes all the serial ports if you use simple text output protocol
<doug16k> ...to draw on the screen
Pseudonym has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<geist2> hah oh no, i can't have my irc client join the channel because needs to be identified
iorem has quit [Ping timeout: 265 seconds]
<Mutabah> Could probably clear that flag... maybe
<Mutabah> (anyone know if there's current spam?)
<geist2> naw. i'm sure it'll turn into a bot spam fest
<geist2> need to just hack up some nickserv stuff
<geist2> anyway yay LK can now irc as well
<doug16k> going to have to have a way to silence the simple text output stuff so I can do debugging run and get a log
<doug16k> they figured they would be so nice and make every com port light up like a christmas tree with terminals that show the screen, then you can just stick it in any port and bingo?
iorem has joined #osdev
<doug16k> the kid in the matrix was wrong. actually there are no serial ports
<doug16k> there is a spoon
<doug16k> was right there
<doug16k> I guess I have no choice but port e9 hack isa-debugcon
<doug16k> or disable screen to get log
<doug16k> hahaha, the irony. the bios bootloader can use serial API abstraction, and it's practically guaranteed to be 16550, and platform independent efi code will use x86 only usa-debugcon
lleo has joined #osdev
<kingoffrance> theres no parallel ports anymore are there?
<air> sure, just not on your computer
<kingoffrance> my computer yes, but yeah :)
gareppa has joined #osdev
GeDaMo has joined #osdev
sortie has joined #osdev
isaacwoods has joined #osdev
dormito has quit [Quit: WeeChat 3.1]
sortie has quit [Quit: Leaving]
sortie has joined #osdev
zegalch96 has quit [Remote host closed the connection]
air has quit [Excess Flood]
air has joined #osdev
<Mutabah> ... why the flood?
<air> me? chanserv/nickserv auto-flood
pretty_dumm_guy has joined #osdev
gog has joined #osdev
<geist> oh i think sortie's irc server went down
<geist> i wonder if i broke it...
<sortie> Oh no
<sortie> The VM is dead jim
<geist> ah that makes sense. it got into a weird state just while i was watchign it on tcpdump
<geist> where it was acking packets i was sendig it but nothign else
<geist> whcih in retrospect makes sense, because there's a MITM there with the qemu user net stack
<geist> it was probably just buffering it up
<sortie> Qemu will listen(2) and accept(2) incoming connections and waiting on the VM to respond
<geist> right, or even ongoing established connections it probably keeps soem amount of buffer
<sortie> Did you do anything out of the ordinary that might've destabilized it?
<sortie> The systemd service is set up to restart it but it doesn't have a watchdog that verifies the VM actually works
<geist> i dont think so. it did hold a connection to irc for a few hours
<geist> but haven't really toched it in the last bit
<geist> the alst thing i saw you do is you bounced your connection
<geist> it was just PING/PONGING for a whiel
<sortie> Yeah had to log in again, don't think it was that
<geist> yah but it seemed to stop responding shortly after
<sortie> Interesting though
<sortie> This is the fun part of hosting infrastructure natively
<sortie> Ah I should've checked if the kernel responds to ping before I restarted it because both 22 and 6667 was unresponsive
<sortie> But if ssh went down, should definitely be a kernel panic
<sortie> It's stuff like this that worries me about making sortix.sortix.org the official version, like my OS might go down
<sortie> So need to build the watchdog infrastructure to check if it's up and restart otherwise
<sortie> Trouble is that these VMs are stateless. They have fresh live cd images rolled on startup every time.
<sortie> I need to get to a level of stability and feature completeness so I want to run a persistent harddisk installation.. and have them come back with minimal filesystem damage in practice fixed by fsck -p after an untimely reboot
<sortie> I don't trust fsck -p to fix untimely reboots in practice, so will need fsck -y for that and pray it works.
<sortie> Additionally the restarting process should also make sure the VM is upgraded to the latest nightly build
<sortie> So a bunch of fun infrastructure work to get a persistent cloud VM stable
Arthuria has joined #osdev
_whitelogger has joined #osdev
_whitelogger has joined #osdev
dormito has joined #osdev
ZombieChicken has quit [Ping timeout: 264 seconds]
tricklynch has joined #osdev
* kingoffrance summons ancient scrollback from ~10 hours ago
<kingoffrance> find ./ -maxdepth 1 -name '*.c' -print0 | xargs -0 -I% -n1 echo '"%"' # im sure that unnecessary use of xargs, i just never bothered with find -exec for some reason, xargs defaults to "echo" and can even -P parallel; -n lets you pick how many inputs go to command
* kingoffrance shoots ancient scrollback zombie in head
tricklynch has quit [Quit: Quit]
<junon> kingoffrance printf is pretty much meant for this.
tricklynch has joined #osdev
tricklynch has quit [Client Quit]
<junon> xargs -0 printf '"%s"'
<junon> oh you probably need a \n in there too
tricklynch has joined #osdev
tricklynch has quit [Client Quit]
tricklynch has joined #osdev
<junon> also, reading through some of the old forum content is a trip down memory lane.
<bslsk05> ​forum.osdev.org: OSDev.org • View topic - Test Beds
<kingoffrance> yeah, true re: printf if you need fancy
<junon> "8 gigabyte hard drive fully dedicated to testing"
<junon> kingoffrance: yeah but you don't need -n1 or -I on the xargs for printf to work, so there's less process spawning overall and xargs will fit as many into the call to printf as possible, speeding up the overall execution time
<junon> -n1 means "run the command once for every input" instead of the default behavior where xargs supplies the command with as many inputs as possible before exceeding the maximum command line length
<kingoffrance> true, i usually do such things to meta generate a script to do real work
<junon> yeah
<kingoffrance> just a way to nab filenames
<junon> FWIW I never use find's -exec or anything like that - the biggest reason is that it's not consistent across platforms >.>
<junon> or, well, some of the other flags aren't at least.
tricklynch has quit [Client Quit]
tricklynch has joined #osdev
v4skie has joined #osdev
<kingoffrance> i dunno, seems some ppl avoid xargs i just find it puzzling
tricklynch has quit [Client Quit]
tricklynch has joined #osdev
v4skie has quit [Client Quit]
tricklynch has quit [Client Quit]
<GeDaMo> I forget xargs exists :|
tricklynch has joined #osdev
tricklynch has quit [Client Quit]
tricklynch has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
tricklynch has quit [Client Quit]
tricklynch has joined #osdev
<kingoffrance> i never use printf command but i am very much in favor of simple wrappers around lib functions, in the sense of give shell more options. that seems a "pattern' but ive never seen a name for it. a little hairy maybe, but if you know the invocation at one level, you somewhat know the other
<kingoffrance> exposing innards, versus hiding away
<kingoffrance> in a crude way, ffi or rpc-ish
<kingoffrance> gives shell or whoever else a simple way to invoke
<kingoffrance> POLA sort of thing even
_whitelogger has joined #osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
fwg has joined #osdev
gareppa has quit [Quit: Leaving]
janemba has joined #osdev
<klange> Hm, I set up a thing to send an IPI when a thread becomes available to schedule, which is supposed to wake sleeping APs, and it works in QEMU but not on the thinkpad...
ahalaney has joined #osdev
Mids_IRC has joined #osdev
Mids_IRC has left #osdev [#osdev]
Mids_IRC has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
<Mids_IRC> Hello. I was looking over documentation of sysenter & sysexit. It's said that sysenter clears the IF flag to make sure the ring 0 code isn't interrupted, but how should IF be set upon exiting?
<Mids_IRC> (Without causing a race condition by having with `sti \ sysexit`
<Mids_IRC> Excuse the grammar
<gog> RFLAGS should be restored after sysexit
<gog> although, let me examine the docs
<Mids_IRC> I could not find such a thing on sysexit, only on sysret
tricklynch has quit [Ping timeout: 264 seconds]
tricklynch has joined #osdev
tricklynch has quit [Read error: Connection reset by peer]
tricklynch has joined #osdev
<gog> ok. sorry, i haven't abandoned helping you, i just had to grab a snack
<gog> digging in now
_whitelogger has joined #osdev
<Mids_IRC> Lol, it's okay. I'm in no hurry
tricklynch has quit [Ping timeout: 272 seconds]
Shikadi` has joined #osdev
<gog> Mids_IRC: ok, i am finished with my research and i discovered that linux does sti; sysexit because there is a single instruction window where an interrupt will not happen
<gog> so there is no race condition
<Mids_IRC> I see. That's pretty quirky
<gog> yeah
<gog> curious that the intel or amd manuals don't mention this fact
<Mids_IRC> Thanks for the help, I'll be using it shortly
<gog> the intel manual does mention the behavior of sti though
tricklynch has joined #osdev
srjek|home has joined #osdev
dormito has quit [Quit: WeeChat 3.1]
dormito has joined #osdev
KidBeta has joined #osdev
dennis95 has joined #osdev
_whitelogger has joined #osdev
KidBeta has quit [Ping timeout: 264 seconds]
riposte has quit [Ping timeout: 252 seconds]
iorem has quit [Quit: Connection closed]
riposte has joined #osdev
pretty_dumm_guy has joined #osdev
springb0k has joined #osdev
bas1l has joined #osdev
pg12 has quit [Ping timeout: 252 seconds]
basil has quit [Ping timeout: 264 seconds]
pg12 has joined #osdev
bas1l is now known as basil
Bonstra has quit [Quit: Pouf c'est tout !]
srjek|home has quit [Ping timeout: 264 seconds]
tricklynch has quit [Ping timeout: 272 seconds]
_whitelogger has joined #osdev
tricklynch has joined #osdev
alexander has quit [Ping timeout: 264 seconds]
alexander has joined #osdev
alexander has quit [Client Quit]
alexander has joined #osdev
tricklynch has quit [Ping timeout: 265 seconds]
tricklynch has joined #osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
dennis95 has quit [Quit: Leaving]
fwg has joined #osdev
elastic_dog has quit [Ping timeout: 265 seconds]
Oli has quit [Quit: leaving]
gareppa has joined #osdev
Oli has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
gareppa has quit [Quit: Leaving]
immibis has quit [Remote host closed the connection]
Vercas has joined #osdev
<Vercas> Sup nerds.
elastic_dog has joined #osdev
* gog nerds on the floor
kwolf has joined #osdev
<Bitweasil> No... gog, go clean those up!
<Bitweasil> (not sure if the "Nerds" candy, little tiny hard tangy candies, exist there)
<bslsk05> ​twitter: <AsahiLinux> Hello, world from macOS running on the m1n1 hypervisor! ␤ ␤ With one blazing fast efficiency core, and all graphics MMIO logged via USB! https://pbs.twimg.com/media/E2aP-bbVoAMEy3H.jpg
<Bitweasil> (a box of those spilled on the floor is a royal pain)
<Bitweasil> (my son tends to do it way more than I care for)
<gog> i uh
<gog> idk i think so
<gog> i haven't had those in awhile
immibis has joined #osdev
zyxwvu has joined #osdev
Mids_IRC has quit [Ping timeout: 264 seconds]
tricklynch has quit [Ping timeout: 264 seconds]
tricklynch has joined #osdev
dutch has quit [Quit: WeeChat 3.1]
Mids_IRC has joined #osdev
zyxwvu has quit [Ping timeout: 264 seconds]
tricklynch has quit [Ping timeout: 244 seconds]
tricklynch has joined #osdev
divine has joined #osdev
kwolf has quit [Quit: Konversation terminated!]
divine has quit [Client Quit]
catern has joined #osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
cultpony has quit [Quit: ZNC 1.8.2 - https://znc.in]
cultpony has joined #osdev
cultpony has quit [Remote host closed the connection]
cultpony has joined #osdev
Mids_IRC has quit [Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC]
cultpony has quit [Client Quit]
cultpony has joined #osdev
andydude has joined #osdev
divine has joined #osdev
<andydude> hi divine
* gog meows
* kazinsal headpats
* gog purrs
smeso has joined #osdev
andydude has quit [Quit: andydude]
dutch has joined #osdev
andydude has joined #osdev
<radens> hello, gdb remote protocol question, what is the packet type which corresponds to sending data to a debugee's stdin? stdout is "O" as in "$OhexEncodedData#checksum", but I don't see one for the other way
mctpyt has quit [Ping timeout: 264 seconds]
Izem has joined #osdev
qookie has joined #osdev
<dh`> surely you mean receiving _from_ stdin?
Arthuria has quit [Ping timeout: 264 seconds]
pretty_dumm_guy has joined #osdev
heat has joined #osdev
amj has joined #osdev
amj has quit [Changing host]
andydude has quit [Quit: andydude]
gog has quit [Ping timeout: 265 seconds]
<radens> Yeah the debug stub will be receiving from and gdb is sending to. Directions are confusing
andydude has joined #osdev
_whitelogger has joined #osdev
_whitelogger has joined #osdev
_whitelogger has joined #osdev
fwg has joined #osdev
lleo has quit [Ping timeout: 272 seconds]
KREYREN has joined #osdev
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
pretty_dumm_guy has joined #osdev
KREYREN has quit [Quit: Leaving]
BUZZ_2_FREENODE has joined #osdev
BUZZ_2_FREENODE is now known as Guest1606
pretty_dumm_guy has quit [Client Quit]
pretty_dumm_guy has joined #osdev
ozxui has joined #osdev
GeDaMo has quit [Quit: Leaving.]
asymptotically has quit [Quit: Leaving]
dormito has quit [Quit: WeeChat 3.1]
seds has quit [Changing host]
seds has joined #osdev
andydude has quit [Quit: andydude]
<seds> anyone seen freenode's osdev topic?
<kazinsal> no, did they do a takeover on us
<seds> yeah
<kazinsal> cunts
<kazinsal> some people are just a waste of oxygen
<seds> wait, you mean freenode's takeover, right?
<kazinsal> yeah
<seds> and seems like they... banned everyone
<kazinsal> they've been +b-ing ops on channels and stuff
<seds> > #osdev This channel has moved to ##osdev. The topic is in violation of freenode policy: https://freenode.net/policies
<bslsk05> ​freenode.net: The Policies - freenode
<seds> seems that every channel that has "Libera.chat" is in violation of freenode's policy
<froggey> pretty much
<froggey> I saw it happen to a channel that had "sister channel on libera" in the topic, not even "we have moved to libera"
<kazinsal> maybe andrew lee's bitcoin coal emissions will choke him in his sleep
<kazinsal> god willing
<bslsk05> ​twitter: <lattera> #Freenode calling out cancel culture after cancelling hundreds of legitimate channels. https://pbs.twimg.com/media/E2VJw2LXoAI6qMP.png
Izem has quit [Quit: Connection closed]
Guest1606 has quit [Remote host closed the connection]
BUZZ_2_FREENODE has joined #osdev
BUZZ_2_FREENODE is now known as Guest5362
<heat> it redirects to ##osdev now
Guest5362 has quit [Remote host closed the connection]
BUZZ_ON_FREENODE has joined #osdev
BUZZ_ON_FREENODE has quit [Remote host closed the connection]
BUZZ_ON_FREENODE has joined #osdev
andydude has joined #osdev
alexander has left #osdev [Goodnight o/]
<seds> yeah
<jfu> geist: wow i just read fuchsia got its first official release, congrats!
<geist> yay thanks
<geist> yah it's starting to roll out
<geist> actually OTAing the device from linux to fuchsia. not sure that's ever been done anywhere
<kazinsal> whoa, yeah, that's new
<geist> yah as someone said it's kinda like swapping out the drive train while barreling down the highway without the family in the car noticing
dormito has joined #osdev
<heat> the biggest downside of my name is that I sometimes get mentioned randomly
srjek|home has joined #osdev
Hatz has joined #osdev
ahalaney has quit [Remote host closed the connection]
ajhalaney has joined #osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
<Bitweasil> geist, didn't know you guys had video of it up! https://www.youtube.com/watch?v=B_1bAnLqlMo
<bslsk05> ​'Saudi's Again Changing Wheels Tyres while driving!' by Imran shaik (00:04:53)
<doug16k> should I add "0.0.0.0 freenode.com www.freenode.com" to my /etc/hosts file? :D
<bslsk05> ​redirect -> freenode.net: freenode
<Bitweasil> I just want to know what kind of drivetrain abuse allows for that... maybe individual brakes on the left side?
<kazinsal> a more constructive and entertaining thing would probably be to call the EFF and see if we can sic them on freenode
<Bitweasil> I guess an open diff and riding the brakes would work.
ozxui_ has joined #osdev
<Bitweasil> Hrm. No, they rotate it while putting the front back on.
<Bitweasil> I'm guessing a few drivetrain mods.
<doug16k> Bitweasil, how can they be so stupid?
<doug16k> something wrong with them
<Bitweasil> Bored, sure. Doesn't look terribly stupid to me, as long as the driver's any good.
<kazinsal> having money in saudi arabia is a license to produce the world's most baffling video content
ozxui has quit [Ping timeout: 272 seconds]
<Bitweasil> Indeed.
<doug16k> ya right, the guy standing on front suspension will be dismembered if it fell onto wheels
<Bitweasil> ... "as long as the driver's any good."
<kazinsal> OH MY GOD YALL
<Bitweasil> They all clearly have a lot of trust in that driver.
<Bitweasil> And said driver appears to be, in fact, competent at the task.
<Bitweasil> kazinsal, you just got gold star verified?
<kazinsal> Remember how a number of years ago there was this reddit fork for "free speech" people who were mad they couldn't post teenagers in skimpy clothing etc
<kazinsal> Voat
<bslsk05> ​www.hummingfluff.com: www.hummingfluff.com | 520: Web server is returning an unknown error
<Bitweasil> ... no?
<kazinsal> Okay well
<kazinsal> Turns out their irc TLS connection has the same cert as Freenode's new TLS cert.
<Bitweasil> ok?
<kazinsal> Freenode is now owned by the same guy who runs an alt-right pedophile den
<Bitweasil> [citation needed]?
<kazinsal> openssl s_client -connect irc.voat.co:6697 -showcerts -servername irc.voat.co </dev/null 2>/dev/null | grep "Server certificate" -A 1
<kazinsal> Returns *.freenode.net for me
<CompanionCube> kazinsal: i mean
<CompanionCube> the domain's been doing that for a number of days
<CompanionCube> irc.bitcoin.com too
BUZZ_ON_FREENODE has quit [K-Lined]
<kazinsal> CompanionCube: Amazing how brazen and stupid these people are
<CompanionCube> apparently andrew reused IPs from one of his previous IRC adventures
<CompanionCube> iirc it's the 'tower of chats' one
<Bitweasil> K, it's a Let's Encrypt cert.
<Bitweasil> IPs are different for freenode and voat.
<bslsk05> ​www.letstoc.com: Tower of Chats
<bslsk05> ​web.archive.org: Tower of Chats
<kazinsal> There's almost certainly a horde of user-genereated illegal materials on Andrew Lee's servers now lmao
<Bitweasil> Ok.
<Bitweasil> I've heard reasonably backed claims that the bitcoin full blockchain contains illegal stuff too.
<Bitweasil> At least in some jurisdictions, if you look right...
<kazinsal> Imagine if Freenode disappears one night because the owner keeps reusing shit from the time that he gave voat safe haven lmao
sm2n has quit [Quit: Leaving]
<CompanionCube> kazinsal: it might well disappear, but it won't because of reused things
sm2n has joined #osdev
Arthuria has joined #osdev
<Bitweasil> Opsec is hard.
<Bitweasil> Especially if you don't care.
ozxui has joined #osdev
<CompanionCube> note to would-be administrators: make sure the legal entity owning your domain won't get dissolved by the government
<kazinsal> And people who should care about opsec tend to be the worst at it
<Bitweasil> I don't think that's a fair statement at all.
<kazinsal> Remember when the silk road got shut down because the feds pretended to be an arguing married couple in a library
<CompanionCube> filing paperwork is not *that* difficult, you'd think he'd do it.
<Bitweasil> If you're at the point where opsec matters, you probably have intelligent adversaries.
<Bitweasil> Most people don't even try for opsec.
<heat> kazinsal, yes that was a fucking genius operation
<Bitweasil> DPR was... a bit special.
<clever> Bitweasil: one of the crypto-current chains i work with, had some performance problems when people began encoding whole damn jpeg's into the destination address of a transaction
<heat> they caught him with his pants down
<Bitweasil> I'm still stunned that he didn't do what his name implied and hand the thing off.
<heat> or his laptop lid up, whatever :P
<clever> i had written a tool to find and display everything they had added, and luckily nothing too nasty turned up
<Bitweasil> Catchain?
<kazinsal> I'm pretty sure they took out a couple pedophile rings with malicious javascript because the admins were too stupid to turn javascript off in the Tor browser
* Bitweasil pulls out the proper OTP to convert cat pictures into something less appropriate.
ozxui_ has quit [Ping timeout: 264 seconds]
<Bitweasil> kazinsal, yeah, and browsers leak horribly.
<Bitweasil> I think for a while webrtc would ignore proxies and such.
<kazinsal> Yeah, the whole web stack is basically a pile of security holes
<Bitweasil> All of modern computing, really.
<clever> one of the games i played online, would submit the .innerHTML of itself back to the admins
<clever> so they could review it for mods that are against the rules
<Bitweasil> A pile of security holes, teetering on a tower of complexity, built on top of leaking processors.
<heat> reject fast calculator
<heat> become monke
<clever> the problem, is that the admin would just render that html, with admin cookies
<clever> so the illegal mods, now have admin privs :P
<Bitweasil> clever, ouch. Lol.
<Bitweasil> heat, there are going to be a lot of random gentleman's farms in the decades to come.
<Bitweasil> Run by former computer people.
<doug16k> cookies are for trying to choke people that came down your chimney in December
<doug16k> not web pages
<heat> what's a gentleman's farm and why does that sound like an euphemism for farm strip clubs
<kazinsal> There is a 66-page thread in yospos (at 40 posts per page) called "bump this thread every time you just want to leave tech behind and wander off into the wilds"
<kazinsal> It gets bumped a lot.
<Bitweasil> "I have enough money that I don't care if this makes any money, and I'm doing it because it doesn't involve any computers more complicated than some microcontrollers."
<kazinsal> heat: a strip club that employs farmers-daughter stereotypes from flyover states. brilliant! let's go into business
<Bitweasil> That sounds like *way* more drama than some chickens, goats, and a cow or three.
andydude has quit [Quit: andydude]
<heat> it's got drama, it's got C A S H, baby!
<kazinsal> dirty strip club ATM dollaz
<Bitweasil> Yeah, but it probably also has a burning ring of fire, which is a bad thing in that context.
<heat> we just need a funny reality show for it and we have ourselves a cash cow
<Bitweasil> I'm good, no interest in dealing with a strip club.
<heat> not a strip club, a strip farm
<heat> totally different
<doug16k> is there really no way to printf format a char16_t* or char32_t* ?
<Bitweasil> Have you seen the various "Farm Series" shows out of the UK with older farms?
<heat> Bitweasil, no
<doug16k> I thought there would at least be a gnu extension
<Bitweasil> doug16k, unicode stuff? Should be able to just %c%c%c%c them with the fragments, but... you'd have to break it up by byte.
<heat> doug16k, I would guess no because the C library is horrible
<Bitweasil> heat, t
<Bitweasil> er
<Bitweasil> t
<Bitweasil> ... *stabs*
<bslsk05> ​en.wikipedia.org: BBC historic farm series - Wikipedia
<Bitweasil> Try that.
<kazinsal> doug16k: convert from char32_t to wchar_t then send it through wprintf I guess
<heat> have you noticed that inside stdio there are way different styles for different stuff
<kazinsal> libc was grown, not designed
<heat> fwrite has the FILE * as the last argument, fseek has it as its first argument
<heat> rewind is named rewind because they forgot the f
<heat> kazinsal, doesn't mean you can't keep consistency
<moon-child> doug16k: there's %ls for wchar_t*
<heat> i can't think of any function in POSIX that takes the fd first, and that was also grown
<doug16k> I could type pun char16_t* to wchar_t* in EFI or char32_t* to wchar_t* elsewhere in the printf arguments
<doug16k> yeah, %S also works for back compat
<doug16k> but wchar_t could be 16 or 32 bit. in efi it is 16
<doug16k> and everything is wchar_t
<doug16k> it's windows, right?
<moon-child> yeah. But you don't wanna do a ton in efi. Windows same thing
<heat> wchar is useless
<heat> change my mind
<moon-child> so if you can just guarantee you're living in a 4=sizeof wchar abi, no problem
<heat> the only times you want to use wide chars are when you really need to know the wideness of wchar
<doug16k> my bootloader code has to work in both 16 and 32 bit wchar_t
<doug16k> heat, yeah
<heat> or, it's windows
<heat> you don't need to care about the wideness of the arguments to CreateProcessW for example
<heat> (but that's just a bad design)
<doug16k> and it's weirder than that. in 32 bit bios boot it uses utf8 everything, and in efi it uses utf16 everything
<doug16k> I do mean utf8. I fully OCD'd the conversions
<moon-child> heat: on windows midipix provides utf8 versions of win32, and does the conversion for you
<doug16k> and utf16 handles surrogate pairs
<heat> moon-child, I remember reading somewhere that windows is slowly embracing utf8 more and more
<doug16k> you have to handle utf16 regardless because of iso9660/joliet and fat32
<heat> yeah
<doug16k> ATA has some too IIRC
<heat> it's a shame that EFI took that route
<heat> now everyone's stuck with horrible garbage strings
<doug16k> yeah, dragged utf16 way further into the future
<doug16k> it is better for some languages though
<doug16k> that's what I do to console myself when I get annoyed with it :D
<doug16k> tell myself that :D
<doug16k> I was told that some languages have stuff that is 2 bytes in utf16 but 3 in utf8
<heat> " If the ANSI code page is configured for UTF-8, -A APIs operate in UTF-8. This model has the benefit of supporting existing code built with -A APIs without any code changes."
<doug16k> I didn't find an example for myself though
<bslsk05> ​docs.microsoft.com: Use the Windows UTF-8 code page - UWP applications | Microsoft Docs
<heat> there it is
<kazinsal> I should write a UTF16ToSomethingUsable() function that increments a "why_the_fuck" counter every time it's called
<heat> the win32 api supports native utf8 now
<Arthuria> That's because the entire world doesn't write in simple ASCII English. I've seen EFI shells and UEFI BIOS with Chinese/Japanese chars, hence why you need UTF16/32 support.
<klange> qemu may have literally fixed the pckbd race yesterday
<klange> just before I filed the ticket
<doug16k> yeah, every codepoint from 0x800 to 0xFFFF is longer in utf8 than utf16
<heat> sorry but localising everything is a mistake
<doug16k> 0xDC00-DFFF range doesn't really count - reserved for surrogate pairs
<heat> anything that's not exactly user facing(read: technical) shouldn't be translated
<doug16k> er, 0xD800-0xDFFF
<heat> what do you gain really?
<heat> what's a software/hardware engineer that doesn't know english?
<klange> Grandma needs to be able to read the error message to the suport technician.
<doug16k> really? wow. I only speak English and for some reason, I am happy to make programs handle every language
<doug16k> my joke is "you can paste a zip file in the username field, and I could make it work"
<heat> one thing is a program, but a kernel or firmware?
<heat> things like localised error/log messages already cause enough grief
<doug16k> program should be able to handle characters in its sleep
<doug16k> unlimited alphabet. bring it on
<kazinsal> I have worked with enough engineers that, despite speaking what appears to be english, clearly cannot read or write the language
Raito_Bezarius has quit [Changing host]
Raito_Bezarius has joined #osdev
<Arthuria> A lot clearly in China, or very poor English. The company I work for, has teams in Taiwan, there English is terrible, source code comments for stuff in Chinese, yeah it's there job to maintain so whatever, but still.
<kazinsal> see, the real solution is to just sedate your boomers
<heat> Arthuria, what happens if you need to touch that code?
<Arthuria> Variable names in Chinese, and the IDE find is completely broken lmao. Because the find only handles ASCII.
<Arthuria> Liability is on them to fix, if an issue comes up. And some PM or related who has better English, has to explain what they need to do, how they verify a fix and what not. There English is not level 0, they often know the basics
<Arthuria> But in there local teams they speak and write in their own local lang
<kazinsal> if someone ever handed me code that was documented in a different language I'd start looking on linkedin for a new job
<kazinsal> or I'd shove all the comments into google translate and commit whatever it spits out
Hatz has quit [Ping timeout: 265 seconds]
<heat> lol
<j`ey> :/
<heat> i would never ever ever write any code/comments in non-english
<doug16k> in js you can name variables θ Φ ρ etc, saw some great circle distance code being cute once
<heat> and english is not my first language
<heat> doug16k, ahhhhhhhhhhhh
<kazinsal> mathematicians should not be allowed near programming languages
<heat> that's the most webdev thing I've ever heard
<Arthuria> I don't speak Chinese, but it's happened. Here's a screeni of a project file, I had to deal with a few months back. It happens. https://i.imgur.com/wjVaDgL.png
<heat> var 😛
<kazinsal> yep, that is in need of some google translate
<Arthuria> However the above is translatable, when crap like this occurs and somehow the codepage has messed up. You're doomed https://imgur.com/a/XmnOOrU
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
qookie has quit [Ping timeout: 264 seconds]
<kazinsal> Mmm, mojibake
<klange> delicious fried tofu
<heat> is there a way to get routes that don't have an mtu of 1500?
<heat> i tried traceroute'ing a bunch of websites but I only get that (boring) value
<bslsk05> ​gitlab.com: pckbd: don't update OBF flags if KBD_STAT_OBF is set (ff6e1624) · Commits · QEMU / QEMU · GitLab
<j`ey> klange: is that coincidental? or because of your report
<klange> Coincidental.
<heat> the qemu foundation is reading klange's brain
<heat> those damn 5g towers
<klange> Or they're reading my IRC messages, I've been complaining about this one for a while.
<j`ey> klange: lol thats a cool coincidence
ajhalaney has quit [Quit: Leaving]
<doug16k> heat, my mtu is 1492
<doug16k> just set it in your router
<doug16k> PPPoE takes 8 bytes
<kazinsal> yeah for the most part everything is 1500 now
<doug16k> you mean even on pppoe?
<kazinsal> I mean once you're past the customer premises
<doug16k> ah. if you say so about network thing, I believe it :P
<kazinsal> big optical trunks use SDH, which either uses 810 octet frames or 2430 octet frames
<kazinsal> and you can think of the 810 octet frames as sort of like a DS0 compared to the 2430 octet frames being a DS1
<kazinsal> SDH frames are a bit bizarre in that they're not really arranged linearly like ethernet frames
<kazinsal> they're arranged in columns and rows, with frame and link structure overhead and error correction information in the first nine columns and then the rest dedicated to payload
<doug16k> it creates the same problem if you just set 1492 in your router, right? it'll force it to fragment, and is just as good repro as lower MTU all the way at remote server?
<kazinsal> yeah if you have your MTU set to 1492 you're going to see fragmentation or an adjusted MSS
ozxui has quit [Quit: Lost terminal]
<kazinsal> MSS adjustments are the key to dealing with non-1500 byte MTUs
<kazinsal> a lot of stuff doesn't really "renegotiate" path MTUs well so if 1500 byte MTUs weren't acceptable we'd see a lot more core networking failures
<kazinsal> it's really just with eg. PPPoE and VPNs where you start to get funky things happening
<doug16k> ikr? 3/4 of the work of networking specifications is figuring out how to describe it so people won't make ridiculous implementations
<kazinsal> it's technically incorrect to assume that you can send a DF-bit 1500 byte IP packet from point A to point B but in the overwhelming majority of cases it works
<doug16k> maybe I should get a shirt made: "I am so old my MTU was 576"
<springb0k> Some of us had an MTU of 64. And we liked it.
<doug16k> not that old
<kazinsal> Fun fact: the 576 byte MTU is equivalent to two T1 frames
<kazinsal> s/frames/superframes/
<kazinsal> (T1 framing is a fucking nightmare; what you would expect to be frames are actually called superframes, and "frames" are a single octet from each channel plus a framing bit)
<springb0k> That's TDM for you.
<kazinsal> And that doesn't go into the implications of bit robbing.
<kazinsal> So a T1 is 24 DS0s which means that a T1 frame is 24 bytes + a framing bit.
<kazinsal> A superframe is 288 bytes + 12 framing bits.
<kazinsal> An extended superframe is two superframes if all channels are used for data.
<springb0k> Unless your T-1 is a PRI.
<kazinsal> Rate of frames never changes -- it's always eight kilohertz -- but your bandwidth changes based on whether or not you have robbed-bit signalling enabled.
<kazinsal> Every sixth frame in a superframe or ESF has its eighth bit repalced with signalling information if RBS is on.
<kazinsal> This is fine for digital voice because it basically means you have five 8-bit frames and then one 7-bit frame, which at 8 KHz is absolutely negligible data loss.
<kazinsal> Buuuuut for digital *data* it doesn't work.
<kazinsal> As far as *why* you would do this, it let AT&T multiply their existing trunk capacity by 12 without running new trunk lines.
<kazinsal> The same number of wires needed for two analog phone lines can run a T1.
<kazinsal> And the T1 will carry clearer voice than the analog lines will.
ozxui has joined #osdev
<heat> i can't set the mtu on my router because I don't have admin
<heat> fuck :(
<kazinsal> And, most importantly, you don't need any expensive (for 1960) frequency-division multiplexing gear
<kazinsal> TDM is cheap! Unfortunately for us modern folk, it also baked a whooooole bunch of legacy cruft into our networks.
<kazinsal> Fun fact: You can hear robbed-bit signalling on a completely clear line!
<kazinsal> It sonuds like a very faint 1333 Hz tone.
<klange> hm, unreliable booting in qemu 6 (not just the git build) for toaru32... should I bother debugging that when this is going away soon...
<klange> even my loader itself randomly fails after the menu but before it's printed loading messages
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<doug16k> heat_, http://174-138-201-201.cpe.distributel.net:8000/isoproj.html should be 1492 MTU right now
<bslsk05> ​174-138-201-201.cpe.distributel.net <timeout>
<doug16k> oh wait
<kazinsal> condolences on being forced to use distributel
<bslsk05> ​174-138-201-201.cpe.distributel.net: Isometric transformation test
<doug16k> :)
gog has joined #osdev
<doug16k> reminder: point is PMTU on that should be 1492
<heat_> yah tracepath agrees
<heat_> doug16k, is this thing permanent?
<heat_> i might use it in the future if it is
heat_ is now known as heat
<doug16k> I have it up a lot
<doug16k> I'll throw it in a screen session at boot if it helps at all
<doug16k> usually I have doug16k.no-ip working so it follows me even
<doug16k> router supports updating it automagically
<doug16k> doug16k.ddns.net should work
<heat> looks dead
<kazinsal> it's kinda disappointing that we still have PMTU issues with PPPoE in 2021
<kazinsal> you would expect manufacturers to remember that jumbo frames exist for this kind of reason
<heat> i'm getting 100% packet loss to it
<klange> EIP=000084c9 hm that's still me, this isn't halted, are we spinning on ATAPI... I don't have a symbol map for the loader >_>
<kazinsal> hmm. should I write a bootloader, try to jam an ethernet hub into 512 bytes, or play world of warcraft after I finish up work and smoke a bowl... decisions decisions
<doug16k> heat, port 14500?
<heat> I just tried ICMP
<doug16k> ah
<heat> yeah 14500 works
<heat> is ICMP blocked on your network or something?
<heat> that sounds troublesome
<doug16k> hmm maybe. let me look
<doug16k> my router settings think I am kazinsal
<heat> we are all kazinsal
<kazinsal> I AM BECOME MANY
<klange> ah yeah this is getting boned in ata_device_detect... hm...
<heat> kazinsal can into multicast
fwg has joined #osdev
<kazinsal> I need to find the manual for irssi and figure out what button to slap so it pings me for nick mentions that aren't at the start of the line
<clever> [root@amd-nixos:~]# ping angeldsis.com -c 10 -s 1472 -M do
<clever> thats strange, according to wireshark, this is creating 1514 byte packets
<kazinsal> ah, there we go
<clever> ah, the ethernet header is 14 bytes extra
<heat> clever, ethernet's mtu is 1514 bytes
<kazinsal> clever: plus four bytes of CRC at the end
<kazinsal> but those get stripped out by the NIC usually
<heat> (including the header)
<clever> yeah, so the limit is 14 bytes of ethernet header, 1500 bytes of ethernet payload (ip+more), and 4 bytes of ethernet crc
<kazinsal> so a full standard length ethernet frame is 1518 bytes
<kazinsal> a full tagged ethernet frame is 1522 bytes
<clever> oh right, my internet comes in over a tagged vlan
<kazinsal> and a full double-tagged frame is 1526
<clever> somehow, the above didnt exceed any MTU's
<kazinsal> yeah, as far as IP is concerned it's still only 1500 bytes
<heat> yah because it's almost always 1500
<kazinsal> the dot1q and q-in-q stuff is a layer 2 problem, not a layer 3 problem
<clever> 802.1q i believe is what i have
<kazinsal> yeah, you don't see a lot of q-in-q stuff except inside big service providers
<klange> did anyone ever figure out a way to get gdb to properly debug a 32-bit remote that's speaking 64-bit packets or should I just rebuild this qemu with the i386-softmmu target if I want to do this...
<clever> kazinsal: hmmm, but tcpdump is still stripping the 802.1q headers
<doug16k> klange, i386 is best
<klange> alright >_>
<doug16k> I can make it partially work but you have to use 64 bit initial executable, and you still can't see locals, only break/step
<kazinsal> clever: chances are the dot1q tag isn't even reaching the interface tcpdump is running on
<kazinsal> something is stripping it out before it reaches you
<klange> I suspect both of these are issues are from my shoddy ATAPI drivers.
<clever> kazinsal: i ran it on the main interface, but i had had issues with linux stripping them before
<clever> it needs a special flag to capture them
<klange> The EFI loader always gets to the kernel, but it's blocked on a port read - would like that stack trace to see where it is :)
<kazinsal> yeah at least on e1000-type NICs you turn on a VLAN Enable flag and now the NIC doesn't strip out the dot1q stuff (and usually also helpfully copies it to the RX descriptor)
<clever> kazinsal: pretty sure the tag is reaching linux, because i have 3 vlans on that side, but it gets stripped before reaching tcpdump
<clever> 03:03.0 Ethernet controller: Intel Corporation 82545GM Gigabit Ethernet Controller (rev 04)
<kazinsal> sounds about right
<bslsk05> ​github.com: dgos/build-crossgcc-gdb.patch at master · doug65536/dgos · GitHub
<klange> ugh I don't even build gdb
<klange> well I guess I do for the cross toolchain but I don't use that build
<doug16k> you should use cross gdb to attach to qemu
<klange> bah, my host gdb is perfectly adequate :P
<doug16k> I also patch gdb to not try to use the top of stack for code injection
<klange> alrighty, i386 qemu built from the current git...
<doug16k> your system one probably already does that part
<klange> Build SDL and Quake for toaru64 is probably a better use of my time than debugging toaru32's ATAPI issues in newer QEMU.
<klange> now where did I put my 32-bit OVMF...
<doug16k> klange, -trace 'ide*'
<klange> `~/Downloads/ovmf-ia32.bin` of course
<doug16k> might tell you something
<klange> port=0x177 oh right I'm dumb, I didn't even need the stack trace, that's clearly an i/o reg for ATA
<klange> ugh, do I fix this horrid driver so toaru32 can at least continue to skate along, or do I just ignore it, write ahci drivers for toaru64, and move on...
<doug16k> if it's not even bus master ide I'd say ya screw that crap and go straight to ahci with proper DMA and command queue
<catern> i'm trying to test my network stack against Linux and it's (AFAICT) just ignoring my packets; I see them in tcpdump but it doesn't seem to bother to actually deliver them to the Linux sockets I have open, any suggestions on how to trace why Linux is ignoring my packets?
<clever> catern: compare your packet to one sent by another linux machine, and make it match as closely as possible?
<klange> I'm sorta purplexed on the bootloader ATAPI driver, that should be brute-force polling and it shouldn't have any opportunities for issues, maybe qemu broke something with legacy ATAPI.
<catern> clever: I'd prefer something more like "run this command to make Linux print verbose logs on what it does with each packet" :)
<heat> catern, did you try wireshark?
<klange> Loader is kinda ugh, but at least with the EFI builds it uses OVMF and you can turn off the ATA/ATAPI drivers entirely from the menu.
<doug16k> catern, are you trying to send packets to the qemu host? good luck with that
<catern> doug16k: I'm sending them to a TUN/TAP device actually
<catern> (I'm not actually running in qemu so I can't actually answer that question with "yes", but basically)
<kazinsal> aight, bowl smoked, what's next on the agenda
<doug16k> from what then
<klange> I wonder if this is just lazy detect code with no timeout failing to get a response from the secondary slave or something...
<klange> Thankfully with a calibrated TSC as the main timing source misaka has way better opportunities to implement timeouts.
<catern> doug16k: a regular Linux process with a userspace network stack
<catern> (i mean, it can't talk to anything, because I can't get Linux to respond to the packets I send over the TUN/TAP, so is it really a network stack...)
<doug16k> kazinsal, cancel WoW account
<geist> catern: is the tun/tap bridged with the linux host?
<kazinsal> doug16k: but TBC classic launches on saturday
<geist> if it isn't you're just talking to the void
<klange> kazinsal: Write a Python clone, then obsess over it for three months.
tricklynch has left #osdev [Leaving]
<kazinsal> ah, I see we're doing linux networking. might duck back out and smoke another bowl
<heat> how about WoW64?
<doug16k> heat, that too
<catern> geist: I have a listening socket on the TUN device, but Linux doesn't seem to be delivering my SYNs
<kazinsal> klange: but if I do that I'll need to stop using kuroko!
<heat> write a kuroko clone
<geist> hmm, if you tcpdump or wireshark the tun device do you see it?
<doug16k> catern, same cause as what I said, except I assumed it was bridged networking nic in qemu
<geist> usually when i'm doing this i'm working at a TAP
<geist> in which case you're bridging a nic, yeah
<catern> geist: yeah I can see it with tcpdump - I went up to just TUN because I thought it would be less to debug
<geist> tun i think operates at L3 but i dont know precisely how that works
<catern> (for now)
<geist> i guess you hand it packets without eth?
<catern> yeah, IP packets
mctpyt has joined #osdev
<geist> well, dunno.
<catern> ¯\_(ツ)_/¯
<geist> sometimes also make sure it's 'up'
<geist> i've seen cases where a bridge or tap or whatnot is not considered up so it just eats things
<catern> good idea, yeah it seems to be up
<geist> if it's like tap then you need linux to have an address assigned and wahtnot do it