aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch')
-rw-r--r--package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch42
1 files changed, 0 insertions, 42 deletions
diff --git a/package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch b/package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch
deleted file mode 100644
index e1cfde86ba..0000000000
--- a/package/network/services/dnsmasq/patches/0035-lease-prune-lease-as-soon-as-expired.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From df6636bff61aa53ed7ad4b34d940805193c0bc74 Mon Sep 17 00:00:00 2001
-From: Florent Fourcot <florent.fourcot@wifirst.fr>
-Date: Mon, 11 Feb 2019 17:04:44 +0100
-Subject: [PATCH 35/57] lease: prune lease as soon as expired
-
-We detected a performance issue on a dnsmasq running many dhcp sessions
-(more than 10 000). At the end of the day, the server was only releasing
-old DHCP leases but was consuming a lot of CPU.
-
-It looks like curent dhcp pruning:
- 1) it's pruning old sessions (iterate on all current leases). It's
- important to note that it's only pruning session expired since more
- than one second
- 2) it's looking for next lease to expire (iterate on all current leases
- again)
- 3) it launchs an alarm to catch next expiration found in step 2). This
- value can be zero for leases just expired (but not pruned).
-
-So, for a second, dnsmasq could fall in a "prune loop" by doing:
- * Not pruning anything, since difftime() is not > 0
- * Run alarm again with zero as argument
-
-On a server with very large number of leases and releasing often
-sessions, that can waste a very big CPU time.
-
-Signed-off-by: Florent Fourcot <florent.fourcot@wifirst.fr>
-Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
----
- src/lease.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/lease.c
-+++ b/src/lease.c
-@@ -558,7 +558,7 @@ void lease_prune(struct dhcp_lease *targ
- for (lease = leases, up = &leases; lease; lease = tmp)
- {
- tmp = lease->next;
-- if ((lease->expires != 0 && difftime(now, lease->expires) > 0) || lease == target)
-+ if ((lease->expires != 0 && difftime(now, lease->expires) >= 0) || lease == target)
- {
- file_dirty = 1;
- if (lease->hostname)