<geist>
so the cpu cores can and do exist independent of the PCI bus. same with legacy PC stuff mostky
<geist>
yah PCH is relatively new. i think in the 2000s they started naming stuff that. just came laong with some variant of their chipsets. prior to that it was just the chipset, or something like PIIX or whatnot
<geist>
and/or they started saying PCH when they pulled it into the cpu socket (late 2000s)
<gog>
northbridge/southbridge
<geist>
but it's basically just a marketing term
<gog>
intel nomenclature was Memory Controller Hub and I/O Controller Hub
<geist>
yah when they started using the Hub moniker
zid has joined #osdev
<geist>
maybe with the i810 or so in the early 2000s
<zid>
Think my psu might be dying :(
<klange>
f
<gog>
PCH was when they were combined into one when PCIe started to be a thing iirc
<zid>
should switch to my i810 machine
<zid>
on the plus side, the extra fans I added to make my E5-1650 cool, make my E5-1620 *very* cool.
<zid>
And the psu can at least handle this cpu
<gog>
zid: can it be fixed
<gog>
the psu
<zid>
I've never tried.. I don't own capacitors the size of my head to try replacements
<gog>
fair
<zid>
My guess is that the 12V -> 3.3V DC/DC stage is dying
<gog>
you'd probably need a scope to see for sure
<zid>
it drops .2V under 100W of cpu load, my much beefier cpu drops it even more and the mobo turns off
<gog>
oh yeah that sounds like bad cap rather than bad fet
<papaya_>
gog: for w/e reason it complains about implicit declaration of memcmp in kc/boot/kc_main.c
<klange>
I want to reiterate that the ponysay code is absolute garbage, and porting it was an abysmal three hours of my life
bgs has quit [Ping timeout: 240 seconds]
<klange>
Also I need to update the Kuroko wasm builds because they have a parser bug...
bgs has joined #osdev
<eryjus>
klange, are you aware the links are giving "not found" errors?
<kazinsal>
I'm always impressed at the lengths you go to for a recurring April Fools joke
<gog>
papaya_: shouldn't do, it's declared in lib/lib.h
<klange>
eryjus: your client is likely borking the escapes, which is a problem on your end
<papaya_>
gog: yea I checked that and saw it too, but none the less it complains x.x
<gog>
are you running ./debug in the project root?
<papaya_>
yes
<klange>
While I was really hoping to have the ARM stuff ready and it's definitely not, PonyOS 8 is still going to be a pretty huge release since it's the first since Misaka.
<gog>
do you have CFLAGS in your env?
<papaya_>
gog: no
<eryjus>
Ahhh '%2520'
<gog>
papaya_: edit defaults.mk in the root and delete -Werror
<papaya_>
for C or CXX as well?
<klange>
> Kuroko 1.2.4 Mar 23 2022 at 09:08:22 (wasm)
<klange>
Excellent, that should fix the parsing on this one file...
<klange>
I have a static analyzer in the WASM IDE for Kuroko, which very nicely catches all the necessary variable declarations when porting Python code.
<klange>
Otherwise I have to run things and just wait for them throw undefined name errors at runtime
<gog>
papaya_: just for C
<gog>
i don't use any C++ but i had been at some point
<bslsk05>
'Why You Should Write Code That You Should Never Write - Daisy Hollman - CppCon 2021' by CppCon (01:05:14)
<mrvn>
Will the "static int count" be garbage because it remains in the write back buffer of one core when the second core initializes the static again?
<papaya_>
oh I need to install lld
<papaya_>
what is edk2-ovmf? seems to also be a dep
<gog>
papaya_: need for qemu
<papaya_>
oh is that for virtualization mode? I didn't need it when I ran my own b/c emu?
<gog>
it's a firmware image for UEFI
<papaya_>
oh ok
<gog>
also you'll have to copy /usr/share/ovmf/x64/OVMF_VARS.fd to the project root
lainon has joined #osdev
<gog>
because more deficiencies
<gog>
because i don't expect people to actually try to use this crap lol
<gog>
stop making me do work
<papaya_>
yea I just realized that about the file not being in the place it was expected
<papaya_>
lol
<gog>
it's gotta be in a place where it's R/W because idk ovmf wants it for nvram
<gog>
i think
<papaya_>
or I could just, you know, update the debug script
<papaya_>
oh
<gog>
no it has to be writeable
<papaya_>
I see
<gog>
yeah
<papaya_>
does this display anything when run?
<gog>
nah it spits debug output through qemu's magic serial port
<gog>
in sophia.log
<gog>
like i said, it literally does nothin
<papaya_>
oh ok so, no display, just debug info :o "Guest has not initialized the display (yet)."
<gog>
oh you just have to go to the monitor and type "cont"
<papaya_>
I still find it interesting to poke around at XD
<gog>
it starts in paused mode
<gog>
so if i need to attach gdb or smth
<papaya_>
oooooo ok
<gog>
it'll output until it can't use UEFI firmware calls anymore
<gog>
then everything goes into sophia.log
<papaya_>
it works :3
<papaya_>
maybe just make the debug script do the file copy from /usr/share
<papaya_>
then with the right packages installed should be an easy setup
<gog>
it's not guaranteed to be in that exact path
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
<gog>
i could just add it to the repo but it's hard to say what'll happen if OVMF changes version and any of the default efi variables change
<papaya_>
yea except it draws that char many more times than it should, and the loop after it does not do it enough it seems
<papaya_>
actually nvm that latter part
<papaya_>
yes thats the line
<papaya_>
so... removing -O2 fixes the banner
<papaya_>
so its something the optimization level did
<gog>
i was just thinking about that
<papaya_>
but -O2 shouldn't break it unless its bugged to start with no?
<mrvn>
is that with drivers in ASM?
<gog>
because it looked like it was drawing twice as many chars
<gog>
mrvn: nah this is C code
<gog>
papaya_: also not necessarily, -O2 makes certain assumptions that may or may not cause bugs in correct code
<mrvn>
if you remove the -O2 then every variable is always stored in memory so nothing can get clobbered. That's why I automatically though "asm drivers"
pretty_dumm_guy has quit [Quit: WeeChat 3.4.1]
<mrvn>
papaya_: don't make thinks uint8_t where you don't care about the size.
<mrvn>
what does PutChar look like?
lainon has joined #osdev
<papaya_>
mrvn: its in display.c
<papaya_>
LOL if I make the for loop var an int instead of uint8 it goes crazy printing tons of lines
<papaya_>
tons of line spam before reaching a prompt: for ( unsigned int Temp = 1; Temp < 79; Temp++ ) { PutChar( 0xC4 ); }
<mrvn>
Why is that Caml case by the way?
<papaya_>
mrvn: I wondered the same thing, today me is scolding 15?yr ago me about that in my head
<mrvn>
data, buffer1 but MemorySize and Temp?
<papaya_>
or maybe it was like 10yrs ago, still
<mrvn>
what does the asm for line 75 look like?
<papaya_>
mrvn: I honestly don't know what was going thru my head at the time
<papaya_>
so, I just found a way to fix it and I don't know why
<papaya_>
if I set Temp = cursor_x instead of 1 it works, even tho cursor_x should be 1 at this point..
<papaya_>
(confirmed it is 1)
<mrvn>
0xB3 is |, right?
<papaya_>
yea
zid has quit [Ping timeout: 240 seconds]
<papaya_>
whats the easiest way to view the assembler code for the method, the object file?
<mrvn>
what happens with -Os and -O1?
<gog>
objdump
<papaya_>
on main.o ?
<gog>
yeah objdump -d
<papaya_>
dumb question perhaps but what is -0s
<papaya_>
-Os
<mrvn>
papaya_: main.o doesn't have linker refrences substituted but usually it's good enough.
<papaya_>
-O1 works
<mrvn>
-Os optimizes for code size
<papaya_>
objdump the kernel binary then?
<mrvn>
Also -O2 -W -Wall -Werror
<mrvn>
papaya_: if you can't read the main.o output or the linker generated addresses/offsets matter then yes.
<papaya_>
-Os breaks
<gog>
also -Mintel-mnemonic if you prefer to read your disassembled code in intel syntax
<mrvn>
do you have output to serial? Does it fail in qemu and bochs?
<mrvn>
print out Temp to serial inside the loop
zid has joined #osdev
<mrvn>
You also might want to invest some time into implementing printf: printf("|%.78s|", " SANDBOX OS"); is so much shorter than those loops.
<bslsk05>
pastebin.com: i386/kernel: file format elf32-i386Disassembly of section .text: - Pastebin.com
<gog>
updated
<gog>
what is eiz
<gog>
what the fu
<mrvn>
101d0c:bb 4e 00 00 00 mov $0x4e,%ebx
<gog>
i have never seen a zero register
<papaya_>
looks like the loop is around 101d5e
<mrvn>
papaya_: That sets the count-down to 78.
<gog>
oh it's fake decoding
<papaya_>
78 would be the correct number of times to print...
<mrvn>
So somewhere between 101d0c and 101d5e the ebx register gets trashed.,
<papaya_>
but its going way past that
<gog>
i bet it's more of your interrupt code lol
<gog>
trashing registers with abandon
<papaya_>
oh I tried disabling interrupts
<mrvn>
Input, Output, nitializeStatusBar, SetAttrib or IRQs corrupt ebx
<gog>
TimerISR trashes EBX, EDI
<gog>
Timer_ISR*
<papaya_>
but wouldnt pushad preserve that
<gog>
err no it does pushad though
<gog>
yeah
<papaya_>
how does InitializeStatusBar trash ebx? It's a C function
<papaya_>
SetAttrib is also
<mrvn>
papaya_: which makes IRQ the top suspect
<papaya_>
cant be IRQ if it happens interrupts disabled tho?
<gog>
god ia32 assembly is like trying to read a language that's partially mutually intelligible with your native language
<mrvn>
papaya_: unless you screwed that up
<mrvn>
keyboard.s: GetKey destroys ebx, so it's the Input call.
<gog>
mrvn: we fixed that
<gog>
but
<gog>
common.s
<papaya_>
I commented out the STI line and the keyboard no longer worked, so I think IRQs were off
<gog>
Input trashes ebx
<papaya_>
Input in common.s has to return a value thru EBX I think?
<mrvn>
Oh, Input doesn't call GetKey. my bad.
<papaya_>
nvm I see now
<mrvn>
Input has to push EBX before clobbering it
<mrvn>
papaya_: I recommend making inb/outb inline asm.
<papaya_>
maybe but if I make that change the whole thing fails to boot
<mrvn>
papaya_: when you push it don't forget to pop it at the end
<papaya_>
mrvn: yes I did
* gog
pops and locks
<gog>
i should consider sleeping
<papaya_>
oh
<papaya_>
pushing EBX is shifting my function params
<papaya_>
I need to push EBX after setting EBP
<mrvn>
gog: always a good idea. Then remove Input, Output, IO_Input and IO_Output and reqrite them as C functions calling In and Out. No need to have so many asm functions.
<papaya_>
well shit, that did it
<papaya_>
ya'll are amazing
* gog
takes the gun from papaya_
* gog
empties the ebx bullets
<mrvn>
gratulations.
<gog>
stop footshooting with these
<papaya_>
no I must make all the EBX trashfires
<mrvn>
papaya_: The nice think is that if you make "inb" inline asm then the compiler can pick what register it will use with them instead of always having to shuffel stuff around and do a function call.
<gog>
yeah i have very little assembly in mine
<gog>
only where absolutely necessary
<mrvn>
papaya_: often you really just end up with a single "inb" opcode for the whole thing, at least on amd64.
<papaya_>
oh wow with that last fix it even works on my arch distro's system compiler now
<mrvn>
hehe
<papaya_>
I'm sure I'll end up needing the cross compiler still later anyway but hey its a nice touch that it just works now
<gog>
clang
<gog>
friendship ended with gcc
<gog>
now clang is my best friend
<papaya_>
I also modded my scripts to not use any vbox commands unless run-vbox.sh is explicitly used
<papaya_>
so will use qemu now
<mrvn>
"Have you compared the compile time performance for this approach and the arbitrary-index approach?" "It's garbage." "Both of them?" "EVery
<mrvn>
"Everything I've shown you in this talk is garbage -- compile time perfomance wise"
nyah has quit [Ping timeout: 252 seconds]
<gog>
mrvn: lmao
<gog>
if you care about compile time stop using c++
<gog>
best advice
<mrvn>
at least drop most of template
<mrvn>
gog: a bunch of days ago I managed to make an infinite loop of template type deduction.
<gog>
now that's really bad for compile time performance
<gog>
infinitely bad even
<papaya_>
I pushed all the changes now also
<papaya_>
now if I can figure out how to work with my disk image and loop device without having to sudo
<mrvn>
mtools can work directly on disk images
<geist>
you can just screate it once and then set the perms on the loopback /dev file to you
<rustyy>
just wanted to say thanks to whoever posted the jeff bonwick slab paper, now i can dig into slub code =)
<geist>
yah thats a good paper, though probably a bit out of date. some of the stuff on cache coloring and whatnot is probably not useful anymore
<geist>
probably mattered a lot more then most data caches were direct mapped
<rustyy>
geist: thanks (love) =)
<geist>
i actually met Jeff once. he's a really nice guy
<rustyy>
cool =)
MiningMarsh has quit [Ping timeout: 240 seconds]
MiningMarsh has joined #osdev
<papaya_>
oh there's a udisksctl command that may do what I want
<rustyy>
sonny: i fix kernel bugs, for free =) i am getting relatively good at this =)
<sonny>
tell me more, that sounds interesting
<rustyy>
sonny: currently i have a weird slub corruption bug, no reproducer, distro kernel, and it is not clear whether the bug is actually present in upstream
k8yun has quit [Quit: Leaving]
<sonny>
oh sorry, I meant getting to kernel bugs
<rustyy>
sonny: that particular bug came up for 3rd party proprietary software (company i work for), but usually i fix bug reported by syzbot
<sonny>
I haven't even heard of slub corruption yet
<sonny>
how did you confirm if you can't reproduce?
lainon has quit [Remote host closed the connection]
Arthuria has quit [Ping timeout: 240 seconds]
<rustyy>
sonny: i have a kdump =)
<sonny>
oh ok
rorx has quit [Ping timeout: 252 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rorx has joined #osdev
matrice64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sonny has quit [Ping timeout: 256 seconds]
eddof13 has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
mrvn has joined #osdev
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Payam67 has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
C-Man has quit [Ping timeout: 256 seconds]
wand has quit [Remote host closed the connection]
wand has joined #osdev
pretty_dumm_guy has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
GeDaMo has joined #osdev
lkurusa has joined #osdev
Payam67 has quit [Ping timeout: 256 seconds]
bauen1 has quit [Ping timeout: 256 seconds]
C-Man has joined #osdev
zid has quit [Ping timeout: 240 seconds]
ravan_ has quit [Remote host closed the connection]
ravan_ has joined #osdev
zid has joined #osdev
janemba has quit [Ping timeout: 256 seconds]
janemba has joined #osdev
mrvn has quit [Ping timeout: 268 seconds]
mrvn has joined #osdev
Burgundy has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.4.1]
Coldberg has joined #osdev
C-Man has quit [Ping timeout: 240 seconds]
nyah has joined #osdev
skipwich has joined #osdev
bauen1 has joined #osdev
orthoplex64 has quit [Ping timeout: 240 seconds]
Arthuria has joined #osdev
dennis95 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
Arthuria has quit [Killed (NickServ (GHOST command used by guest2795))]
Arthuria has joined #osdev
blockhead has quit []
Arthuria has quit [Ping timeout: 256 seconds]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
srjek has joined #osdev
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
Ermine has quit [Quit: Cya!]
Ermine has joined #osdev
mrkajetanp has quit [Ping timeout: 256 seconds]
k8yun has joined #osdev
bauen1 has joined #osdev
pretty_dumm_guy has joined #osdev
<gog>
mew
* papaya_
pats gog.
* gog
prrs
<zid>
Wem, a small market town in shropshire, the birthplace of Greg Davies
k8yun has quit [Read error: Connection reset by peer]
k8yun has joined #osdev
[itchyjunk] has joined #osdev
Ali_A has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
k8yun_ has joined #osdev
<papaya_>
my boss wants a date field in our app to perform keystroke validations like... if the user types 14/ then immedaitely change it to 12, or if they type a 5 then put a leading 0 instead (no 5, they'll have to type that again I guess) like what the heck are we trying to mess with our users like this for, just let them type a date and if it makes sense then fix the formatting otehrwise make them correct it
<papaya_>
themselves, too many weird assumptions, pitfalls, and bad UX trying to manually force keystroke validations in this manner /rant
<mrvn>
14 is a perfectly valid day.
<papaya_>
somehow boss just doesn't get how bad of a user experience this creates
<mrvn>
or year
k8yun has quit [Ping timeout: 252 seconds]
<mrvn>
In QT you can type 1 and then it will only accept 0, 1 or 2 next.
<papaya_>
in the US fwiw, our backwards practice is MM/DD/YYYY but yes I brought up this point, what if they are trying to put in a different format, we can't just magically change their input with no warning that will be horrible
<mrvn>
That's why you ask month as name and not number.
<papaya_>
well my boss wants to die on this hill, feels bad for our users
<papaya_>
he would have a stroke if I said users should type the month by name
<papaya_>
lol
<gog>
time is fake, date fields are unnecessary
<mrvn>
In QT when you press a key the resulting string + cursor position is put to the QValidator and if that says the input is invalid then the keystroke is simply rejected. So you can never input a wrong thing in the first place. But that sucks often when you want to edit. Like say the widget has 23 for the day. So you want to delete that and start over. delete the 3 gives you 2, OK. delete the 2 gives you 0,
<mrvn>
FAIL. no,m can't delete the 2.
<kingoffrance>
"our backwards practice" close, its middle endian :D YYYY MM DD big DD MM YYYY little
<mrvn>
kingoffrance: big-small middle endian or small-big :)
<clever>
mrvn: ive had problems where i wanted to change 200 to 300, so i backspace out the 2, but 00 then magically turns into 0 on its own!
<kingoffrance>
s/middle/mixed/
Payam69 has joined #osdev
<Bitweasil>
Yeah, if you're going to validate, do it on loss of focus, and then just mark it red or something.
<Bitweasil>
Keystroke validation sucks.
<Bitweasil>
I share the "Hate it with a burning passion" sentiment there.
<mrvn>
clever: can't delete the 2 because 0 is invalid. Can't add a 3 because 3200 is too big.
<mrvn>
clever: there are so many ways the validator can hurt you
<clever>
ive also run into problems with middle-click paste
<papaya_>
I agree Bitweasil, but my arguments against it fell flat with my boss
<clever>
a lot of sites use key-up to trigger the search
<clever>
ctrl+v has a key-up
<clever>
middle-click doesnt have a key-up
<clever>
thats what onchange is for!
<Bitweasil>
Ban pasting to the field. It's cleaner that way!
<gog>
yeah altering input while the input is taking place is nasty
<mrvn>
But it's not QTs fault. Validator also has a "intermediate" state, saying the input is not valid but can be made valide. Your validator has to use that more.
<papaya_>
There's so many ways keystroke validation can go wrong or infuriate the user
<mrvn>
papaya_: I think for near current dates the best you can do is show a calender.
<papaya_>
we do have a datepickers, its use is optional, as I feel it should be (datepickers have accessibility issues)
xenos1984 has quit [Remote host closed the connection]
knusbaum has joined #osdev
xenos1984 has joined #osdev
Ali_A has joined #osdev
kkd has joined #osdev
Oli has quit [Quit: leaving]
pretty_dumm_guy has quit [Ping timeout: 256 seconds]
sonny has quit [Quit: Ping timeout (120 seconds)]
sonny has joined #osdev
Ali_A has quit [Quit: Connection closed]
sonny has quit [Ping timeout: 256 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<sham1>
GeDaMo: I reserve the right to be skeptical
<GeDaMo>
Ask me again a thousand years after I get one :P
<j`ey>
that was a fun bug. linux kernel runtime patching, patching only the first instruction of a 4 instruction sequence, before that function was called again, ending up in a boot hang :D
terminalpusher has quit [Remote host closed the connection]
catern has joined #osdev
hbag has joined #osdev
<catern>
"We had special assembly language macros to create gates; we never fixed the compilers or the binder to let ordinary programs be gates." wtf i hate multics now
<gog>
also speaking of cats, our visitor came back this morning and his airtag was beeping and i looked at his collar again and found a name tag with a phone number. his fur is so thick i missed it before :p
<gog>
got in contact with the owner and said "hey we have your cat if you're looking for him lol"
<bslsk05>
pastebin.com: try to load kernel - Pastebin.com
<immibis>
it is a rare day that I look at IRC and I have not been kicked out of #osdev because of some connection problem and not automatically rejoining after identifying
<immibis>
why *does* this channel require identification?
<kazinsal>
slows down bots and unhinged people
<klange>
Because after the major spam wave on Freenode just a bit before the migration it was essentially required to require identification if you wanted a functioning channel.
<immibis>
Arthuria: Linux, at least on ARM, has this fake "platform bus" which is just a container for all the stuff that's not discoverable via an actual bus that supports discovering things. And its contents are either hardcoded (old kernels) or come from the device tree (which is hardcoding with extra steps, if you embed the device tree in the kernel, but it can also be in the firmware)
<sonny>
the embedded part means you already know what the application will be for, and the SDKs provide functions that describe hardware and some other related stuff?
<kazinsal>
wow yeah didn't realize the rpi pico only had 264K of RAM
<kazinsal>
that's nutty
<sonny>
so the SDK would describe the I2C, SPI, pins etc?
<heat>
think so yeah
<sonny>
ohhhh
<heat>
and really basic functions
<sonny>
ok, that makes sense
<heat>
i always think of an arduino
<sonny>
yeah, so arduino ide ... what is that?
<heat>
it's a very basic example of an embedded thing: all you do is define the main function and do stuff to the pins, the sdk does the rest
Ali_A has quit [Quit: Connection closed]
<sonny>
I see
<sonny>
it's no wonder the C ABI is so popular then
<heat>
the C ABI doesn't exist how is it popular lol
<sonny>
hmm? that's what they use for devices like this?
<heat>
C doesn't define an ABI
<sonny>
ok, so I guess the chip makers do then?
<heat>
no
wand has quit [Ping timeout: 240 seconds]
<heat>
architectures sometimes define the ABI (like RISCV)
<heat>
others don't (like x86) so it depends on the OS/toolchain
wand has joined #osdev
sonny has quit [Remote host closed the connection]