* forcedeth broken powermanagement/irq handling ?
@ 2006-04-15 9:47 dragoran
0 siblings, 0 replies; 2+ messages in thread
From: dragoran @ 2006-04-15 9:47 UTC (permalink / raw)
To: linux-kernel
Hello
I am runnig a 2.6.16.1 kernel on a DFI LP NF4 SLI-DR Expert mobo, which
has an nvidia chipset with onboard nic. The nic works fine with the
forcedeth driver, perfomance is ok (good). The system is a x86_64 FC5
install on a dual core opteron 170 cpu with 2GB (2x1GB in dual channel)
of Ram installed.
When I suspend the machine using ACPI S3 or swsup and resume it the
network is dead. I cannot recive an packages. ifdown / ifup does not
help. Restarting the network using /sbin/service network restart also
does not get network working. Unloading and loading the driver (modprobe
-r forcedeth;modprobe forcedeth) has the same result-> dead network.
I have to reboot in order to get the network working again. I have a
static IP so no dhcp issue.
This makes suspend useles on my box, because I have to reboot anyway to
get my network working.
What could be causing this? If there is any info that I can provide to
help fixing this bug tell me.
I also noticed this (don't know if it is related or not but doubt it):
cat /proc/interrupts
CPU0 CPU1
0: 640968 628532 IO-APIC-edge timer
1: 4763 4745 IO-APIC-edge i8042
8: 0 0 IO-APIC-edge rtc
9: 0 0 IO-APIC-level acpi
14: 1552 1082 IO-APIC-edge ide0
15: 44443 44261 IO-APIC-edge ide1
16: 57625 44633 IO-APIC-level libata
17: 972904 0 IO-APIC-level eth0
...
why does all interupts of eth0 (forcedeth) goes to cpu 0 and never to 1
? irqbalance is running.
lspci output:
00:00.0 Memory controller: nVidia Corporation CK804 Memory Controller
(rev a3)
00:01.0 ISA bridge: nVidia Corporation CK804 ISA Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation CK804 SMBus (rev a2)
00:02.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2)
00:02.1 USB Controller: nVidia Corporation CK804 USB Controller (rev a3)
00:06.0 IDE interface: nVidia Corporation CK804 IDE (rev a2)
00:08.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller
(rev a3)
00:09.0 PCI bridge: nVidia Corporation CK804 PCI Bridge (rev a2)
00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3)
00:0b.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
00:0c.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
00:0d.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
00:0e.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control
01:09.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host
Controller (rev 80)
01:0a.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001
Gigabit Ethernet Controller (rev 13)
01:0b.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
01:0b.1 Input device controller: Creative Labs SB Live! MIDI/Game Port
(rev 0a)
05:00.0 VGA compatible controller: nVidia Corporation GeForce 7800 GTX
(rev a1)put:
PS: please CC me as a I am not suscriped to this list.
^ permalink raw reply [flat|nested] 2+ messages in thread
* forcedeth broken powermanagement/irq handling ?
@ 2006-09-23 8:28 Tobias Diedrich
0 siblings, 0 replies; 2+ messages in thread
From: Tobias Diedrich @ 2006-09-23 8:28 UTC (permalink / raw)
To: linux-kernel, netdev
Hi,
since there hasn't been much progress with the bugzilla entry I'm
bringing this issue to your attention here. :)
http://bugzilla.kernel.org/show_bug.cgi?id=6398
vanilla forcedeth doesn't seem to support suspend and an
ifdown/up-cycle is needed to get it working again after suspend.
Francois Romieu's "Awfully experimental" patch is working just fine
for me (with message signalled interrupts disabled) and has survived
quite a few suspend/resume cycles.
So I'd very much like to see (at least partial, with msi disabled)
suspend support for forcedeth in mainline.
Romieu's patch:
--- linux-2.6.18-rc6/drivers/net/forcedeth.c 2006-09-09 09:45:43.000000000 +0200
+++ linux-2.6.17.11-xen/drivers/net/forcedeth.c 2006-09-09 09:41:25.000000000 +0200
@@ -4433,6 +4433,50 @@
pci_set_drvdata(pci_dev, NULL);
}
+
+#ifdef CONFIG_PM
+
+static int nv_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+ struct fe_priv *np = netdev_priv(dev);
+
+ if (!netif_running(dev))
+ goto out;
+
+ netif_device_detach(dev);
+
+ // Gross.
+ nv_close(dev);
+
+ pci_save_state(pdev);
+ pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled);
+ pci_set_power_state(pdev, pci_choose_state(pdev, state));
+out:
+ return 0;
+}
+
+static int nv_resume(struct pci_dev *pdev)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+ int rc = 0;
+
+ if (!netif_running(dev))
+ goto out;
+
+ netif_device_attach(dev);
+
+ pci_set_power_state(pdev, PCI_D0);
+ pci_restore_state(pdev);
+ pci_enable_wake(pdev, PCI_D0, 0);
+
+ rc = nv_open(dev);
+out:
+ return rc;
+}
+
+#endif /* CONFIG_PM */
+
static struct pci_device_id pci_tbl[] = {
{ /* nForce Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_1),
@@ -4534,6 +4578,10 @@
.id_table = pci_tbl,
.probe = nv_probe,
.remove = __devexit_p(nv_remove),
+#ifdef CONFIG_PM
+ .suspend = nv_suspend,
+ .resume = nv_resume,
+#endif
};
--
Tobias PGP: http://9ac7e0bc.uguu.de
このメールは十割再利用されたビットで作られています。
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-09-23 12:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-15 9:47 forcedeth broken powermanagement/irq handling ? dragoran
-- strict thread matches above, loose matches on Subject: below --
2006-09-23 8:28 Tobias Diedrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox