From eca84691e74aec24a676ffc170ea4133b88da276 Mon Sep 17 00:00:00 2001
From: Daniel J Blueman <daniel@numascale.com>
Date: Sat, 27 Sep 2014 20:58:11 +0800
Subject: [PATCH] Increase timeouts

Signed-off-by: Daniel J Blueman <daniel@numascale.com>
---
 drivers/edac/edac_pci_sysfs.c                 | 2 +-
 drivers/net/ethernet/broadcom/bnx2.c          | 2 +-
 drivers/net/ethernet/broadcom/bnx2.h          | 2 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +-
 drivers/net/ethernet/intel/e1000e/netdev.c    | 2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
 drivers/scsi/mpt2sas/mpt2sas_base.c           | 2 +-
 drivers/scsi/mpt3sas/mpt3sas_base.c           | 2 +-
 drivers/video/console/fbcon.c                 | 4 ++++
 mm/huge_memory.c                              | 2 +-
 mm/page-writeback.c                           | 2 +-
 mm/vmstat.c                                   | 2 +-
 net/ipv4/arp.c                                | 2 +-
 net/ipv4/route.c                              | 2 +-
 net/sched/sch_generic.c                       | 2 +-
 15 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
index e8658e4..f43b72d 100644
--- a/drivers/edac/edac_pci_sysfs.c
+++ b/drivers/edac/edac_pci_sysfs.c
@@ -24,7 +24,7 @@ static int check_pci_errors;		/* default NO check PCI parity */
 static int edac_pci_panic_on_pe;	/* default NO panic on PCI Parity */
 static int edac_pci_log_pe = 1;		/* log PCI parity errors */
 static int edac_pci_log_npe = 1;	/* log PCI non-parity error errors */
-static int edac_pci_poll_msec = 1000;	/* one second workq period */
+static int edac_pci_poll_msec = 30000;	/* one second workq period */

 static atomic_t pci_parity_count = ATOMIC_INIT(0);
 static atomic_t pci_nonparity_count = ATOMIC_INIT(0);
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 2fee73b..2d4b486 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -69,7 +69,7 @@
 #define RUN_AT(x) (jiffies + (x))

 /* Time in jiffies before concluding the transmitter is hung. */
-#define TX_TIMEOUT  (5*HZ)
+#define TX_TIMEOUT  (120*HZ)

 static char version[] =
 	"QLogic NetXtreme II Gigabit Ethernet Driver " DRV_MODULE_NAME " v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
diff --git a/drivers/net/ethernet/broadcom/bnx2.h b/drivers/net/ethernet/broadcom/bnx2.h
index 28df35d..b94efc4 100644
--- a/drivers/net/ethernet/broadcom/bnx2.h
+++ b/drivers/net/ethernet/broadcom/bnx2.h
@@ -6831,7 +6831,7 @@ struct bnx2 {
 	/* End of fields used in the performance code paths. */

 	unsigned int		current_interval;
-#define BNX2_TIMER_INTERVAL		HZ
+#define BNX2_TIMER_INTERVAL		15*HZ
 #define BNX2_SERDES_AN_TIMEOUT		(HZ / 3)
 #define BNX2_SERDES_FORCED_TIMEOUT	(HZ / 10)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index ad3d5d1..a015e68 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -1024,7 +1024,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

 	netdev->netdev_ops = &e1000_netdev_ops;
 	e1000_set_ethtool_ops(netdev);
-	netdev->watchdog_timeo = 5 * HZ;
+	netdev->watchdog_timeo = 60 * HZ;
 	netif_napi_add(netdev, &adapter->napi, e1000_clean, 64);

 	strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 247335d..f3211de 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6824,7 +6824,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	/* construct the net_device struct */
 	netdev->netdev_ops = &e1000e_netdev_ops;
 	e1000e_set_ethtool_ops(netdev);
-	netdev->watchdog_timeo = 5 * HZ;
+	netdev->watchdog_timeo = 60 * HZ;
 	netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64);
 	strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name));

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 87bd53f..5accab1 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8163,7 +8163,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

 	netdev->netdev_ops = &ixgbe_netdev_ops;
 	ixgbe_set_ethtool_ops(netdev);
-	netdev->watchdog_timeo = 5 * HZ;
+	netdev->watchdog_timeo = 60 * HZ;
 	strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name));

 	adapter->bd_number = cards_found;
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index 2f262be..9bc86ae 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -64,7 +64,7 @@

 static MPT_CALLBACK	mpt_callbacks[MPT_MAX_CALLBACKS];

-#define FAULT_POLLING_INTERVAL 1000 /* in milliseconds */
+#define FAULT_POLLING_INTERVAL 30000 /* in milliseconds */

 #define MAX_HBA_QUEUE_DEPTH	30000
 #define MAX_CHAIN_DEPTH		100000
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
index 93ce2b2..772afc0 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -65,7 +65,7 @@
 static MPT_CALLBACK	mpt_callbacks[MPT_MAX_CALLBACKS];


-#define FAULT_POLLING_INTERVAL 1000 /* in milliseconds */
+#define FAULT_POLLING_INTERVAL 30000 /* in milliseconds */

  /* maximum controller queue depth */
 #define MAX_HBA_QUEUE_DEPTH	30000
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 57b1d44..ad399a2 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -410,6 +410,7 @@ static void cursor_timer_handler(unsigned long dev_addr)

 static void fbcon_add_cursor_timer(struct fb_info *info)
 {
+#ifdef SLOW
 	struct fbcon_ops *ops = info->fbcon_par;

 	if ((!info->queue.func || info->queue.func == fb_flashcursor) &&
@@ -425,10 +426,12 @@ static void fbcon_add_cursor_timer(struct fb_info *info)
 		add_timer(&ops->cursor_timer);
 		ops->flags |= FBCON_FLAGS_CURSOR_TIMER;
 	}
+#endif
 }

 static void fbcon_del_cursor_timer(struct fb_info *info)
 {
+#ifdef SLOW
 	struct fbcon_ops *ops = info->fbcon_par;

 	if (info->queue.func == fb_flashcursor &&
@@ -436,6 +439,7 @@ static void fbcon_del_cursor_timer(struct fb_info *info)
 		del_timer_sync(&ops->cursor_timer);
 		ops->flags &= ~FBCON_FLAGS_CURSOR_TIMER;
 	}
+#endif
 }

 #ifndef MODULE
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index d9a21d06..20cc81d 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -51,7 +51,7 @@ unsigned long transparent_hugepage_flags __read_mostly =
 static unsigned int khugepaged_pages_to_scan __read_mostly = HPAGE_PMD_NR*8;
 static unsigned int khugepaged_pages_collapsed;
 static unsigned int khugepaged_full_scans;
-static unsigned int khugepaged_scan_sleep_millisecs __read_mostly = 10000;
+static unsigned int khugepaged_scan_sleep_millisecs __read_mostly = 120000;
 /* during fragmentation poll the hugepage allocator once every minute */
 static unsigned int khugepaged_alloc_sleep_millisecs __read_mostly = 60000;
 static struct task_struct *khugepaged_thread __read_mostly;
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 91d73ef..d8a42b5 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -98,7 +98,7 @@ unsigned long vm_dirty_bytes;
 /*
  * The interval between `kupdate'-style writebacks
  */
-unsigned int dirty_writeback_interval = 5 * 100; /* centiseconds */
+unsigned int dirty_writeback_interval = 30 * 100; /* centiseconds */

 EXPORT_SYMBOL_GPL(dirty_writeback_interval);

diff --git a/mm/vmstat.c b/mm/vmstat.c
index cdac773..fa0c7be 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1356,7 +1356,7 @@ static const struct file_operations proc_vmstat_file_operations = {

 #ifdef CONFIG_SMP
 static DEFINE_PER_CPU(struct delayed_work, vmstat_work);
-int sysctl_stat_interval __read_mostly = HZ;
+int sysctl_stat_interval __read_mostly = 60 * HZ;
 static cpumask_var_t cpu_stat_off;

 static void vmstat_update(struct work_struct *w)
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 1a9b99e..c5ba089 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -181,7 +181,7 @@ struct neigh_table arp_tbl = {
 			[NEIGH_VAR_LOCKTIME] = 1 * HZ,
 		},
 	},
-	.gc_interval	= 30 * HZ,
+	.gc_interval	= 300 * HZ,
 	.gc_thresh1	= 128,
 	.gc_thresh2	= 512,
 	.gc_thresh3	= 1024,
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index eaa4b00..507551a 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -2487,7 +2487,7 @@ void ip_rt_multicast_event(struct in_device *in_dev)

 #ifdef CONFIG_SYSCTL
 static int ip_rt_gc_timeout __read_mostly	= RT_GC_TIMEOUT;
-static int ip_rt_gc_interval __read_mostly  = 60 * HZ;
+static int ip_rt_gc_interval __read_mostly  = 300 * HZ;
 static int ip_rt_gc_min_interval __read_mostly	= HZ / 2;
 static int ip_rt_gc_elasticity __read_mostly	= 8;

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index fc04fe9..9f6f3b8 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -279,7 +279,7 @@ void __netdev_watchdog_up(struct net_device *dev)
 {
 	if (dev->netdev_ops->ndo_tx_timeout) {
 		if (dev->watchdog_timeo <= 0)
-			dev->watchdog_timeo = 5*HZ;
+			dev->watchdog_timeo = 60*HZ;
 		if (!mod_timer(&dev->watchdog_timer,
 			       round_jiffies(jiffies + dev->watchdog_timeo)))
 			dev_hold(dev);
--
1.9.1
diff --git a/mm/slab.c b/mm/slab.c
index 65b5dcb..4d572ead 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -653,7 +653,7 @@ static void start_cpu_timer(int cpu)
 		init_reap_node(cpu);
 		INIT_DEFERRABLE_WORK(reap_work, cache_reap);
 		schedule_delayed_work_on(cpu, reap_work,
-					__round_jiffies_relative(HZ, cpu));
+					__round_jiffies_relative(30 * HZ, cpu));
 	}
 }
 
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 1dab9df..369f2ad 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -72,7 +72,7 @@
 static const char	hcd_name [] = "ohci_hcd";
 
 #define	STATECHANGE_DELAY	msecs_to_jiffies(300)
-#define	IO_WATCHDOG_DELAY	msecs_to_jiffies(250)
+#define	IO_WATCHDOG_DELAY	msecs_to_jiffies(10000)
 
 #include "ohci.h"
 #include "pci-quirks.h"
