Skip to content

Commit 5c531d7

Browse files
mjuragaGopher Bot
authored andcommitted
MINOR: global: add no-memory-trimming option
Add the no-memory-trimming global keyword to the config-parser and expose it as performance_options.no_memory_trimming.
1 parent 11a9d15 commit 5c531d7

12 files changed

Lines changed: 38 additions & 5 deletions

File tree

config-parser/section-parsers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ func (p *configParser) getGlobalParser() *Parsers { //nolint: maintidx
415415
addParser(parser, &sequence, &simple.Enabled{Name: "busy-polling"})
416416
addParser(parser, &sequence, &simple.String{Name: "max-spread-checks"})
417417
addParser(parser, &sequence, &simple.String{Name: "close-spread-time"})
418+
addParser(parser, &sequence, &simple.Enabled{Name: "no-memory-trimming"})
418419
addParser(parser, &sequence, &simple.Enabled{Name: "noepoll"})
419420
addParser(parser, &sequence, &simple.Enabled{Name: "nokqueue"})
420421
addParser(parser, &sequence, &simple.Enabled{Name: "noevports"})

config-parser/tests/configs/haproxy.cfg.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ global
6969
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
7070
ssl-load-extra-del-ext
7171
log 127.0.0.1:514 local0 notice
72+
no-memory-trimming
7273
expose-deprecated-directives
7374
force-cfg-parser-pause 1s
7475
warn-blocked-traffic-after 50ms

configuration/global.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,15 @@ func parsePerformanceOptions(p parser.Parser) (*models.PerformanceOptions, error
520520
options.Nosplice = nosplice
521521
}
522522

523+
noMemoryTrimming, err := parseBoolOption(p, "no-memory-trimming")
524+
if err != nil {
525+
return nil, err
526+
}
527+
if noMemoryTrimming {
528+
isEmpty = false
529+
options.NoMemoryTrimming = noMemoryTrimming
530+
}
531+
523532
nogetaddrinfo, err := parseBoolOption(p, "nogetaddrinfo")
524533
if err != nil {
525534
return nil, err
@@ -3110,6 +3119,10 @@ func serializePerformanceOptions(p parser.Parser, options *models.PerformanceOpt
31103119
return err
31113120
}
31123121

3122+
if err := serializeBoolOption(p, "no-memory-trimming", options.NoMemoryTrimming); err != nil {
3123+
return err
3124+
}
3125+
31133126
if err := serializeBoolOption(p, "nokqueue", options.Nokqueue); err != nil {
31143127
return err
31153128
}

models/performance_options.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/performance_options_compare_test.go

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/performanceoptions_diff_generated.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/performanceoptions_equal_generated.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

specification/build/haproxy_spec.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,6 +1391,9 @@ definitions:
13911391
maxzlibmem:
13921392
description: Maximum amount of RAM in megabytes per process usable by the zlib
13931393
type: integer
1394+
no_memory_trimming:
1395+
description: Disables memory trimming (malloc_trim) on memory shortage or reload
1396+
type: boolean
13941397
noepoll:
13951398
description: Disable the use of the "epoll" event polling system on Linux
13961399
type: boolean

specification/models/configuration/global.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,9 @@ performance_options:
11731173
noevports:
11741174
type: boolean
11751175
description: Disable the use of the event ports event polling system on SunOS system derived from Solaris 10 and later
1176+
no_memory_trimming:
1177+
type: boolean
1178+
description: Disables memory trimming (malloc_trim) on memory shortage or reload
11761179
nopoll:
11771180
type: boolean
11781181
description: Disable the use of the "poll" event polling system

test/configuration_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ global
156156
nopoll
157157
nosplice
158158
nogetaddrinfo
159+
no-memory-trimming
159160
noreuseport
160161
profiling.tasks on
161162
spread-checks 10

0 commit comments

Comments
 (0)