On Hyper-V virtual machines with Windows Server 2008 R2 as host, FreeBSD fails to attach more than three network adapters. During boot the attach of the 4th (and consequently the 5th, 6th, ...) NIC, called as hn3, returns the error message: hn3: <Hyper-V Network Interface> on vmbus0 hn3: gpadl_conn(chan13) failed: 3221225540 hn3: chim gpadl conn failed: 5 device_attach: hn3 attach returned 5 I've run several tests and the problem occurs on all versions of FreeBSD (I've tried from 10.4 onwards). It shouldn't be a Hyper-V bug because on other guest OSes, like Windows or Debian, the problem doesn't occur.
can you show a verbose boot?
(In reply to Mina Galić from comment #1) This is for hn3: hn3: <Hyper-V Network Interface> on vmbus0 hn3: LRO: entry count 128 hn3: link RX ring 0 to chan11 hn3: link TX ring 0 to chan11 hn3: chan11 assigned to cpu0 [vcpu0] hn3: gpadl_conn(chan11) succeeded hn3: chan11 opened hn3: nvs init failed for ver 0x60001 hn3: nvs init failed for ver 0x60000 hn3: nvs init failed for ver 0x50000 hn3: nvs init failed for ver 0x40000 hn3: NVS version 0x30002, NDIS version 6.1 hn3: nvs ndis conf done hn3: gpadl_conn(chan11) succeeded hn3: gpadl_conn(chan11) failed: 3221225540 hn3: chim gpadl conn failed: 5 hn3: chan11 closed device_attach: hn3 attach returned 5 This is for hn1 which works normally: hn1: <Hyper-V Network Interface> on vmbus0 hn1: LRO: entry count 128 hn1: link RX ring 0 to chan9 hn1: link TX ring 0 to chan9 hn1: chan9 assigned to cpu0 [vcpu0] hn1: gpadl_conn(chan9) succeeded hn1: chan9 opened hn1: nvs init failed for ver 0x60001 hn1: nvs init failed for ver 0x60000 hn1: nvs init failed for ver 0x50000 hn1: nvs init failed for ver 0x40000 hn1: NVS version 0x30002, NDIS version 6.1 hn1: nvs ndis conf done hn1: gpadl_conn(chan9) succeeded hn1: gpadl_conn(chan9) succeeded hn1: chimney sending buffer 6144/2560 hn1: RNDIS ver 1.0, aggpkt size 4026531839, aggpkt cnt 8, aggpkt align 8 hn1: hwcaps rev 1 hn1: hwcaps csum: ip4 tx 0x115/0x2 rx 0x155/0x2, ip6 tx 0x15/0x2 rx 0x55/0x2 hn1: hwcaps lsov2: ip4 maxsz 62780 minsg 2 encap 0x2, ip6 maxsz 62780 minsg 2 encap 0x2 opts 0x5 hn1: NDIS TSO szmax 62780 sgmin 2 hn1: offload csum: ip4 4, tcp4 4, udp4 3, tcp6 4, udp6 3 hn1: offload lsov2: ip4 2, ip6 2 hn1: offload config done hn1: 1 TX ring, 1 RX ring hn1: TX agg size 6144, pkts 8, align 8 hn1: set RX filter 0x00000000 done hn1: RNDIS mtu 1500 hn1: TSO size max 62762 hn1: bpf attached hn1: Ethernet address: 00:15:5d:01:01:2b hn1: TSO segcnt 31 segsz 4096
What is Gen of your VM? Does "all versions of FreeBSD" include -CURRENT (there are snapshots you could try)?
(In reply to Yuri Pankov from comment #3) The VMs I tested are all Gen 1 because Windows Server 2008 R2 does not support Gen 2 VMs. Below is the list of ISOs I tested with: FreeBSD-14.0-CURRENT-amd64-20230504-4194bbb34c60-262746-bootonly.iso FreeBSD-13.2-STABLE-amd64-20230504-7dea7445ba44-255298-bootonly.iso FreeBSD-12.4-STABLE-amd64-20230504-r373064-bootonly.iso FreeBSD-11.4-RELEASE-amd64-bootonly.iso FreeBSD-10.4-RELEASE-amd64-bootonly.iso
(In reply to Lorenzo from comment #4) Got it, just tried Gen1 VM on Windows 11, and all 4 NICs (hn0-hn3) are there, so it must be something related to the host version.
(In reply to Yuri Pankov from comment #5) Googling it looks like the error code is an NTSTATUS: (:STATUS-QUOTA-EXCEEDED 3221225540 "Insufficient quota exists to complete the operation.") I don't know if this is related or just a coincidence.
^Triage: correctly assign.