I am the one who imported the xen kernel from labs and I ran 9front on xen a few months ago. It supports one cpu and iirc 512mb ram. I can recover my xen configs and post them shortly. On February 21, 2015 10:46:12 AM PST, Giacomo Tesio wrote: >Thanks for your help cinap. It's an interesting dive into the kernel >internals. > >Btw, I've tried various combinations of networks drivers (virtio-net >or rtl) and plan9.ini options but with no success. > >Now I'm planning to write a plan9.ini menu with the following >configurations trying one after another looking for a working >solution. > >As far as I have undestood, I should test >1) *npmp= >2) *nomsi= >3) *acpi= >and the 4 combinations of them, right? > >Is there anything else that I can do to identify and fix the issue? > >I assigned to the 9front guest only one cpu, to reduce the variables, >but actually, if to run on xen 9front must use a single cpu, then the >disadvantage of the pv guest will be lower, and I could give it a try >too. > >Strangely, looks like I'm the first to try installing plan9 on xen in >the last few years... > > >Giacomo > >2015-02-21 12:51 GMT+01:00 : >> well, that sounds like a interrupt problem indeed. when you send >> packets, all the driver does is to put packets in transmit ring >> and optionally kick the card with some register that it should start >> transmitting. >> >> but receiving works by the card issuing a interrupt and then the >> driver looks in the receive ring if there are new packets from the >> card. >> >> if interrupt couldnt be enabled (because if broken mp tables), then >> we wont receive anything. but sending might still work because it >> doesnt need an interrupt. >> >> the relation with mp is that mp systems use the apic interrupt >> controller instead of the legacy pic controller (it is mandatory >> as you need to use the apic to bootstrap the other processors). >> >> enabling interrupt on pic is easy. you read the irq register >> from the pci config space (that the bios programmed for you)... >> sometimes, pci interrupt router needs to be programmed. >> >> apic is a bit more complicated than pic because there can be multiple >> apic controllers (and multiple processors/lapic's) and we require >> tables (from bios) to find the mapping from pci bus interrupt >> lines to the apics (which can then be programmed to send interrupts >> to the lapics/processors). >> >> and then theres msi interrupts that *some* devices support that >> do not require any tables. you program register in pci config >> space for the device and you'r done. this also works only with >> apic. >> >> when you specify *acpi= in plan9.ini, then the kernel will use >> the acpi tables instead of the mp tables. >> >> when you use *nomp=, then we will use legacy pic interrupt controller >> and only one cpu can be used (this is also what happens when we >cannot >> find mp table). >> >> -- >> cinap