> Date: Fri, 26 Jun 2015 14:58:36 +0200 > From: Reyk Floeter <r...@openbsd.org> > > On Thu, Jun 25, 2015 at 05:43:20PM -0700, Mike Larkin wrote: > > On Fri, Jun 26, 2015 at 12:09:40AM +0200, Reyk Floeter wrote: > > > On Thu, Jun 25, 2015 at 11:04:00PM +0200, Imre Vadasz wrote: > > > > On 22:27 Thu 25 Jun , Reyk Floeter wrote: > > > > > On Thu, Jun 25, 2015 at 09:21:11PM +0200, Mark Kettenis wrote: > > > > > > There really is no excuse for using dma_alloc(9) if you have the > > > > > > bus_dmatag_t available. > > > > > > > > > > > > This re-uses tulip_busdma_allocmem(), which simplifies the code for > > > > > > allocating the dmamap and such. > > > > > > > > > > > > Unfortunately I can't test this myself right now. > > > > > > > > > > > > > > > > Fixes the panic on Hyper-V, see dmesg below. > > > > > > > > > > Unrelated to that, no interrupts on the nic with the ioapic enabled > > > > > (no traffic and autoneg timeouts). > > > > > > > > > > Reyk > > > > > > > > On DragonFly BSD and NetBSD I was able to get the NIC interrupts working > > > > with enabled ioapic, by forcing the NIC's IRQ to be configured as > > > > edge/high triggered instead of level/low in the ioapic. > > > > > > I had to try this: with a horrible hack(tm) in pci_intr_establish() I > > > turned de0 into edge triggered and everything works. > > > > > > Reyk > > > > I suspect something is amiss in our interpretation of the interrupt config > > on amd64 since de(4) works unmodified on i386 with Hyper-V. > > > > Maybe some AML parse screwup? > > > > I can confirm this, I installed an i386 VM on the same Hyper-V machine > and de works just fine without the hack. amd64's de does not.
That is curious. There are quite a few differences between the amd64 interrupt subsystem and the i386 interrupt subsystem, so there are various possibilities on how things can go wrong. Are the Hyper-V ACPI tables available somewhere?