public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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