_whitelogger has joined #osdev
<mniip> klange, hey
<klange> hey, thanks for the org reg, we got our last op finally - he was on vacation during the ruckus
<mniip> PM?
<klange> Can do!
t-42 has left #osdev [#osdev]
gog has quit [Ping timeout: 264 seconds]
nohit has quit [Ping timeout: 272 seconds]
nohit has joined #osdev
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/2021-05-23 || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<klange> ... I left the date in that URL, oops.
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
<air> who owns the logger site?
<klange> whitequark, very trusted person
<air> so not here right now
<air> do you know if the logs are downloadable from there?
<klange> Yes, not someone who would join the channel directly. I will inquire on how we can ingest them for pisg.
<air> thanks
<Oli> I have read this written int: 02:08 This logger supports retrieving complete channel archives in text via lftp. Use lftp -c 'mirror https://libera.irclog.whitequark.org/$CHANNEL/index/'.
<bslsk05> ​libera.irclog.whitequark.org: 401 Authorization Required
<Oli> in*
<klange> ez pz
Izem has joined #osdev
<air> klange: nm, front page of site explains how
<klange> I think it needs auth so might need to ping whitequark again anyway.
<air> oh
<kazinsal> yeah, per the code it should be /osdev/index/YYYY-MM-DD.txt
<air> thanks
Izem has quit [Ping timeout: 264 seconds]
mrkajetanp_ has joined #osdev
cd has quit [Quit: leaving]
cd1 has joined #osdev
cd1 is now known as cd
_whitelogger has joined #osdev
doug16k_ has quit [Remote host closed the connection]
kc8apf has joined #osdev
Beato has joined #osdev
heat has quit [Ping timeout: 272 seconds]
<air> klange: are you changing the topic over there?
<klange> I was going to wait, but I figured with the return of our "friend" now's a fine time to +m the whole place... so, yeah, I'll update the topic.
<Oli> Do you consider a good idea to expand who is the person you mention about, and why do you consider a good idea for the other channel to be muted, for context?
<klange> The last message sent to that channel is by a routine spammer who shows up every so often to ping a bunch of people to annoy them and spout insults and such. They are solely responsible for at least two thirds of that channel's banlist.
<Oli> I am okay with using here, however I feel curious about why the move is now forced, if it is worth to be disclosed.
<Oli> I understand.
<kazinsal> He is either unmedicated or an AI.
<klange> The channel is being muted to encourage interested users to centralize on this channel.
<kazinsal> And if the latter, not a particularly sophisticated one.
<Oli> Thank you for replying at my inquiry.
<Oli> I feel content about the article on the web page at this URL: https://wiki.osdev.org/Chat#IRC now points here: Now I haven't a substancial reason to stay at both places.
<bslsk05> ​wiki.osdev.org: Chat - OSDev Wiki
<CompanionCube> shame about losing CrystalMath though, according to the statistics they were in the top 10 most active.
clever has joined #osdev
<air> why did we lose CrystalMath?
<Oli> I will miss the contributions of our fellow retro operative system developer.
<CompanionCube> air: well, they said they're very very pro-freenode
<CompanionCube> so i expect they'll not be dropping by.
doug16k has joined #osdev
<air> well, we still have #1 ;)
<Oli> And I appreciate much him being around.
<Oli> It is so nice to read about all the knowledge doug16k shares.
<doug16k> had to clean my computer radiator
<doug16k> apparently it doesn't just keep working forever all by itself by being water cooling :P
<air> hehe, I had to clean mine yesterday
Oli has quit [Quit: leaving]
Oli has joined #osdev
Izem has joined #osdev
EricHerman has joined #osdev
rwb has quit [Quit: ZNC - https://znc.in]
rb has joined #osdev
rb is now known as Guest8740
_whitelogger has joined #osdev
Guest8740 is now known as rwb
Shikadi` has quit [Ping timeout: 272 seconds]
<doug16k> made a little tool to analyze how fast every pair of cpus can spin on and ping pong a cache line: https://pasteall.org/media/3/1/31b83343e1b4cca35906062100b91ff4.png https://github.com/doug65536/xcpuperf
<bslsk05> ​doug65536/xcpuperf - Detect cache line pingpong latency (0 forks/1 stargazers/MIT)
<doug16k> that's my output on 3950x
<doug16k> with 2400 memory clock
<doug16k> one thread spins until it's even, then increments it, other spins until it's odd and increments it
<doug16k> affinity forced onto every pair
vai has joined #osdev
<doug16k> so the worst time is 10x worse than best time
<doug16k> almost
<doug16k> 8.5
<Affliction> hm
<doug16k> png link is output of github repo
<doug16k> each pair of cpus changing the line as soon as other thread changes the line
<doug16k> and measure how long the ping pongs took
<Affliction> oh, makes sense. 32 threads, 8 per CCX, 2 CCXes per die, 2 dies.
<doug16k> yeah
<doug16k> and the second 16 cpus are the hyperthread
<Affliction> right
<doug16k> haha you could delete all but line 1 of the makefile and it would still work right?
<bslsk05> ​github.com: xcpuperf/Makefile at main · doug65536/xcpuperf · GitHub
<doug16k> builtin rule would figure out to make it from xcpuchk.cc right?
<doug16k> oh it wouldn't say pthread. oh well
<moon-child> I think you'd still need -pthread
<doug16k> read your mind
<moon-child> :)
<doug16k> I can't believe I only found out this week that with just something.cc and nothing else, you can type `make something` and poof, it builds `something` with c++ compiler
<clever> CFLAGS ?
<doug16k> I mean even no makefile
<clever> i like taking advantage of such patterns in makesfiles, makes it much harder to make mistakes
<Izem> this is with gmake?
<doug16k> I mean gnu make
<Izem> g++ is the default compiler
<Izem> yeah I call gmake gnu make
<doug16k> I wasn't sure so I was fully specific
<moon-child> actually I'm surprised libstdc++ doesn't link against pthread
<Izem> but can be changed with the env var CXX
<doug16k> yeah gnu libraries are still going as far as the non-reentrant libc code being default
<doug16k> it 3/4 expects you to not even use threads at all
<doug16k> strtok for example
<doug16k> it doesn't even work with threads on right?
<clever> just dont use it in any other thread? :D
<doug16k> not that I have a lot of pity for strtok callers
<doug16k> but my libc strtok is thread safe. if you are calling it, I want to help
<doug16k> errno is already using TLS in 50,000 places. screw it, strtok is completely thread safe
<doug16k> the very first instruction in my crt0 stores the thread id lol
<doug16k> in TLS!
<doug16k> cue do it live clip
gruetzkopf has joined #osdev
<doug16k> the linear search in strtok will touch one pointer sized tls. big deal
<doug16k> touch once on entry
<sginsberg> If I create a ".section multiboot" for elf do I need to specifiy something for it to link properly? I have my entrypoint in there and it just disappears (objdump gives bogus start)
<doug16k> no but you might want to wrap KEEP() around what's in there
<doug16k> to take removing it off the table
<doug16k> KEEP(*(.whatever))
<doug16k> even if you tell ld to go nuts with gc, it'll keep that stuff
<sginsberg> Well it removes both the table and the global entrypoint (it is the elf file entrypoint as well)
<sginsberg> In that case
<doug16k> if it is something that you know looks unused to the linker, you should put KEEP around it
<doug16k> the linker is convinced nobody references it, ever
<doug16k> KEEP says yes I do
<sginsberg> Will try that a mom
<doug16k> ld says really, oh sorry!
<sginsberg> It did nothing
<doug16k> the other thing it could be is that ld decided to put it too far away from the beginning of the executable
<doug16k> try adding -Wl,-z,max-page-size=4096
<doug16k> can you show objdump -p -h your-kernel in a pastebin
<sginsberg> Sure
<doug16k> I have a feeling you didn't give any section flags, and it hasn't a clue whether it is executable or writable or what and didn't do the right heuristics to fix it up
<bslsk05> ​www.pastebin.com: objdump -p -h mytestmytest: file format elf32-i386Program Header: - Pastebin.com
<sginsberg> Yes doug16k something like that
<doug16k> why does it load to zero
<doug16k> I wouldn't even try to load that
<kazinsal> where the heck is your .text segment
<doug16k> you should not have a separate multiboot output section
<doug16k> you should practically put a gun to its head and put your input sections at the start of the .text section
<doug16k> it will have no choice but to put it close to the start
<doug16k> then if you put max page size 4K it is highly likely .text will go first
<kazinsal> I'm more concerned about the complete lack of .text/.data/.rodata/.bss in that section list
* clever gets example
<doug16k> they mentioned earlier that their entry point is in multiboot section
<bslsk05> ​github.com: lk-overlay/bootcode.ld at master · librerpi/lk-overlay · GitHub
<doug16k> I agree it is weird
<kazinsal> :stonk:
<clever> in my case, the 512 byte vector table should be at the start, and _start should be right after
<sginsberg> kazinsal: I haven’t specifies anything for them
<clever> so i put _start into .text.start, and poppped that at the start of .text
GeDaMo has joined #osdev
<sginsberg> Do you want the makefile as well?
<doug16k> yeah do what clever said
<doug16k> you emit the stuff to a special named input section in the source, then in linker force that into a particular place in an existing output section
<doug16k> that's the best approach
<clever> the linker script i linked, ensures that .text contains .text.start .text and .text.*, in that order
<kazinsal> yeah I just throw the .multiboot and entry stuff at the start of the text segment and call it a day
<sginsberg> kazinsal: removing .section gives me a .text though
<doug16k> sginsberg, what's wrong with .text
<kazinsal> I like it when my elf contains a .text
<doug16k> if you fight ld, you will lose
<kazinsal> that means it has code in it
<doug16k> ld will beat you
<doug16k> ld is the train man
<doug16k> send neo flying
<doug16k> no seriously though, ld has heuristics that make it do the right thing for standard section names
<moon-child> I got my stuff working with tcc
<moon-child> download and compile two cross-compilers (one for efi) in seconds--it's really nice
<moon-child> except tcc's linker doesn't understand linker scripts, so I still have to use ld
<moon-child> :/
<doug16k> if you don't use the normal sections, then all the onus is on you to always say the section flags correctly in the source code to say executability and writability and to place it into an explicit output section with compatible section flags
<doug16k> sorry place it in an explicit program header
<sginsberg> So I tried putting multiboot into text
<bslsk05> ​github.com: lk-overlay/start4.ld at master · librerpi/lk-overlay · GitHub
<doug16k> with compatible flags
<clever> doug16k: i should probably fix this up then?
<clever> doug16k: for reasons outside of my control (closed-source bootloader), those sections must be named as such, in the elf headers
<doug16k> what does objdump -p say
<sginsberg> Start address is still wrong though
<doug16k> clever, if program headers cover it all ok, it's good enough
<doug16k> clever, you could "help it" by doing asm like this: .section .text.bootloader_state, "x" to make the input section say it wants executable flags
<clever> doug16k: `objdump -p` doesnt really mention it, its between .text and .data, and the whole load is one LOAD entry
<clever> both are data
<doug16k> if objdump -p doesn't mention it then it won't be loaded
<clever> LOAD off 0x00001000 vaddr 0xc4000000 paddr 0xc4000000 align 2**12
<clever> filesz 0x000247f0 memsz 0x000270c0 flags rwx
<doug16k> why would it be loaded
<bslsk05> ​www.pastebin.com: objdump -p mytestmytest: file format elf32-i386Program Header: - Pastebin.com
<clever> this is all that `objdump -p` said
<sginsberg> Ah
<sginsberg> Nvm
<clever> c401d774 g O .text.bootloader_state 00000010 bootloader_state
<doug16k> clever, yeah that covers c4000000 thru that plus 0x270c0
<clever> doug16k: and those custom sections, are within the range
<clever> yep
<doug16k> then you are fine
<clever> i think the only "problem", is that .rodata is writable, and .rodata+.data are executable
<doug16k> thing is it can be that you don't have any flags and it doesn't put it in any header
<clever> but i dont know how to block those at runtime anyways
<doug16k> but for the standard section names, it just knows the flags
<doug16k> even if you didn't help
<clever> .text.firmware_rev is an uint32_t[4] of flags, to advertise what this .elf file supports
<doug16k> I wish I knew exactly when it does weird stuff like that
<clever> if the flags arent compatible, the bootloader will refuse to execute it
<doug16k> like not including something in any program header
<clever> .text.bootloader_state is slightly more bi-directional, if it contains a magic#, the firmware will insert a pointer to a tagged list in the [1] slot
riposte has joined #osdev
<clever> so your .text.bootloader_state section is mutated by the bootloader during loading
<sginsberg> (I think I somewhat solved it by putting the entry outside of the .multiboot)
<doug16k> sginsberg, put your stuff in the appropriate normal named output section and you will have happy linking
<sginsberg> What I don’t understand is it fails silently to link the entrypoint
<doug16k> do you have a linker script?
<sginsberg> I am trying both with and without one
<bslsk05> ​gist.github.com: gist:2ea8c5ad903239e2e00030859a59ac90 · GitHub
<doug16k> ya objdump -h shows that
<doug16k> pretty sane order
<clever> gist updated with a -h output
<sginsberg> www.pastebin.com/ekJyUpwS I know I know this is my first attempt ...
<bslsk05> ​www.pastebin.com: ENTRY(entry)PHDRS{ headers PT_PHDR PHDRS; text PT_LOAD FILEHDR PHD - Pastebin.com
<sginsberg> Wait
<sginsberg> Wront file
<clever> 32 bytes*
<clever> doug16k: most odd part in my gist, is that there is 32bits of writable sections, between 2 read-only sections
<sginsberg> Ignore the bss entry I got nothing in there yet
<doug16k> clever, if I were a broken bootloader I would be all broken from permission changing without page alignment between .text and .text.bootloader_state :D
<sginsberg> Copy pasta
<doug16k> went from readonly to readwrite in middle of page right?
<clever> doug16k: yep, and not even 16 byte aligned!
<sginsberg> doug16k: with that ^ script entrypoint is gone again
<clever> but there is no MMU on this arch, so pages dont mean much
<doug16k> clever, ya but ld is obsessed with mmus
<doug16k> something that harmless could mean it being weird and showing dwarf errors or something
<clever> ive not done much with the debug info yet
<doug16k> does it think max page size is 1
<doug16k> can you do that?
<clever> how would i know?
<doug16k> I try not to piss ld off nowadays
<doug16k> probably fine
<clever> the most adventurous ive been, was trying to make a .elf where the _start symbol, was 0x200 bytes into the .elf binary itself, and the linker also knows its at 0x8000_0200
<clever> so i could run the .elf without an objcopy -> .bin step
<clever> but it broke easily
<doug16k> I am superstitious from multiple times where I did something unusual and it made the debug info all screwy and I later was able to fix the code and fix it
<doug16k> gdb never ever crashes or asserts out for me
Izem has quit [Quit: Connection closed]
<clever> gdb doesnt even support this arch
<clever> and no gdb stub exists, and the jtag isnt documented
<doug16k> it's almost as if they don't want a clever person reversing it
<clever> :D
<clever> i think the debug info is still mostly standard, they released an unstripped file by accident once
<clever> and ghidra could understand the debug info
<clever> it was extracting debug info on structs
<doug16k> you can force objdump to dump the debug info
<doug16k> neatest is dumping the decoded-lines
<clever> --dwarf-start ?
<doug16k> you get line number vs start address list
<doug16k> --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames] etc...
<doug16k> there are 3 or 4 more lines of other = things
<clever> ah, just scrolled up and found that one
<doug16k> decodedline is awesome
<doug16k> I extract that for my perf top
<doug16k> for display of course
asymptotically has joined #osdev
<clever> [nix-shell:~/apps/rpi/lk-overlay]$ vc4-elf-objdump --dwarf=decodedline -d build-rpi4-start4/lk.elf | less
<doug16k> data collection is just a silly number of pc snapshots
<doug16k> ip, rip, instruction pointer
<clever> yep, this looks like what you might use when mapping a PC back to a line#
<clever> previously, i just ran `objdump -S` and looked the PC up manually
<doug16k> so my profiler gathers line level perf top
<doug16k> systemwide
<doug16k> same way - perf counters and NMI
<doug16k> NMI so I can get samples in a spinlock or something
<doug16k> something that cli
<doug16k> I did the crazy stuff to make that guaranteed swapgs right
<clever> sadly, decodedline finds nothing at all in the official firmware
<geist> ah okay
<geist> i was away but i see the moved channel
<geist> sure. for lack of anyone else doing something, klange moved on it and go klange!
<clever> 2021-05-23 02:40:10<CrystalMath> sorry for the PM, but if you want to remain on freenode and talk about OS development, please join ##osdev
<clever> and others are trying to hijack the community in PM
<doug16k> ya -S way is fine
<doug16k> decodedline is more for when you want to brute force get all the line number info
<GreaseMonkey> might be worth updating the topic
<geist> dunno. i'll just follow where the center is, and it's clearly here now so there ya go
<geist> no interest in politics
<clever> doug16k: trying to make sense of --dward=frames now...
<clever> ah, frames-interp looks more readable
<doug16k> tells you at each starting point in the code, how do you put it back to caller's state (restore callee saved stuff)
pretty_dumm_guy has joined #osdev
<doug16k> to unwind or stack trace
<clever> doug16k: it starts out with `r0 + 0`, and from knowing the asm, i know that nothing needs to change on that line
<doug16k> each point is an accumulation of the effect of everything above it up to the startproc
<clever> doug16k: on the line of asm where `add sp, sp, -4` gets ran, the debug info claims `r0 + 4`
<clever> why is it saying r0 and not sp?
<doug16k> they assign numbers to the registers for the dwarf info
<doug16k> they can be weird?
<clever> that could be it
<clever> there is also an `add r6, sp, 0` which just copies sp->r6, and the debug info is claiming `r0+8` now
<doug16k> frame info is obsessed with the stack pointer and where you put callee stuff relative to that, mostly anyway
<doug16k> it would make a lot of sense to make that 0
<clever> r6 is used as a frame pointer in this toolchain
<doug16k> but neat thing about frame info is, you can be all weird and use anything for the frame pointer
<doug16k> and even go weird and say stuff is saved in a register, not stack frame
<doug16k> like the return address is in some weird register
<doug16k> stack unwind would use it
<clever> doug16k: and for the official firmware, it is reporting such state, and in more depth too
<doug16k> you know how x86_64 puts return address in rcx? my frame info says the caller's rip is in rcx and gdb says no problem and understands completely
<doug16k> syscall
<clever> neat
<doug16k> then at some point I put it down on the stack and then emit a cfi that says no from here on get it relative to the cfa memory
<doug16k> wherever I feel like putting it
<doug16k> in the cfa region
<doug16k> the stack
<geist> hmm, now i gotta remember what I think Mutabah was doing to get the server to show up in the status bar of irssi
<geist> ah i see it
<geist> 18:38 < Mutabah> in the config file, under `statusbar` `window = "{sb $winref:$tag/$itemname{sbmode $M}}";`
<geist> lemme see
geist has left #osdev [#osdev]
geist has joined #osdev
<geist> okay, yeah that worked, neat
gareppa has joined #osdev
geist is now known as geist2
geist2 is now known as geist
froggey-1 is now known as froggey
<geist> looks like you can register multiple nicks via nickserv group
_whitelogger has joined #osdev
riverdc has joined #osdev
bslsk05 has quit [*.net *.split]
manawyrm has quit [*.net *.split]
les has quit [*.net *.split]
Affliction has quit [*.net *.split]
jstoker has quit [*.net *.split]
brenns10 has quit [*.net *.split]
ornitorrincos has quit [*.net *.split]
smarton has quit [*.net *.split]
kc8apf has quit [*.net *.split]
thaumavorio has quit [*.net *.split]
raggi has quit [*.net *.split]
livinskull has quit [*.net *.split]
k4m1 has quit [*.net *.split]
Mikaku has quit [*.net *.split]
jeaye has quit [*.net *.split]
Matt|home has quit [*.net *.split]
sham1 has quit [*.net *.split]
GreaseMonkey has quit [*.net *.split]
sprock has quit [*.net *.split]
jjuran has quit [*.net *.split]
edr has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
MiningMarsh has quit [*.net *.split]
buffet has quit [*.net *.split]
Mutabah has quit [*.net *.split]
V has quit [*.net *.split]
air has quit [*.net *.split]
dennisschagt has quit [*.net *.split]
nero has quit [*.net *.split]
tux3 has quit [*.net *.split]
puck has quit [*.net *.split]
mingdao has quit [*.net *.split]
n3t has quit [*.net *.split]
j`ey has quit [*.net *.split]
Stary has quit [*.net *.split]
basil has quit [*.net *.split]
Darksecond has quit [*.net *.split]
mniip has quit [*.net *.split]
sortie has joined #osdev
GreaseMonkey has joined #osdev
kc8apf has joined #osdev
n3t has joined #osdev
Mikaku has joined #osdev
buffet has joined #osdev
Darksecond has joined #osdev
manawyrm has joined #osdev
bslsk05 has joined #osdev
k4m1 has joined #osdev
raggi has joined #osdev
les has joined #osdev
jstoker has joined #osdev
mniip has joined #osdev
jeaye has joined #osdev
brenns10 has joined #osdev
sprock has joined #osdev
ornitorrincos has joined #osdev
Matt|home has joined #osdev
smarton has joined #osdev
thaumavorio has joined #osdev
livinskull has joined #osdev
nero has joined #osdev
sham1 has joined #osdev
fkrauthan has joined #osdev
jjuran has joined #osdev
V has joined #osdev
air has joined #osdev
Mutabah has joined #osdev
puck has joined #osdev
Stary has joined #osdev
MiningMarsh has joined #osdev
edr has joined #osdev
tux3 has joined #osdev
mingdao has joined #osdev
Affliction has joined #osdev
j`ey has joined #osdev
dennisschagt has joined #osdev
basil has joined #osdev
Affliction has quit [*.net *.split]
bslsk05 has quit [*.net *.split]
manawyrm has quit [*.net *.split]
les has quit [*.net *.split]
jstoker has quit [*.net *.split]
brenns10 has quit [*.net *.split]
ornitorrincos has quit [*.net *.split]
kc8apf has quit [*.net *.split]
thaumavorio has quit [*.net *.split]
raggi has quit [*.net *.split]
smarton has quit [*.net *.split]
livinskull has quit [*.net *.split]
k4m1 has quit [*.net *.split]
Matt|home has quit [*.net *.split]
jeaye has quit [*.net *.split]
GreaseMonkey has quit [*.net *.split]
sham1 has quit [*.net *.split]
Mikaku has quit [*.net *.split]
sprock has quit [*.net *.split]
edr has quit [*.net *.split]
jjuran has quit [*.net *.split]
MiningMarsh has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
tux3 has quit [*.net *.split]
air has quit [*.net *.split]
buffet has quit [*.net *.split]
dennisschagt has quit [*.net *.split]
V has quit [*.net *.split]
nero has quit [*.net *.split]
Mutabah has quit [*.net *.split]
puck has quit [*.net *.split]
mingdao has quit [*.net *.split]
n3t has quit [*.net *.split]
j`ey has quit [*.net *.split]
Stary has quit [*.net *.split]
mniip has quit [*.net *.split]
basil has quit [*.net *.split]
Darksecond has quit [*.net *.split]
raggi has joined #osdev
kc8apf has joined #osdev
GreaseMonkey has joined #osdev
Stary has joined #osdev
buffet has joined #osdev
Affliction has joined #osdev
edr has joined #osdev
bslsk05 has joined #osdev
k4m1 has joined #osdev
les has joined #osdev
manawyrm has joined #osdev
brenns10 has joined #osdev
mniip has joined #osdev
thaumavorio has joined #osdev
ornitorrincos has joined #osdev
Matt|home has joined #osdev
smarton has joined #osdev
livinskull has joined #osdev
sham1 has joined #osdev
nero has joined #osdev
fkrauthan has joined #osdev
Mikaku has joined #osdev
jjuran has joined #osdev
n3t has joined #osdev
dennisschagt has joined #osdev
MiningMarsh has joined #osdev
mingdao has joined #osdev
tux3 has joined #osdev
air has joined #osdev
V has joined #osdev
jstoker has joined #osdev
Mutabah has joined #osdev
sprock has joined #osdev
jeaye has joined #osdev
Darksecond has joined #osdev
j`ey has joined #osdev
basil has joined #osdev
puck has joined #osdev
kspalaiologos has joined #osdev
Arthuria has joined #osdev
Oli has quit [Ping timeout: 264 seconds]
Oli has joined #osdev
whitequark has joined #osdev
<whitequark> air: regarding downloading of logs, there's some kind of issue with the queries used to do that with postgres specifically; i had to require authentication on that endpoint unfortunately
<whitequark> that might no longer be a problem with recent postgres, needs to be checked though
dennis95 has joined #osdev
asymptotically has quit [Quit: Leaving]
gareppa has quit [Quit: Leaving]
_whitelogger has joined #osdev
<whitequark> nope, still a problem
<whitequark> it's super frustrating because it's specifically *generating the index page* that's a problem, not serving the logs themselves, which you'd think would be computationally far worse
<air> ok
<klange> I think our primary purpose for raw access is for the pisg processing, so if the logs can be served without the problematic index...
<klange> also, weird
<klange> (also thanks for stopping by to check in on things ;) )
MrBonkers has joined #osdev
<whitequark> klange: you can directly access https://libera.irclog.whitequark.org/osdev/2021-05-23.txt for example
<air> are you able to use .htaccess to only auth the index?
<whitequark> (just fixed that so that it actually works)
<whitequark> (there was an issue with a sinatra upgrade some time earlier)
<klange> yay :D
<whitequark> you can also do it monthly https://libera.irclog.whitequark.org/osdev/2021-05.txt
<whitequark> air: there's no htaccess, it's configured in nginx
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
<XgF> (hmm, the .txt file are served without a character set so I see UTF-8 mojibake)
<air> so the index is redirecting to avoid issues?
<whitequark> oh, hm
<whitequark> XgF: Content-Type: text/plain; encoding=utf-8 ?
<whitequark> or something?
<klange> something like that
heat has joined #osdev
<whitequark> charset=utf-8 it seems
<whitequark> XgF: where are you testing this?
aquijoule_ has quit [Remote host closed the connection]
<XgF> whitequark: Firefox! Maybe the dev tools being odd?
<whitequark> XgF: no like, which url?
<whitequark> wait, that has unicode in it?
<whitequark> nvm found it
<klange> snake messages, generally, we don't speak too many other languages here so it's usually just midline dots from webpage <titles>
immibis has joined #osdev
* XgF ensures some more Unicode £€
<GeDaMo> ಠ_ಠ
<heat> damn, we've moved permanently
<klange> It was a surprisingly unanimous decision, though the timing was decided by _other_ outside factors.
_whitelogger has joined #osdev
<air> Content-Type: text/plain; charset=utf-8
<klange> yep, the dots are now dotty
<XgF> hurrah :-)
<sortie> Oh key klange, can I get flags for #osdev please?
<whitequark> klange: what is "pisg" by the way
<klange> let me see, libera's chanserv is a different implementation
<air> sortie: ⚑
<klange> whitequark: ancient irc log scraping thing that generates stat pages
<klange> and has a funny name
<sortie> Yo there air
<whitequark> ahh
<sortie> How are you?
<sortie> I have coffee and a fresh ircd port
<immibis> yay, one more channel i can leave to free up space on chatzilla's space-limited channel bar. (Anyone have client suggestions? chatzilla is a pretty much exactly what I'm looking for, except for this one problem)
<klange> it's an initialism... I hope, though I read it as an acronym: Perl IRC Statistics Generator
<heat> oh god the server is lagging hard
<heat> I clicked the log and I read messages a solid 10-20 seconds before they hit my client
<heat> immibis, I use hexchat, works fine
<klange> sortie: okay you should have all the bits I can give
<sortie> klange: Woohoo :)
<sortie> klange: Ah neat, y'all went ahead with a +m move to libera.chat after all
<klange> It was a sudden action as one of our "old friends" showed up.
<klange> And there was general agreement on it, so, it happened.
<heat> oooooohhhhhhh
<heat> lol
<air> ok, hopefully the logs will download and generate stats when today ends
<sortie> Oh geez which old friend? The GPU markov bot or much, much worse?
<klange> Yes!
whitequark has left #osdev [#osdev]
cmrg has joined #osdev
<heat> I wonder if he's going to continue spamming freenode #osdev
<heat> or at least trying to, that is
<sortie> klange: Well then I am almost entirely off freenode besides a corp channel I didn't forcibly move just yet and an inactive topical channel where I talk to the idlers every few eyars
<air> and http://osdev-logs.qzx.com redirects to new site
<bslsk05> ​redirect -> bespin.org: #OSDEV on Libera
<klange> I am out of everything except #osdev which I'm monitoring - want to see if it gets captured - and a channel that has moved but we need to make sure one particular members gets the message.
<air> captured?
<heat> yeah
<klange> Lee has apparently been reclaiming channels that move.
<heat> like they did with that hacker news channel
<j`ey> I think it wouldn't be terrible if they "took" #osdev back, it's a general purpose topic!
<Affliction> Not going to operationally interfere, but taking channels that move? perfect.
<air> makes sense, you don't want a channel with a topic redirecting users to another network
<Affliction> Freenode has always had 'this channel has moved' channels
<air> but not this many all at once
<heat> j`ey: it's not so much the hijacking of the channel, they try to hijack the community
<heat> fragmentation bad :(
<j`ey> Affliction: to different networks, or just names?
<Affliction> networks
<Affliction> I've run into a few over the years
<klange> Fragmentation _is_ bad, which is why we're all moving here :)
<j`ey> except cyrstalmath :P
<heat> oh no!
<heat> anyway
<klange> Well if he trusts the crown prince more than me, he's free to stay with him.
<klange> He can make his own ##osdev, with blackjack and deposed Korean royalty.
terrorjack has joined #osdev
<sortie> Well even if they reclaim these channels, the core of the community has already moved
isaac has joined #osdev
<sortie> Anything left will be a poor imitation
<sortie> Totally the right move to not fragment the community though :)
<klange> most people get to "here" from the wiki page anyway, and it has been updated appropriately and I have been sure to express the full context of the situation to the best of my abilities.
<heat> maybe a forum post would be nice?
<klange> I can post one in the announcements board, sure.
<Belxjander> need to sort out libera and oftc znc entries then...
<j`ey> i thought this channel wasnt associated with the wiki/forums, thats what people have said :P
<klange> We've gone from "coincidentally has overlap in staff" to "now connected, but still not the same entities".
<klange> eg. #osdev is not "osdev.org's IRC channel" or the reverse, but we're in a commited relationship and go to movies and eat dinner together
FireFly has joined #osdev
<heat> j`ey: yeah but I was thinking it might be nice to let non-regulars know
<air> so what is third network choice if osdev is reclaimed and libera dies?
<froggey> oftc got mentioned a bunch
<klange> If all goes sour, I'll just start up my own server again.
<dormito> The problem with "reclaiming" channels is: channels, nicks, etc all have exirations if unused, but thats tampering with the services to fullfill ones own goals, which mean theres no reason to trust any of the services there now.
<sortie> k. Now I just need to implement dynamic linking.
<klange> You should do that, and do it correctly following all the rules unlike me.
<gruetzkopf> heh, i only noticed this channel on this network ( by overlap with other channels i usually frequent that have moved ) )
lleo has joined #osdev
gog has joined #osdev
* gog meows
<heat> sortie: port another dynamic linker and be done with it
<heat> dynamic linking is hard :(
gareppa has joined #osdev
<sortie> heat: Why dynamically link a set of built in modules when I can just haxxx and static link them :)
<sortie> Introducing fake dlopen that just has a table of ‘modules’ that are already statically linked into the program
<heat> ahhhhhh
<heat> can you even do that without actual linker hacks?
<sortie> I mean I gotta link the .a files onto the executable
<klange> oops I made literally zero progress on my network stack this weekend because I was too busy trying to fix multicore synchronization issues and dealing with this IRC nonsense
asymptotically has joined #osdev
Lucretia-backup is now known as Lucretia
<klange> I feel like the are some obvious-to-me-but-not-quite-sure-how-to-fix-them issues remaining, which I guess is good?
<klange> The further I get with debugging, though, the harder it gets... you fix the obvious issues and now you've got some one-in-a-million event happening you can't build a test case to reproduce...
<Arthuria> So in my kernel I am in protected mode, can I trigger a breakpoint under QEMU/GDB. Like INT 3, or do I need to set this up in my code. E.g. when my code gets to a CLI;HLT, I can break in via gdb and see my stack/registers. But I'd prefer a bp and resume
<heat> I'm stuck with an asan issue because I'm too lazy to fix it
<heat> and I can't progress in other areas too because I'm scared all this code is wrong
<sortie> OK ircd made it to the mainloop
<heat> wooohoo
<sortie> But seems to be stuck in some sort of 100% CPU usage loop
<sortie> Alas I don't have strace..
<heat> i have a broken strace
* heat should get a ptrace-like interface going and switch to that
<heat> my backlog of things that I want to work on is impressively big and my lazyness is even bigger
<sortie> OK neat it seems to spend most of the CPU time in the kernel
<klange> sortie: is this the original WiZ ircd?
<sortie> klange: State of the art solanum
<j`ey> sortie: you going to donate a seerver running sortix to libera? :P
<heat> not if onyx gets there first
<sortie> My gut feeling is that there's something wrong with the main loop's polling
isaac has quit [Killed (NickServ (GHOST command used by Chie!~Isaac@user/isaac))]
isaacwoods has joined #osdev
fwg has joined #osdev
<gruetzkopf> hm, i should get solanum running on sgi irix :>
<sortie> Ugh it was testing for the non-standard sys/poll.h instead of the standard poll.h so it wasn't using poll(2) but select(2)..
<heat> do you not have select?
<klange> select is for weenies
<sortie> heat: I do have select but it's awful and I only emulate it in terms of poll(2). Might've been slightly wrong with the timeout or something.
<sortie> It now power idles correctly and the main loop isn't busy. New connections get disconnected without reason after a second now tho.
<heat> oh
<heat> i thought about that but it seems really slow in user space so I just did it in the kernel
<heat> thankfully my poll backend is flexible enough that it worked out really smoothly for select too
<klange> Mine is... possibly still the cause of some of my multicore issues.
<klange> Though I did fix most of it.
<klange> Linux says the apicid for the second physical core on my t410 is 4... so I guess I'll have to fix the 1-1 mapping I was using temporarily in qemu... easy enough, something to do tomorrow.
<klange> If I can get two cores up on that thinkpad I'll have a little party
<klange> But for now, good night!
yuriks has joined #osdev
dutch has quit [Quit: WeeChat 3.1]
Shikadi` has joined #osdev
dutch has joined #osdev
FreeFull has joined #osdev
sav has joined #osdev
jimbzy has joined #osdev
sav has quit [Quit: .]
sav has joined #osdev
pretty_dumm_guy has joined #osdev
<jimbzy> I have arrived!
<Oli> Welcome, jimbzy!
<Oli> And good night, klange!
<meisaka> we all have arrived :3
<sham1> Yay
sav has quit [Quit: .]
<gog> the gang's all here
vai has quit [Quit: Lost terminal]
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
vancz has joined #osdev
<vancz> can anyone recommend material to read about writing portable c
<dormito> posix, or maybe the relevent C standard are the first that come to mind.
jimbzy has quit [Ping timeout: 264 seconds]
cmrg has quit [Ping timeout: 272 seconds]
sortie has quit [Ping timeout: 264 seconds]
Oli has quit [Remote host closed the connection]
Oli has joined #osdev
gareppa has quit [Quit: Leaving]
<Oli> I was about to mention about this C book and link to one, and checking it, realized it was a traditional Chinese version of the one I was thinking about linking here.
<Oli> I recommend to read The C Programming Book's second edition, by Brian W. Kernighan and Dennis M. Richie: They are the creators of this book are also the creators of the C programming language.
Izem has joined #osdev
kc8apf has quit [Quit: Updating details, brb]
kc8apf has joined #osdev
froggey has quit [Ping timeout: 264 seconds]
knebulae has joined #osdev
froggey has joined #osdev
Izem has quit [Ping timeout: 272 seconds]
immibis_ has joined #osdev
immibis has left #osdev [#osdev]
immibis_ is now known as immibis
<immibis> https://www.devever.net/~hl/freenode_abuse - expect freenode staff to put the osdev channel back on freenode at some point
<bslsk05> ​www.devever.net: Freenode IRC operators now engaging in routine abuses of power
alexander has joined #osdev
sav has joined #osdev
<bslsk05> ​github.com: policy update by realrasengan · Pull Request #513 · freenode/web-7.0 · GitHub
<clever> GeDaMo: yeah, they basically just changed the rules, so what immibis pasted wouldnt be a violation
<clever> https://news.ycombinator.com/item?id=27256843 Freenode removes hate speech rule
<bslsk05> ​news.ycombinator.com: Freenode removes hate speech rule | Hacker News
<clever> GeDaMo: and what i didnt notice at first, is that on your diff, they also removed the rules about hate-speech
<clever> so hate-speed is now allowed on freenode, lol
<GeDaMo> I'm sure that's just a coincidence :|
<clever> GeDaMo: ive also seen other reports, claiming that both sides where over-reacting to the other side
<clever> X did Y, take away his powers
vai has joined #osdev
<clever> oh no, i lost my powers, its a hostile take-over!
<clever> no, your hostile!!
<clever> GeDaMo: but that snowball doesnt explain the rapid rule changes....
pretty_dumm_guy has joined #osdev
<heat> oh yay you can post porn on freenode node
doug16k has left #osdev [Leaving]
<heat> just what it was missing honestly
doug16k has joined #osdev
<GeDaMo> Yes, this is how to modernize IRC :|
<immibis> clever: since hate speech is now on-topic on freenode I took the liberty of registering ##transphobia, ##homophobia, and ##nazis. don't know what to do with that since i'm not a homophobe, transphobe, or nazi, but eh
<clever> :D
<CompanionCube> immibis: that's probably squatting but who cares it's gppd
<CompanionCube> also /me knows who will probably ask freenode staff for the channel
<heat> lol
<immibis> i don't even have any nazi friends to invite while I get popcorn. which is a good thing, of course, not having nazi friends
<doug16k> immibis, merge them together into a chat session only rivalled by a youtube live chat stream
<CompanionCube> (##osdev has so far flopped, maybe a forced redirect will bring it to life? ;p)
<heat> ##osdev exists?
<doug16k> you forgot ##covidsfake
<GeDaMo> Can you have them re-direct to each other in a circle?
<immibis> flopped? the freenode one was shut down by ops
<immibis> chanops not network ops
<immibis> this is now the only osdev channel
<doug16k> also, where's ##themoondoesntexist and ##iseedeadpeople
<immibis> i think the other one is +m. Not as serious as ##hamradio, which was set to a limit of 1 user and then everyone was kicked
<immibis> those aren't hate speech
<CompanionCube> someone decided to make it a thing, someone mentioned it here, i joined because why not
<immibis> ?
cmrg has joined #osdev
<cmrg> There's also Cordless that might work on OpenBSD. It's a TUI client. But it's best to not use Discord at all :-)
<heat> i like discord
<gog> maybe i'll go back to freenode and sit in ##transphobia and cyberbully transphobes
<gog> but that loses its appeal fast
<heat> it's empty :(((
<gog> lol good
<gog> don't feel like being subjected to "40% lol two genders attack helicopter kek"
<CompanionCube> what about ##terf
<gog> ##gendercritical pls
<heat> what's terf?
<gog> terf is a slur
<gog> :p
<gog> Trans-Exclusionary Radical Feminist
<heat> huh
<gog> it's not actually a slur, that's just what terfs say when you rightly accuse them of being terfs
<gog> but that's way off topic and i won't get into the weeds about it :p
MiningMarsh has quit [Ping timeout: 272 seconds]
Izem has joined #osdev
vai has quit [Ping timeout: 264 seconds]
<kazinsal> terfs are what we call "acceptable targets"
<cd> ^
jjuran has quit [Ping timeout: 272 seconds]
Izem has quit [Ping timeout: 272 seconds]
jjuran has joined #osdev
sav has quit [Quit: .]
asymptotically has quit [Quit: Leaving]
jimbzy has joined #osdev
sav has joined #osdev
jimbzy has quit [Ping timeout: 264 seconds]
sav has quit [Quit: .]
sav has joined #osdev
v4skie has joined #osdev
<johnjay> i heard qcow2 has some kind of version/state saving feature. do people actually use that.
<johnjay> i guess it's called snapshotting
<johnjay> as opposed to just something like fedora.~1~, fedora.~2~, etc
jimbzy has joined #osdev
<jimbzy> Phew. FINALLY got the lawn mowed after 2 weeks of rain.
<geist> johnjay: yah i use it actually
<geist> you can actually snapshot from inside the console too
<geist> snapvm i think?
<johnjay> qemu console you mean?
<johnjay> i just want to keep a base system i can access for testing.
<doug16k> it's like saving a game. if you die you can respawn at the checkpoint (snapshot)
<johnjay> so it might be easier to just do debian.qcow2 and debian2.qcow2
<geist> right, there's basically two ways to do it: explicitly set up a qcow2 as a reference to another one
<geist> and then you can commit changes from the second to the first explicitly
<geist> or you can use the snapshot feature inside it and make as many as you want and delete old snapshots
<geist> the former is neat, but it can't be done while the vm is running
<johnjay> i see
<johnjay> wait what do you mean commit changes?
<geist> qemu-img commit i believe
<johnjay> i just want a snapshot that doesn't change then work and update or whatever in the second one
<geist> it copies changes in the second qcow to the firstone
<johnjay> ok
<geist> sure. that sounds like you want to create a qcow reference to the frist one
gareppa has joined #osdev
<Oli> johnjay, in qcow2's slang, it is named as copy on write: One can create a qcow2 copy on write image of an existing qcow2 image, using the next qemu-img command: qemu-img create -f qcow2 -o backing_file=original.qcow2 copy_on_write_file_for_original.qcow2
<jimbzy> Pro tip: If you have to mow a wet lawn spray the bottom of your mower with PAM cooking spray and marvel as nothing sticks.
<geist> i think it's just s qemu-img create with a ... yeah what Oli said
<j`ey> that's cool, ive just been copying some .qcows around recently
<geist> also SkyZ discovred me on discord
<j`ey> skyz is resourceful :P
<geist> also note if you're using btrfs or zfs or something you can just let the fs do the snapshotting for you
jjuran has quit [Ping timeout: 265 seconds]
<doug16k> I tried the experimental zfs in ubuntu 20. snapshots every apt update
<geist> i more or leess use btrfs on all my linux boxen now and use subvolumes fairly regularly
<geist> or just reflink copies. if you'e smart about it you can do some neat stuff with it
<jimbzy> I was wondering what happened to SkyZ
<jimbzy> Nothing, apparently :p
jjuran has joined #osdev
<geist> we had kicked him eventually
<johnjay> for some reason my images are .img not .qcow2 is that wrong?
<geist> since he just wouldn't stop
<geist> but he hasn't yet discovered this
<geist> but while i was reading the wiki page in the freenode channel link i stumbped upon the discord osdev thing
<geist> which i hadn't checked in a year or two
<geist> and then skyz discoveed me there
<johnjay> geist: can you give an example in simple terms so i can understand? what sort of neat stuff?
<doug16k> johnjay, if they are flat images you can use qemu-img convert
<jimbzy> geist, Just write their OS for them and let them put their name on it and they'll leave you alone.
<johnjay> doug16k: no they are qcow but they are named .img for some reason
<doug16k> ah
<geist> jimbzy: well i dont want to diss on it too hard, there seems to be some actual discussions going on there, but there's some sort of air of... i dunno
<geist> crass?
<geist> hard to describe. like it's younger folks, which are fine. everyone is young
<geist> but there's more likely to have shitposts or random rants in the channel topics or whatnot
<jimbzy> I can't say nothing because I am the master of the offtopic rant, but shitposting isn't my thing.
<geist> also it's generally an asset to discord and slac and whatnot, but sometimes having 30 channels to cover a topic seems like it spreads things too thin
<johnjay> geist: discord is more wild and crazy yes. simply for the reason it was founded as a gaming platform and has image/video thumbnail sharing.
<johnjay> it also makes creation easier so more people have them
<johnjay> whereas in irc it's less likely for me to have my irc server and you to have yours
<geist> yah i dont really mind it except for all the usual reasons if will it be around in 5 years, etc
<doug16k> I tried discord. then realized it was a "post pictures of questionable food all day" chat system
<jimbzy> You folks don't have your own IRC servers?
<johnjay> well. probably not. but that is a high bar to pass
<geist> actually i was wondering just last night if libera is connectable with old, unencrpted clients
<geist> time to brush off my old irc client from my first OS
<jimbzy> I'm not 6667
<jimbzy> erm I'm not using encryption. Port 6667
<jimbzy> My hands are kinda sore from the vibration.
<immibis> discord (not that specific one) also seems to have a slight air of being careful not to annoy the discord admins, because they will just delete your whole "server" (guild)
<immibis> which is where you end up with harsh rules instead of just saying "use common sense please"
<geist> immibis: yeah, exactly. the admin stuff is less distributed, so you're at the mercy of a few
gareppa has quit [Quit: Leaving]
v4skie has left #osdev [Leaving]
<heat> yea you can connect unencrypted
<geist> the one that immediately sets me off a teensy bit is the osdev discod has a channel for beginners and then for more advanced osdev
<geist> an the topic has a huge bold thing like DONT ASK ABOUT PAGING HERE!!!!11
<heat> hahahaha
<geist> almost certainly a joke and totally harmless, but it seems, i dunno
<geist> "OS development centric discussions. || DO NOT ASK HOW PAGING WORKS HERE OR ANYTHING TRIVIAL RELATED TO PAGING. GO TO #beginner"
<immibis> this discord guild has rules like: editor war = ban. language war = ban. advertising = ban. not english = ban. anything against discord rules = ban.
<immibis> and you know that because they are not discord admins, they will take a broad view of what might be against discord rules
<immibis> in order to avoid missing anything that the actual admins don't like
<geist> ah i see skyz just discovered the same discord channel
<geist> started posting random links to pdfs
<geist> doing the usual skyz topic drop thing
<jimbzy> Hehehe
<geist> well anyway. i kinda feel sorry for him, tried to help but i suspect he has severe ADD or something
<immibis> i'm in several minecraft modding guilds and because one of the discord rules is "no video game cheating", any time someone asks for help and accidentally reveals they have a cheat installed, you must stop helping them immediately
<geist> he just flits around between topics but can't actually stop and do the work he needs to do
<jimbzy> I got that, too, geist. ADD or ADHD or something. My ToDo lists are deeply nested.
kspalaiologos has quit [Quit: Leaving]
<jimbzy> It could just be part of parenting a child with autism, too. Little nerd doesn't understand things like "Give me a minute"
<geist> yah
<heat> now im curious about the discord server
<heat> lets see
<geist> heat: i tried to give it a good try last year but it just seemed like the overall expertise level was too low
<geist> and more importantly trying to help i didn't get a lot of serious uptake
<geist> hard to describe but it didn't seem like folks asking for help really wanted it... i guess
<heat> woah so many people
<geist> but obviously there are good olks and so
<jimbzy> They want easy answers.
<geist> yah i dont want to brush everyone with the same color, but it seems like the overall level of discourse is just lower than i think a good day here
<Oli> It is exactly how I feel about. However, they have a channel dedicated to sharing resources, and feel entices about taking a look at once I find a good time for.
<johnjay> geist: i guess the level of discourse is set by many factors. discord does have the feeling of being a causal thing for gaming or like watching a movie with friends
<johnjay> that's what i use it for
<Oli> enticed*
<johnjay> like it would be weird to go into a common area and say hi want to talk about how to assemble ikea furniture? like you could but it's not really part of the "vibe"
<heat> yeah I see what you mean
<geist> yah i am on like 10 different discord servers
<geist> but to a certain extent that's the problem. i dont have enough hours in the day to stay on top of all of them
<geist> so i typically just ignore most of them most of the time
<heat> just left the server, kinda meh
<heat> but I did find geist though, so 10/10
<johnjay> can you send me a couple of them to join?
<geist> heat: yah i think i saw you but didn't send message
<j`ey> LLVM is on discord now
<geist> we went around as to where the officialy fuchsia channel is supposed to be on. i think we actually internally settled on zulip, which no one has ever heard of
<geist> so thus no one uses, and the second 'official' channel is irc, which we just bounced to oftc
riposte has quit [Quit: Quitting]
<heat> j`ey: compiler internals being discussed in discord sounds fun lol
<heat> I would bet most of it is "hurr durr code doesn't work help"
<j`ey> lol
<j`ey> I asked some linker questions there, and got some anwsers at least!
jjuran has quit [Ping timeout: 272 seconds]
<geist> really aside from the centralized ownership, will it be around, connecting from weird clients, and everything i can totally admit that slack/discord/etc are superior technically
<cmrg> What's weird is FOSS projects being on Discord, which is known to be a botnet
<geist> but there's something about irc just being a lowest common denominator that generally speaking sticks around
<heat> cmrg: why?
jjuran has joined #osdev
<jimbzy> It just works.
<jimbzy> And it does just enough to be useful.
<johnjay> probably because text Just Works
<j`ey> because if you have a FOSS project, you have to use FOSS everything I guess?
<cmrg> heat: Because Discord has nothing to do with the FOSS philosophy
<heat> yeah for things like hanging out with friends and more casual stuff I like discord, it's a way funnier experience, but for technical stuff yeah, IRC is nice
<heat> cmrg: you called it a botnet
<bslsk05> ​spyware.neocities.org: Discord — Spyware Watchdog
<cmrg> "Further reading" has some more interesting articles
<j`ey> nothing about it being a botnet tho lol
<geist> interesting, i assumed the connection requirements to discord would make it too hard to botnet
<heat> lol that's bullshit
<geist> but i guess if you can roll a new login at any time its no big deal?
<heat> in fact there's lots of illegal activity going on in discord that they literally can't ban
<cmrg> geist: Good thing is that you can use Discord without a registered account, so I give them that
jimbzy has quit [Killed (NickServ (GHOST command used by jim_!~jim@67.6.87.211))]
<geist> nooo jimzy was killed!
<geist> rip jimzy
jimbzy has joined #osdev
<heat> jim killed jimbzy
<geist> hes dead jim
<heat> what a monster
<geist> jim on jim
<jimbzy> The Return of Jim
<geist> jim 2
<heat> also a big advantage of discord is that you can enforce 2FA, which is absolutely lovely
<doug16k> didn't even need defibrillator
<heat> no weird spammers like in IRC
<cmrg> heat: There are spammers in IRC
<cmrg> s/IRC/Discord/
<kazinsal> the jimmassacre
<jimbzy> Hopefully, that won't be much of an issue after Tuesday when they install my new 1gbps service.
<heat> cmrg, never met them
<geist> well that's true. back in 2010 when #osdev was being completely slammed with He Who Shall Not Be Named
<cmrg> I have, usually through DMs
<geist> i was pretty much ready to give up irc
<kazinsal> eugh, yeah, that was the Bad Year
<geist> was fairly convinced the whole thing couldn't sustain anything newer
<geist> side note: double check that nickserv here and other new channels you were on isn't making things public you dont want
<geist> i learned a while ago that oftc nickserv by default publishes your email, etc
<geist> not that i care, but others might
<kazinsal> yeah, check your irc client realname as well
<kazinsal> might be blasting your gecos field to the world
<kazinsal> too bad IRC doesn't have an @everyone for PSAs like that
<geist> yah i noticed i can get a cloak in oftc by checking a box but.... then nickserv info just goes ahead and shows the last ip address ic onnected from
<kazinsal> huh. bizarre
<kazinsal> seems pretty self-defeating
<jimbzy> wallops?
jjuran has quit [Ping timeout: 244 seconds]
GeDaMo has quit [Quit: Leaving.]
<meisaka> afaik, there is a message type in irc that's directed at everyone in a channel
<cmrg> geist: You can use nickserv and set "secure", "enforce" and "private"
<cmrg> Some staff on #oftc said the default changed today, so
<geist> ah good. i switched to private, though i realy dont care if folks know my email address
<geist> it's all over github
* gog meows
<heat> exactly
sortie has joined #osdev
<gog> @everyone meow
<heat> a few weeks ago I got emailed by a random dude that wanted me to teach him osdev
<sortie> That's nice. Was he arc4random?
<gog> skyz dm'd me about a week ago
* meisaka nyans
<heat> sortie: no he used srand(time(NULL)); rand()
<sortie> OK. I went to a concert and am now three beers drunk and making noodles and it is time to pull an all nigher and wake up tomorrow with a Sortix IRC network.
<kazinsal> kircd
<geist> yay
<heat> i'm 0.5L beers drunk and I found a bug
<heat> this makes me work so much better
<gog> i'm sober and everything is terrible
<immibis> meisaka: that would be called a plain old message? (aka PRIVMSG)
jimbzy has quit [Ping timeout: 264 seconds]
<heat> oh no everything is still terrible but with a taste of guinness in my moth
<heat> mouth*
<sortie> My next opponent is sendmsg(2) failing because it's called on something that's not a socket (ENOTSOCK)
<dormito> sortie: the ircd is failing that way/
<dormito> ?
<meisaka> immibis: i thought was something else, but maybe my memory fails me
<sortie> kazinsal: Solanum, also used by libera.chat :)
<sortie> dormito: Yup. Gonna debug
sav has quit [Quit: .]
<froggey> I had cl-ircd running yesterday, but too lazy to punch ports through my router, so no public access
<sortie> Woot go go froggey
<doug16k> I get ENOTSOCK sometimes when getting dressed, due to the holes in it
<dormito> it's no longer a sock/
<dormito> bah dieing laptop keyboard
<gog> with a big enoug hole any sock becomes a leg warmer
<dormito> well, maybe only an ankel warmer
<gog> doug16k: i'm gonna get you a pair of programmer socks
<gog> they increase coding ability
<doug16k> I need those
<sortie> OH
<sortie> God dammit
<dormito> find the issue already/
<sortie> Y'all will NEVER believe why send(2) works on a TCP socket but sendmsg(2) doesn't
<Oli> Do they stack?
<sortie> ... I only implemented send(2) in tcp(4) and forgot to implement sendmsg(2)
<heat> why are they different?
<sortie> Buncha extra parameters and iovec stuff
<doug16k> I don't think I have ever called sendmsg in my entire life
<heat> all my write/read/send/sendto/recv/recvfrom are implemented on top of sendmsg
<dormito> assuming you have a working sendmsg(2), it's only for unix sockets?
<sortie> I have a working sendmsg(2) for UDP
<dormito> oh
<bslsk05> ​github.com: Onyx/socket.cpp at master · heatd/Onyx · GitHub
<doug16k> sendmsg is cool
<heat> sendmmsg is much cooler
<heat> yet to implement though
<sortie> And Unix sockets
<geist> i thought you also needed sendmsg to provide datagram guarantees?
cmrg has quit [Quit: leaving]
<doug16k> is that MSG_CONFIRM ?
<doug16k> what the heck does MSG_CONFIRM mean?
<doug16k> reprobe via what ARP request?
<geist> wait until it gets an ack? (well only on TCP)
<geist> that would be kinda useful i guess: send this part of the socket and dont return until it has been fully acked by the other side
<geist> s/socket/tcp stream/
<johnjay> geist: speaking of github, is there a way to reformat it or something?
<doug16k> oh is this to quickly notice disconnections?
<geist> johnjay: reformat what?
<johnjay> oh wait nevermind
<doug16k> ah I see they explain in arp(7), my bad
<johnjay> well i went to my page and the icon i chose is huge but i chose small pixel size so it looks like crap
<johnjay> but i went to klange github and his icon is also overly large
<johnjay> i guess it's just the github site itself then
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
pretty_dumm_guy has joined #osdev
froggey has quit [Ping timeout: 264 seconds]
pbx has joined #osdev
froggey has joined #osdev
richbridger has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
<doug16k> I found a visualization of modern software running on modern hardware: https://www.shadertoy.com/view/4tGGW1
<bslsk05> ​www.shadertoy.com: Shader - Shadertoy BETA
<geist> oh that's neat
<immibis> is that the clown from SS13?
<immibis> or are they both based on some well-known clown?
<immibis> just look at how that sprite is encoded
<doug16k> this one is way beyond me how it works: http://glslsandbox.com/e#56547.0
<bslsk05> ​glslsandbox.com: GLSL Sandbox
<doug16k> sort not math postdoc
<doug16k> sorry not*
<doug16k> I mean how do you make him look around like that and tween everything. geez
geist2 has joined #osdev
<sortie> * *** Checking Ident
<sortie> * Disconnected (Remote host closed socket).
<sortie> OMG
<geist> geist2 is me as well, going to try irccloud for a bit and see how well it works for me
<geist2> sortie: this is your irc server you just wrote?
<heat> he's porting
<sortie> geist2: solanum powering this pristine network
<geist2> slowortix?
<sortie> ?
<geist2> oh you know how folks used to say 'slowaris' when talking about solaris
<sortie> I've never actually had anyone talk to me about Solaris and meant it
<geist2> yah a bygone era really
<geist2> since solaris hasn't mattered in 10 years or so
<sortie> This irc did have a comment where someone raged against solaris stdio
<geist2> i remember way back in the day (say around 2000) it was kinda the gold standard of unix implementations
<geist2> we'd spend much more time in osdev circles talking about 'what does solaris do in this case'
<heat> the gold standard of unix implementations is sortix
<sortie> lol no
<sortie> Though I have started to actually try
<heat> sortix: not written in the 90s
<heat> bsd: written in the 90s
<heat> see a trend?
<Oli> doug16k The webbrowser I am using, min, freezes with that animation a bit of time in: It looks demo-y; and am definitely saving it and figuring out how to watch later: Thank you for sharing it!
<doug16k> there are a lot of shaders on that site, not all so gpu intense as that
<doug16k> that one is in my "oh my, how?" list though :)
<doug16k> just the head movement and independence of head, the blinks are perfect, and how right the neck is, etc
jimbzy has joined #osdev
<geist> heh this M1 mac chews this one up
<geist> can you link one that's particularly expensive?
<doug16k> yeah
<geist> selfie girl i guess
<bslsk05> ​www.shadertoy.com: Shader - Shadertoy BETA
alexander has quit [Quit: leaving]
<geist> this gets about 4fps on the mac
<jimbzy> Ok. I think I got this setup right.
<bslsk05> ​www.shadertoy.com: Shader - Shadertoy BETA
<doug16k> brutal one
<geist> though i guess the size of the viewport matters a lot
<geist> oh the mac does fine on this one
<Oli> It reminded me about this whole 3:35 intro with music, in 4KB: https://www.youtube.com/watch?v=jB0vBmiTr6o
<geist> good 30fps at 1280x720
<bslsk05> ​'elevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo)' by Demoscene High-Quality Videos (Annikras) (00:03:36)
<geist> oh the mountain one falls over if i go full screen on hte mac though
<geist> at 4K
<jaevanko> Oli: Good eye, Inigo Quilez was involved in both
<Oli> Wait
<doug16k> try this one: http://glslsandbox.com/e#5935.3
<bslsk05> ​glslsandbox.com: GLSL Sandbox
<Oli> I posted it before even visiting doug16k link LOL
<doug16k> it will say your shader compiler rules or sucks
<Oli> Nice coincidence
<doug16k> more mindreading today
<doug16k> it renders "sucks" if your compiler precision isn't right
<heat> it likes nvidia and intel
<doug16k> it says "rules" on some amd I hope?
<jaevanko> it likes my amd on linux too
<jaevanko> on my machine at least
<sortie> Hmm, need to allow anonymous auth with my ircd
<doug16k> ok for a sec I thought it might not be a legit test
<jaevanko> on my phone it's just "YOU GLS COM" and then some garbage. Seems legit
<doug16k> the shader code comment mentions horrible floating point implementations that use 16 bit mantissa and throw zeros in the low 7 bits of result mantissa
<jaevanko> Anything for that throughput, right?
<doug16k> yeah, and you can get away with pretty crap precision for graphics
<doug16k> so much going on you can't notice a 2^-16 difference or smaller in the value
<doug16k> maybe seams that flicker are worst thing, that's why you share the verts though and don't have t junctions: they all use the incorrectly calculated vertex coords :P
<jaevanko> I wonder if that causes trouble when porting e.g. the HDR rendering pipeline in unreal engine - or if they just give up and use LDR
<jaevanko> Like, tone-mapping ends up a bit wonky
<doug16k> can be that big gpu doesn't have half precision and little one does and that makes it look worse
<sortie> Hmm I think my ircd can sendmsg(2) now but it doesn't seem to hear clients
<doug16k> newest ones will have float16 though
<doug16k> gotta half float16 so you can quote the stupidly high TFLOPS for it on the box :P
dennis95 has quit [Quit: Leaving]
<doug16k> have*
<heat> sortie, recvmsg?
<jaevanko> sortie: bringing up irc on your own OS? libc?
<sortie> heat: Yeah I implemented it, although the program doesn't seem to be using it
<sortie> Might be a poll thing
<sortie> jaevanko: Yeah ircd and got my own libc
<jaevanko> sick
<meisaka> a lot of servers like poll(2)
<heat> servers usually don't like poll
<heat> epoll is better ;)
<heat> or, if you're a weirdo, kpoll
<heat> excuse me, kqueue
<sortie> meisaka: Heck this thing here is even powered by an evolved version of the net stack you once contribed :)
<doug16k> don't open this link unless your gpu is powerful: http://glslsandbox.com/e#45232.1 extremely difficult shader if you put it on "1" divisor at top
<bslsk05> ​glslsandbox.com: GLSL Sandbox
<doug16k> probably slowest one I have
<meisaka> I remember these shaders
<meisaka> I ran across them when I was researching SDFs
<meisaka> sortie: scary thought :P
<sortie> meisaka: It does.. uh have some scary TODOs left in the device driver parts
<sortie> I mean I totally reworked most of your contribution beyond recognition but the driver stuff semantics remains
<heat> i feel so stupid
<heat> posix reads like legalese
<heat> "The value of the pgid argument is valid but does not match the process ID of the process indicated by the pid argument and there is no process with a process group ID that matches the value of the pgid argument in the same session as the calling process." <-- what the fuck does this mean
Ryozuki has joined #osdev
<Bitweasil> The ARM manuals are similar for similar reasons.
<doug16k> that is statement isn't it?
<Bitweasil> There's a difference between the Intel-style "Describe what you've done" manuals and the "This describes how to implement it such that you don't end up screwing it up."
<Bitweasil> I believe both the ARM manuals and the Posix standard are similar in that way.
<doug16k> I agree it is hard to map that to a sensible interpretation
<Bitweasil> It sounds like a description of matching up arguments with kernel state.
<doug16k> where is the rest of the sentence though. is that really it?
<heat> yes
<doug16k> :O
<heat> it's part of an errno
<bslsk05> ​pubs.opengroup.org: setpgid
<meisaka> that sounds to me like, you try to set a process group, but you're in the wrong session for it
<doug16k> oh it returns EPERM in that case, that adds a ton of sense to the fragment
<Bitweasil> ... I mean, that's telling you the conditions for a specific error.
<Bitweasil> In that case, it makes a ton more sense.
<Bitweasil> "If the following is true, return EPERM."
<Bitweasil> It's not the most readable thing on the planet, but it is basically a legal document.
<bslsk05> ​man7.org: setpgid(2) - Linux manual page
<Bitweasil> "To implement Posix, you must have this behavior."
<heat> compare with the man7 page
<heat> the difference is ridiculous
<heat> they never specify the behaviour for a non existent pgid, or a pgrp without a leader
<doug16k> I expect everyone to assume it does what linux does
<heat> setpgrp() is even better, they say "If setpgrp() creates a new session, then the new session has no controlling terminal." but it's never specified whether or not it creates a session
<heat> "It is unspecified whether this function behaves as setpgid(0,0) or setsid() unless the process is already a session leader. Therefore, applications are encouraged to use setpgid() or setsid() as appropriate."
<heat> ??????????
<doug16k> it did in the predicate
<doug16k> if it creates a new session
<heat> no it doesn't, it never says whether or not it creates it
<doug16k> If setpgrp() creates a new session, then...
<sortie> heat: I implemented this stuff correctly in Sortix I believe
<doug16k> what part am I missing
<sortie> setpgrp does not make a session
<heat> setpgrp is essentially UB
<heat> you can implement it as setpgid(0, 0) or setsid()
<sortie> OK don't listen too much to me
<heat> which one? who fucking knows
<sortie> heat: Don't implement setpgrp and getpgrp.
<sortie> Only setpgid and getpgid are sensible and portable
<heat> it's implemented in the libc
<heat> so it's currently doing what linux does
<sortie> Linux? How retro
<heat> (setpgid)
FreeFull has quit []
<heat> sortie: i think your setpgid is non-compliant
<heat> you can setpgid a process group leader
<sortie> Oh no
<sortie> heat: I'm too much in the zone of my own deranged madness to think about progress groups right now :)
<heat> don't worry I'm in my own deranged madness
hgoel has joined #osdev
freakazoid333 has quit [Ping timeout: 264 seconds]
pounce has joined #osdev
sav has joined #osdev
<doug16k> haha seeing if some old github code I have up still works, noticed my usb headset supports 32 bit float sample format lol
<doug16k> 8 16 24 32 formats!
<doug16k> cuckoo
Arthuria has quit [Remote host closed the connection]
sav has quit [Quit: .]
<doug16k> as if it is saying, "let's see you find some audio code so stupid it doesn't work"
<doug16k> good luck
<doug16k> signed unsigned or float
<doug16k> never seen sound device that overboard before
<meisaka> it sounds like they covered all the bases
<doug16k> stops at 48000. doesn't go to some ludicrous sample rate like some motherboard ones
<klange> ugh, not even 88k? 0/10, not worth buying
<doug16k> they are trying to cheat by hearing enemy footsteps in the game better
<doug16k> if they want to cheat they should get quad speaker - 2 rear
<doug16k> total cheat
<doug16k> you can hear exactly where they are
freakazoid334 has joined #osdev
<immibis> i'm sure anyone trying to use their sound card as a signal generator for electronics purposes appreciates high sample rates
<moon-child> s16le@48khz or bust
<doug16k> yeah, sane person usually throws it on that or 44.1 if even more timid
froggey has quit [Ping timeout: 264 seconds]
<doug16k> 1/65536th is small enough increment for mechanical thing pushing air around
<immibis> what if you are trying to run it at 1/6553 volume? Then you only have 11 steps of pushing. Can you hear it? no idea
<doug16k> humans will dynamically compensate for the quiet and crank up their sensitivity
<moon-child> I think 16-bit has _technically_ slightly less range than human hearing, but...doubt it ever matters in practice
<moon-child> immibis: this is for the hw interface. When mixing you can use 24-bit or 32-bit formats
<moon-child> (f32 is effectively 24-bit fixed-point)
<doug16k> at the end of the day ya it is 24 bit sample
<doug16k> with capability to have unusably high precision for lower numbers
<doug16k> and handle input that is way past clipping and have volume scale it down before it is ruined
froggey has joined #osdev
<doug16k> you might be just mixing sine waves in iDCT or something and it can handle whatever scale, whatever sample rate, and is float already. 2x bandwidth of 16bit sample though
seds has quit [Quit: ZNC 1.8.2 - https://znc.in]
<doug16k> I wish I had more lifetime totals known. like total disk read DMA, total keypresses, mouse distance, total number of sound card irqs, total sound card bus master TLPs
<doug16k> imagine how many times a soundcard fetched data from ram just for you?
<doug16k> a lot
<doug16k> sound card is crazy one because humans need super tight latency
<doug16k> we can hear where you are from sound that bounced off rocks man
<sortie> OK, looks like my ircd port is able to receive from and send to clients. The auth doesn't quite seem to be working or something.
seds has joined #osdev
<doug16k> when you come to kill us
<sortie> Feels like a good time to give up before it's suddenly 3-4 AM
<meisaka> I don't usually know when to give up on projects, which is why I get no sleep
<klange> Knowing when to stop is a skill in its own right...
<doug16k> I have a project called "Fast"SpectrumAnalyzer and UI update perf sucks in gnome lol
<doug16k> on 3950x + 2060 super, somehow
<doug16k> when I named it it was smooth as glass on windows qt :P
<jimbzy> How is that possible?
<doug16k> perf top blames memcpy
<doug16k> I guess I should gprof it
<jimbzy> That just blows my mind.
<doug16k> it should be 60fps near zero cpu on athlon64 800MHz
<doug16k> with 2d accelerator
<jimbzy> That's bad.
<jimbzy> Wanna get drunk about it?
<doug16k> lol
<jimbzy> ;)
<doug16k> I should go all the way and put an opengl 3.3 renderer in there
<doug16k> stutter that!
<heat> is there a way to check for debug info sanity?
<doug16k> objdump -S the whole thing - it'll whine about dwarf to stderr
<doug16k> that'll get some anyway
<doug16k> I have made it screw up the debug info and it spammed a bunch of complaints about "abbrev" things
<doug16k> for instance
<heat> i do have a dwarf error
<heat> I'm not sure if it's ok though
<doug16k> likely ok. depends on whether you have gdb blowing up or asserting or disconnecting or it's fine
<heat> i'm getting this thing where gdb gets completely screwed up when debugging my clang-built kernel
<heat> works fine with gdb
<heat> err, gcc
<doug16k> for a while there were a couple of spots I couldn't step. it went away after I improved something in the link
<doug16k> it didn't know line number info
<doug16k> one region actually of assembly
<doug16k> my assembly has full source level debug info
<doug16k> I was getting those abbrev complaints
<doug16k> I think it was having things that it thinks *must* be writable and they aren't
<doug16k> hard to imagine how that causes it though
<doug16k> I gave up and let stupid things like init_array be writable
<doug16k> gonna write that eh? lol
<doug16k> got too
<doug16k> it is absolutely convinced you will write the got
<doug16k> it doesn't know you are god
<doug16k> you said "let the got be initialized" earlier, when it wasn't paying attention
<heat> i am god
<Oli> *pets gog*
<heat> i am gog
<heat> doug16k, yeah I assume I might be screwing up the linker script and that is screwing it all up
<doug16k> I would try to put it all nicely going with the flow and see if it goes away. no weird writable in readonly or funny business
<doug16k> and never use align before/after : in output section
<doug16k> always play with . before, then let it lie
<doug16k> ld might go "no actually it needs to be even more aligned" if you play with dot before. with it in output section declaration you are a crazed guy that pulled a gun and ld says "ok ok!"