Created attachment 200052 [details]
pciconf -vl and dmesg
jme device does not seem to send/receive packages after upgrading to 12.0-RELEASE.
1. boot into 11.2-RELEASE live-cd, assign ip to jme device, ping local gw, success
2. boot into 12.0-RELEASE live-cd, assign ip to jme device, ping local gw, failure
disabling msi and msi_x allow the device to work again. I tested each separately but it seems they must both be disabled.
FreeBSD vaio 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64
Should have said:
jme device does not seem to send/receive *PACKETS *after upgrading to 12.0-RELEASE.
pciconf and dmesg output available in attachment
I can confirm that;
I have a working 11.3-RELEASE installation on my ASUS EeeTop 1610,
and after installation of 12.0-RELAESE the jme0 interface does not receive packets anymore.
When checking with tcpdump on both ends, I see that ARP requests are received, and the remote 12.0-RELEASE box send an ARP reply back, but I never see that on the EeeTop. The running tcpdump on it only shows outgoing traffic, but no incoming. This is after a fresh installation without and tweaks, packages installed, enabled firewall et al.
(In reply to Armin Gruner from comment #3)
Armin, could you please provide the following
- uname -a output
- /var/run/dmesg.boot output (as an attachment)
- pciconf -lv output (as an attachment)
root@eeetop:~ # uname -a
FreeBSD eeetop 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64
Output of dmesg after boot and pciconf is attached;
if I remove the disables from loader.conf, pciconf instead says
"enabled" in the PCI device capability 11 of device jme0. Then, DHCP waits forever, and I don't see incoming packets, as described earlier.
Created attachment 207576 [details]
Created attachment 207577 [details]
pciconf -l output
BTW I know how to compile kernels;
this box can be rebooted anytime, and I am happy to test snapshots (or build from 12-CURRENT, any git branch/tag, I sync with https://github.com/freebsd/freebsd.git
After a quick glance into the kernel sources I see that there are changes in sys/dev/jme between stable/11 and master, though the diff is minimal.
But the changes obviously affect programming the MSI/MSIX vectors..
If you like, I can just revert those changes and test with a newly built 12-HEAD kernel..
> If you like, I can just revert those changes and test with a newly built 12-HEAD kernel..
I answer myself:
If I revert the changes in if_jme.c introduced between 11.3-RELEASE and 12.0-RELEASE, the jme0 ethernet interface is working again in 12.0-RELEASE
(In reply to Armin Gruner from comment #9)
Can you narrow this down to a specific revision?
(In reply to Armin Gruner from comment #11)
I can't see a problem in that commit, and I haven't been able to find a programmer reference for the jmicron controllers with a quick search. Linux doesn't attempt to map the interrupt sources at all. I suspect that we should simply revert the change for 12.1.
I think that's the best resolution, perhaps the committer can bring any light into darkness? -> yongari
With 12.1 imminent, I'd recommend preparing a patch (differential) for review as soon as possible, if reverting base r316820 is confirmed to resolve the issue
@Armin, can you test reverting that patch, rebuilding your kernel (or just if_jme) and explicitly confirm that it resolves the issue?
I can also test any patches.
(In reply to Hugh O'Brien from comment #15)
The patch is a reversion of base r316820