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>i have done some work on this
<black_knight>Where is the source code for this?
<black_knight>I found this exchange https://www.mail-archive.com/bug-hurd@gnu.org/msg31613.html is this up to date?
<damo22> http://git.zammit.org/hurd-sv.git/?h=acpica-integrate
<damo22>we probably dont want to import acpica code into hurd, rather push the needed tweaks upstream to acpica
<damo22>and then use it as libacpica.a
<youpi>yes
<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>acpi is a beast
<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.
<black_knight>i thought you already had that
<damo22>i just built a minimal layer to request irq pin mappings
<damo22>but it also does shutdown
<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
<black_knight>What is the interface to set those messages?
<youpi>see device_intr_notify in include/device/notify.defs
<youpi>and device_intr_register / ack in device.Defs
<black_knight>I’m looking this up, thanks.. Zheng Ada work
<youpi>yes. Note that we reworked it a bit
<akib>ping Pellescours
<Pellescours>pong
<akib>does hurd support smp?
<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?
<akib>what problems???
<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
<akib>where's the source?
<Pellescours>it’s on git https://savannah.gnu.org/projects/hurd
<akib>which branch?
<Pellescours>master
<damo22>oh the headers, i didnt try to get that far
<damo22>i just linked the binary libs
<damo22>the smp part is in gnumach mostly i think
<damo22>oh hes gone
<damo22>i gtg to sleep
<Pellescours>good night
<damo22>thanks
<akib>pmy: hi
<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
<ArneBab>Is there an easy fix?