Proxmox 8 uses a kernel that enables IOMMU by default, and this does not work well with the tg3
module running on Mac Mini for its NIC. See forums below:
root:# sed -i /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=off"
root:# update-grub
journalctl
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 0x00007030: 0x0001f200, 0x00002410, 0x00030030, 0x00000000
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 0x00007500: 0x00000000, 0x00000000, 0x00000080, 0x00000000
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 0: Host status block [00000005:00000079:(0000:00f3:0000):(0000:0034)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 0: NAPI info [00000078:00000078:(0036:0033:01ff):0000:(01ba:0000:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 1: Host status block [00000001:000000cc:(0000:0000:0000):(00cf:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 1: NAPI info [000000cc:000000cc:(0000:0000:01ff):00cf:(00cf:00cf:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 2: Host status block [00000001:00000022:(0024:0000:0000):(0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 2: NAPI info [00000022:00000022:(0000:0000:01ff):0024:(0024:0024:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 3: Host status block [00000001:0000004c:(0000:0000:0000):(0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 3: NAPI info [0000004c:0000004c:(0000:0000:01ff):03ff:(01ff:01ff:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: Link is down
Nov 26 04:21:29 calico kernel: vmbr0: port 1(enp4s0) entered disabled state
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 1: Host status block [00000001:000000cc:(0000:0000:0000):(00cf:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 1: NAPI info [000000cc:000000cc:(0000:0000:01ff):00cf:(00cf:00cf:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 2: Host status block [00000001:00000022:(0024:0000:0000):(0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 2: NAPI info [00000022:00000022:(0000:0000:01ff):0024:(0024:0024:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 3: Host status block [00000001:0000004c:(0000:0000:0000):(0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: 3: NAPI info [0000004c:0000004c:(0000:0000:01ff):03ff:(01ff:01ff:0000:0000)]
Nov 26 04:21:29 calico kernel: tg3 0000:04:00.0 enp4s0: Link is down
Nov 26 04:21:29 calico kernel: vmbr0: port 1(enp4s0) entered disabled state
Nov 26 04:21:32 calico kernel: tg3 0000:04:00.0 enp4s0: Link is up at 1000 Mbps, full duplex
Nov 26 04:21:32 calico kernel: tg3 0000:04:00.0 enp4s0: Flow control is on for TX and on for RX
Nov 26 04:21:32 calico kernel: tg3 0000:04:00.0 enp4s0: EEE is disabled
Nov 26 04:21:32 calico kernel: vmbr0: port 1(enp4s0) entered blocking state
Nov 26 04:21:32 calico kernel: vmbr0: port 1(enp4s0) entered forwarding state
Nov 26 04:26:04 calico kernel: tg3 0000:04:00.0 enp4s0: DMA Status error. Resetting chip.
Nov 26 04:26:08 calico kernel: tg3 0000:04:00.0 enp4s0: 0x00000000: 0x168614e4, 0x00100406, 0x02000001, 0x00000040
Nov 26 04:26:08 calico kernel: tg3 0000:04:00.0 enp4s0: 0x00000010: 0x8161000c, 0x00000000, 0x8160000c, 0x00000000
Nov 26 04:26:08 calico kernel: tg3 0000:04:00.0 enp4s0: 0x00000020: 0x00000000, 0x00000000, 0x00000000, 0x0099106b
Some forums suggested enabling IOMMU in passthrough mode instead, may also be a possible solution:
# IOMMU enabled
root:# journalctl -b-1 | grep "DMAR: IOMMU" | head -n1
Nov 26 09:42:17 calico kernel: DMAR: IOMMU feature fl1gp_support inconsistent
# IOMMU disabled
root:# journalctl -b0 | grep "DMAR: IOMMU" | head -n1
Nov 26 09:48:06 calico kernel: DMAR: IOMMU disabled
# If IOMMU was already disabled, then enable PCI passthrough instead
root:# sed -i /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"