The Module That Cooked Itself
Let me tell you about the week my 10G home network turned into a gigabit nightmare.
I’ve been running a Marvell-based 10GBASE-T SFP+ module between my Unraid server and desktop for months. iPerf3 showed 9.5Gbps — looked great on paper.
Then came the three-day download marathon. Robocopy speeds dropped from 1.7GB/s to 160MB/s. Not a typo. 160 MB/s. Same as plain old gigabit.
First thought: bad cable. Then I touched the SFP+ module. It was literally too hot to keep my finger on.
Over on r/homelab, someone posted the exact same scenario: “Robocopy hits 1.7GB/s but File Explorer transfers are stuck at 160MB/s.” The culprit? Thermal throttling on the Marvell chip.
Turns out, 2.5W of heat dissipation in a tiny SFP+ form factor is a losing battle. Once the temperature crosses 75°C, CRC errors pile up, TCP retransmits eat your bandwidth, and your “10G” network performs like a 1G link.
I swapped to a Broadcom-based module rated at 1.8W. Here’s the full story, including every config and test I ran.
Marvell vs Broadcom: The Real Difference
| Metric | Marvell (Legacy) | Broadcom (New) |
|---|---|---|
| Typical Power Draw | 2.5W | 1.8W |
| Die Temp (no airflow) | 85°C+ | ~65°C |
| Throttle Threshold | ~75°C (packet loss starts) | ~80°C (gradual slowdown) |
| Vendor Lock-in | Frequent DOM warnings on Cisco/Juniper | Broad native support |
| Price | Cheap ($15-25 used) | Moderate ($30-50 new) |
The Broadcom BCM8486x chip was designed from the ground up for SFP+ thermal constraints. Marvell’s solution was basically a repurposed switch chip crammed into a module — no wonder it runs hot.
Step-by-Step: From Identification to Validation
1. Identify Your Chip Vendor
Check DOM data with ethtool -m:
# Read SFP+ vendor and part number
ethtool -m enp1s0f0 | grep -E "Vendor|Part Number"
# Marvell output:
# Vendor: MARVELL
# Part Number: 10GBase-T-SFP
# Broadcom output:
# Vendor: BROADCOM
# Part Number: BCM8486X
If your module reports CRC errors above 70°C, it’s almost certainly Marvell-based.
2. Physical Swap: Hot-Plug Isn’t Magic
SFP+ supports hot-plug, but I learned the hard way: shut down first. Some motherboards don’t renegotiate the PCIe link on hot-plug, leaving the module unrecognized. I’ve seen systems hang at pcieport errors.
Correct procedure:
- Shut down, unplug power (standby power still feeds PCIe)
- Hold power button for 5 seconds to discharge
- Remove old module, insert new one — listen for the click
- Boot up
3. Firmware & Drivers: The Hidden Trap
Broadcom modules have better compatibility, but old firmware on your NIC or switch can cause issues. My Mellanox ConnectX-3 needed an update:
# Check current firmware
flint -d /dev/mst/mt4099_pciconf0 query
# If below 2.42.5000, upgrade:
flint -d /dev/mst/mt4099_pciconf0 -i fw-ConnectX3-rel-2_42_5000.bin burn
On Linux, ensure mlx4_core or mlx5_core drivers are current. Ubuntu 22.04 with kernel 5.15 worked out of the box.
4. Validation: Don’t Trust iPerf3 Alone
A single iPerf3 run showing 9.8Gbps means nothing. Real workloads expose thermal issues fast.
My test script:
#!/bin/bash
echo "=== 1. Link Speed ==="
ethtool enp1s0f0 | grep Speed
echo "=== 2. DOM Temperature (10 min monitor) ==="
for i in {1..20}; do
ethtool -m enp1s0f0 | grep "Temperature"
sleep 30
done
echo "=== 3. Multi-thread iPerf3 (30s) ==="
iperf3 -c 192.168.10.2 -P 4 -t 30
echo "=== 4. Real File Transfer ==="
# Windows: robocopy /MT:32 /J /LOG:test.log
# Linux: rsync -avP --progress
Watch for:
- Stable temperature below 65°C
- Zero CRC errors:
ethtool -S enp1s0f0 | grep crc
Benchmark Results: Before and After
Same environment: 28°C room, closed case, no extra airflow.
| Test | Marvell Module | Broadcom Module |
|---|---|---|
| Temp after 5 min idle | 58°C | 42°C |
| Temp after 30 min load | 82°C (packet loss) | 63°C (stable) |
| iPerf3 single-thread (30s) | 9.2 Gbps | 9.5 Gbps |
| iPerf3 4-thread (30s) | 7.8 Gbps (heavy retransmits) | 9.8 Gbps |
| Robocopy 50GB file | Peak 1.7GB/s, avg 900MB/s | Peak 1.9GB/s, avg 1.8GB/s |
| CRC errors after 72 hours | 247 | 0 |
Those 247 CRC errors? That’s your bandwidth being eaten by retransmits. The Broadcom module didn’t drop a single packet.
Community Voices
This isn’t just my experience. Reddit’s r/homelab has been sounding the alarm on Marvell thermal issues for months. One thread got 33 upvotes with the exact same symptom: iPerf3 looks fine, but real transfers tank.
The consensus from r/hackernews and multiple lab forums: If you’re running 10GBASE-T SFP+ in an enclosed space, Broadcom is the only safe bet. Marvell works fine in datacenter switches with forced airflow — but in a home lab? You’re gambling.
FAQ
What’s the difference between 10G Ethernet and 10G SFP+?
10G Ethernet is the protocol — a set of rules for 10 Gbps data transmission. SFP+ is the physical transceiver that plugs into a switch or NIC to create the port. SFP+ is one way to implement 10G Ethernet.
Does SFP+ support 10Gb?
Yes. SFP+ is the enhanced version of SFP, supporting 10 Gbps instead of 1 Gbps. An SFP module can work in an SFP+ port, but the link drops to 1 Gbps. SFP ports cannot accept SFP+ modules.
What is a 10 Gigabit Ethernet SFP+ port?
It’s a port that accepts SFP+ modules for 10 Gbps connections. You can use fiber modules (SR, LR, ER, ZR) or copper modules (10GBASE-T) to connect switches, routers, and servers at high speed.
What is SFP on a switch?
SFP (Small Form-factor Pluggable) is a hot-swappable interface for connecting network and storage switches. Switches with SFP ports can handle different cable types and speeds. SFP+ is the faster version.
Best Practices Summary
| Scenario | Recommendation | Why |
|---|---|---|
| Datacenter switch (forced airflow) | Marvell or Broadcom | Active cooling handles heat |
| Home lab / enclosed case | Broadcom (1.8W) | Passive cooling is sufficient |
| Long distance (>30m) | Fiber SFP+ (LR/ER) | 10GBASE-T degrades past 30m |
| Short distance (<5m), legacy gear | 10GBASE-T SFP+ (Broadcom) | Works with existing Cat6a |
| Budget build | Used Marvell + heatsink mod | Expect thermal throttling |
Final Advice
Swapping modules sounds simple, but the ecosystem is full of traps. Some people on Reddit bought “Broadcom” modules that turned out to be relabeled Marvell chips. Others found their switch firmware was too old to recognize the new module.
My rules:
- Buy from reputable vendors only
- Check your switch’s SFP+ compatibility list
- Test temperature before hammering it with transfers
- If you can, go fiber — it’s cheaper, cooler, and more reliable
10G networking is amazing when it works. When it doesn’t, it’s a nightmare of intermittent slowdowns and phantom errors. Hope this guide saves you the trouble.