From: Dave Dykstra Date: Wed, 30 Mar 2016 11:55:02 +0000 (+1300) Subject: Bug 4312: Support disabling collapsed forwarding SMP cooperation X-Git-Tag: SQUID_4_0_8~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8f7dbf74048f3950f8931e5ea38480b5d35b641e;p=thirdparty%2Fsquid.git Bug 4312: Support disabling collapsed forwarding SMP cooperation --- diff --git a/src/SquidConfig.h b/src/SquidConfig.h index 5c03b2ffc7..97842d81ff 100644 --- a/src/SquidConfig.h +++ b/src/SquidConfig.h @@ -341,6 +341,8 @@ public: #endif } onoff; + int64_t collapsed_forwarding_shared_entries_limit; + int pipeline_max_prefetch; int forward_max_tries; diff --git a/src/Transients.cc b/src/Transients.cc index 98963eb261..acb5029e5f 100644 --- a/src/Transients.cc +++ b/src/Transients.cc @@ -370,7 +370,7 @@ Transients::EntryLimit() if (!UsingSmp() || !Config.onoff.collapsed_forwarding) return 0; // no SMP collapsed forwarding possible or needed - return 16*1024; // TODO: make configurable? + return Config.collapsed_forwarding_shared_entries_limit; } /// initializes shared memory segment used by Transients diff --git a/src/cache_cf.cc b/src/cache_cf.cc index 40c6c41da2..699d06697f 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -2456,6 +2456,26 @@ free_int(int *var) *var = 0; } +static void +dump_int64_t(StoreEntry * entry, const char *name, int64_t var) +{ + storeAppendPrintf(entry, "%s %" PRId64 "\n", name, var); +} + +void +parse_int64_t(int64_t *var) +{ + int64_t i; + i = GetInteger64(); + *var = i; +} + +static void +free_int64_t(int64_t *var) +{ + *var = 0; +} + static void dump_onoff(StoreEntry * entry, const char *name, int var) { diff --git a/src/cf.data.depend b/src/cf.data.depend index e36332eee3..6f325a7388 100644 --- a/src/cf.data.depend +++ b/src/cf.data.depend @@ -51,6 +51,7 @@ icap_service_failure_limit icmp ecap_service_type int +int64_t kb_int64_t kb_size_t logformat diff --git a/src/cf.data.pre b/src/cf.data.pre index d9741dcc79..6c3c3fb685 100644 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@ -6189,6 +6189,27 @@ DOC_START simultenous refresh requests] outweigh losses from such delays. DOC_END +NAME: collapsed_forwarding_shared_entries_limit +COMMENT: (number of entries) +TYPE: int64_t +LOC: Config.collapsed_forwarding_shared_entries_limit +DEFAULT: 16384 +DOC_START + This limits the size of a table used for sharing information + about collapsible entries among SMP workers. Limiting sharing + too much results in cache content duplication and missed + collapsing opportunities. Using excessively large values + wastes shared memory. + + The limit should be significantly larger then the number of + concurrent collapsible entries one wants to share. For a cache + that handles less than 5000 concurrent requests, the default + setting of 16384 should be plenty. + + If the limit is set to zero, it disables sharing of collapsed + forwarding between SMP workers. +DOC_END + COMMENT_START TIMEOUTS -----------------------------------------------------------------------------