IRC channel logs
2021-09-11.log
back to list of logs
<black_knight>Good *, regarding the discussion you had yesterday, if I understand correctly, you still need to fix apic support to enable smp and x64.. is this far down the road? How could one contribute? <damo22>we need libacpica to compile as a userspace library <damo22>then we can link it to the acpi translator to fetch the PCI pin mappings <damo22>we probably dont want to import acpica code into hurd, rather push the needed tweaks upstream to acpica <damo22>but i needed to try it first so i imported it to a branch i was working on <black_knight>Why is this necessary for smp? Isn’t this about power states? <black_knight>maybe you need that to properly shutdown the rump disks? I guess <youpi>everything goes through it nowadays <youpi>irq numbering, smp cores enumeration, etc. <black_knight>Ah so you are building an IO server that work as an accountant for who is using what resource and acpi provides the tables needed for that. <damo22>i just built a minimal layer to request irq pin mappings <damo22>we need a way to call ACPI functions <damo22>so i made it call into libacpica <damo22>for example, you cant initiate Sx power states without an ACPI parser these days <damo22>the hack i have currently only works on QEMU <damo22>and we cant turn on SMP with rumpdisk because it doesnt know which IRQ to use yet <damo22>or im not sure if SMP is tied to APICs <damo22>i think you need to turn off the legacy PIC to have SMP, and that means setting up IOAPIC IRQs correctly <damo22>hence the need for ACPI parser to get the mappings <black_knight>I think I’m missing what is the basic architecture: I guess the IDT is set by gnumach, how is the Irq delivered from the gnumach gate to rumpdisk? <youpi>the interrupt handler queues an RPC message <youpi>see device_intr_notify in include/device/notify.defs <youpi>and device_intr_register / ack in device.Defs <youpi>yes. Note that we reworked it a bit <Pellescours>as said before, there is some parts but it was untested and it’s not finished <Pellescours>damo22: I tried to build hurd against upstream rump and I have 2 problems <akib>is it needed to specify cpu count at compile time? <Pellescours>it’s is able to detect the number of cpus but I don’t know if it’s able to run multiple cpus <Pellescours>1. generate the rump headers, I saw the function generatekernelheaders in the buildrump.sh but I have difficulties to generate them <damo22>oh the headers, i didnt try to get that far <damo22>the smp part is in gnumach mostly i think <ArneBab>I just tried to install git and mercurial in a Hurd, but I get the error that they both require more up to date versions of dependencies: <ArneBab> git : Depends: git-man (< 1:2.32.0-.) but 1:2.33.0-1 is to be installed <ArneBab> mercurial : Depends: mercurial-common (= 5.6.1-4) but it is not going to be installed