IRC channel logs
2024-03-21.log
back to list of logs
<azert>solid_black: it is translation fault level 0 just after turning the mmu on <azert>Is the memory identity mapped at that point? <solid_black>let's actually look at the code you got, to see if there's any reordering that would break things <solid_black>do disas/s pmap_bootstrap and send it to me in a paste <azert>I recompiled with -O0 still the same error <azert>It’s really the instruction after turning on the menu bit <solid_black>and you're saying that at that point, GDB says it cannot access the memory to disassemble? <solid_black>what's $pc, phys_ttbr0_l0_base, kernel_block_0_index, kernel_block_0, phys_ttbr0_l0_base[kernel_block_0_index] (all in hex please) just before we turn on the MMU? <azert>I will tell you in about 1 hour <azert>Tell me if you need more info <jlas9>Hi. The Debian Hurd delays a lot. Is this a known issue?. <jlas9>Hi. The Debian Hurd delays a lot. Is this a known issue?. <youpi>what do you mean by "delay"? <solid_black>azert: so phys_ttbr0_l0_base[kernel_block_0_index] is wrong, it should be 0x44000000000401, not 0x40000000000401 <youpi>how are you running it? in a qemu vm? in a virtualbox vm? etc. <solid_black>the missing 4 is why the MMU maps your address to physical 0, not physical 1 GB <jlas9>Hi youpi. in qemu, an img file. <damo22>jlas9: make sure you use kvm acceleration <solid_black>azert: that's because kernel_block_0 is 0, it should be 1 <youpi>jlas9: make sure vt-x is enabled in your bios <jlas9>delay i mean that minutes are delaying respect the true hour. now i have 11:48. <youpi>jlas9: I sometimes see some drift when the host is loaded. That's due to delays in virtualisation <youpi>ideally we'd have ntp support to compensate for that like on linux, contribution welcome ;) <solid_black>hold on, let me reconcile my understnading of how it was supposed to work with what I'm actually seeing on my end <youpi>you can put ntpdate in a cron if you want <youpi>but better implement adjtimex for ntp <solid_black>I think it got automatically enabled as a daemon or something? <youpi>that's not how it's supposed to be used, no <youpi>because that bumps the time, thus affecting stats etc. <youpi>really, better implement adjtimex <youpi>(and also we want to expose the various clocks, sure, that's another question, even if related) <solid_black>ah, I have it in /etc/network/if-up.d/ntpdate, that's what causes it to run <solid_black>but the entra 4 bit in my PTE is just BTI being enabled, because I build & test with BTI <solid_black>looks like it's not allowed to have a block entry in stage 0 translation table <solid_black>which means it got broken when I switched from 36-bit to 48-bit addresses (for glibc) <solid_black>bu apparently qemu didn't enforce this? but does now? <solid_black>you're going to need to rm build/aarch64/aarch64/aarch64asm.h to force it to be rebuilt <azert>sergey_bugaev: now it works, this is exciting <azert>I see that there are a few hardcoded constants in the new code, are you planning to work on it more <solid_black>ideally at least VM_AARCH64_T1SZ should be configurable <solid_black>also all of that pmap_bootstrap codepath makes too many assumptions about the physical memory space layout <solid_black>how much do you know about aarch64, mach, hurd internals? <azert>I know little of all of them. I’m not used to complex microcontrollers like arm64 <azert>Ok, we should target Chinese hardware manufacturers <azert>We don’t want to cut out half the world market <solid_black>I was thinking, "virt" and the various Raspberry Pi models would be the primary targets <solid_black>but also, whatever people are interested in getting to work <solid_black>so yeah, this is primarily determined by what people who are willing to hack on this would have / be interested in getting to work <solid_black>but yes, I think there's a much greater chance that people will run aarch64 hurd on bare metal and not in a vm than on x86, because of these tiny boards that people get for hacking and experimentation anyway <solid_black>it appears (but I'm *not* sure) that virtual memory is not getting CoW'ed aftre fork, the parent and the child share it <solid_black>indeed, that was the case, due to a bug in my pmap code