mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
45 lines
1.9 KiB
Diff
45 lines
1.9 KiB
Diff
The sync update work queue tasks is calling uninterruptible sleep function, which is
|
|
causing high CPU load. Changed to interruptible sleep function. The stats update
|
|
task should be interruptible.
|
|
|
|
--- a/frontends/nss/ecm_nss_ipv4.c
|
|
+++ b.frontends/nss/ecm_nss_ipv4.c
|
|
@@ -2411,7 +2411,7 @@ static void ecm_nss_ipv4_stats_sync_req_
|
|
}
|
|
spin_unlock_bh(&ecm_nss_ipv4_lock);
|
|
|
|
- usleep_range(ECM_NSS_IPV4_STATS_SYNC_UDELAY - 100, ECM_NSS_IPV4_STATS_SYNC_UDELAY);
|
|
+ msleep_interruptible(ECM_NSS_IPV4_STATS_SYNC_UDELAY / 1000);
|
|
|
|
/*
|
|
* If index is 0, we are starting a new round, but if we still have time remain
|
|
@@ -2425,7 +2425,7 @@ static void ecm_nss_ipv4_stats_sync_req_
|
|
}
|
|
|
|
if (ecm_nss_ipv4_next_req_time > current_jiffies) {
|
|
- msleep(jiffies_to_msecs(ecm_nss_ipv4_next_req_time - current_jiffies));
|
|
+ msleep_interruptible(jiffies_to_msecs(ecm_nss_ipv4_next_req_time - current_jiffies));
|
|
}
|
|
ecm_nss_ipv4_roll_check_jiffies = jiffies;
|
|
ecm_nss_ipv4_next_req_time = ecm_nss_ipv4_roll_check_jiffies + ECM_NSS_IPV4_STATS_SYNC_PERIOD;
|
|
--- a/frontends/nss/ecm_nss_ipv6.c
|
|
+++ b.frontends/nss/ecm_nss_ipv6.c
|
|
@@ -2128,7 +2128,7 @@ static void ecm_nss_ipv6_stats_sync_req_
|
|
}
|
|
spin_unlock_bh(&ecm_nss_ipv6_lock);
|
|
|
|
- usleep_range(ECM_NSS_IPV6_STATS_SYNC_UDELAY - 100, ECM_NSS_IPV6_STATS_SYNC_UDELAY);
|
|
+ msleep_interruptible(ECM_NSS_IPV6_STATS_SYNC_UDELAY / 1000);
|
|
|
|
/*
|
|
* If index is 0, we are starting a new round, but if we still have time remain
|
|
@@ -2142,7 +2142,7 @@ static void ecm_nss_ipv6_stats_sync_req_
|
|
}
|
|
|
|
if (ecm_nss_ipv6_next_req_time > current_jiffies) {
|
|
- msleep(jiffies_to_msecs(ecm_nss_ipv6_next_req_time - current_jiffies));
|
|
+ msleep_interruptible(jiffies_to_msecs(ecm_nss_ipv6_next_req_time - current_jiffies));
|
|
}
|
|
ecm_nss_ipv6_roll_check_jiffies = jiffies;
|
|
ecm_nss_ipv6_next_req_time = ecm_nss_ipv6_roll_check_jiffies + ECM_NSS_IPV6_STATS_SYNC_PERIOD;
|