Bug 271275 - [Hyper-V] Kernel cannot attach 4th NIC
Summary: [Hyper-V] Kernel cannot attach 4th NIC
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: amd64 Any
: --- Affects Many People
Assignee: freebsd-virtualization (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-06 09:57 UTC by Lorenzo
Modified: 2023-12-26 00:11 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lorenzo 2023-05-06 09:57:55 UTC
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.
Comment 1 Mina Galić freebsd_triage 2023-05-06 10:18:47 UTC
can you show a verbose boot?
Comment 2 Lorenzo 2023-05-06 21:07:01 UTC
(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
Comment 3 Yuri Pankov freebsd_committer freebsd_triage 2023-05-07 15:30:04 UTC
What is Gen of your VM? Does "all versions of FreeBSD" include -CURRENT (there are snapshots you could try)?
Comment 4 Lorenzo 2023-05-07 15:37:14 UTC
(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
Comment 5 Yuri Pankov freebsd_committer freebsd_triage 2023-05-07 16:03:25 UTC
(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.
Comment 6 Lorenzo 2023-05-07 17:21:37 UTC
(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.
Comment 7 Mark Linimon freebsd_committer freebsd_triage 2023-12-26 00:11:53 UTC
^Triage: correctly assign.