Skip to content

Commit f1361b3

Browse files
committed
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 d451fa2 commit f1361b3

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
@@ -431,6 +431,7 @@ func (p *configParser) getGlobalParser() *Parsers { //nolint: maintidx
431431
addParser(parser, &sequence, &simple.Enabled{Name: "busy-polling"})
432432
addParser(parser, &sequence, &simple.String{Name: "max-spread-checks"})
433433
addParser(parser, &sequence, &simple.String{Name: "close-spread-time"})
434+
addParser(parser, &sequence, &simple.Enabled{Name: "no-memory-trimming"})
434435
addParser(parser, &sequence, &simple.Enabled{Name: "noepoll"})
435436
addParser(parser, &sequence, &simple.Enabled{Name: "nokqueue"})
436437
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
@@ -73,6 +73,7 @@ global
7373
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
7474
ssl-load-extra-del-ext
7575
log 127.0.0.1:514 local0 notice
76+
no-memory-trimming
7677
expose-deprecated-directives
7778
force-cfg-parser-pause 1s
7879
warn-blocked-traffic-after 50ms

configuration/global.go

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

556+
noMemoryTrimming, err := parseBoolOption(p, "no-memory-trimming")
557+
if err != nil {
558+
return nil, err
559+
}
560+
if noMemoryTrimming {
561+
isEmpty = false
562+
options.NoMemoryTrimming = noMemoryTrimming
563+
}
564+
556565
nogetaddrinfo, err := parseBoolOption(p, "nogetaddrinfo")
557566
if err != nil {
558567
return nil, err
@@ -3269,6 +3278,10 @@ func serializePerformanceOptions(p parser.Parser, options *models.PerformanceOpt
32693278
return err
32703279
}
32713280

3281+
if err := serializeBoolOption(p, "no-memory-trimming", options.NoMemoryTrimming); err != nil {
3282+
return err
3283+
}
3284+
32723285
if err := serializeBoolOption(p, "nokqueue", options.Nokqueue); err != nil {
32733286
return err
32743287
}

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
@@ -1374,6 +1374,9 @@ definitions:
13741374
maxzlibmem:
13751375
description: Maximum amount of RAM in megabytes per process usable by the zlib
13761376
type: integer
1377+
no_memory_trimming:
1378+
description: Disables memory trimming (malloc_trim) on memory shortage or reload
1379+
type: boolean
13771380
noepoll:
13781381
description: Disable the use of the "epoll" event polling system on Linux
13791382
type: boolean

specification/models/configuration/global.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,6 +1253,9 @@ performance_options:
12531253
noevports:
12541254
type: boolean
12551255
description: Disable the use of the event ports event polling system on SunOS system derived from Solaris 10 and later
1256+
no_memory_trimming:
1257+
type: boolean
1258+
description: Disables memory trimming (malloc_trim) on memory shortage or reload
12561259
nopoll:
12571260
type: boolean
12581261
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
@@ -168,6 +168,7 @@ global
168168
nopoll
169169
nosplice
170170
nogetaddrinfo
171+
no-memory-trimming
171172
noreuseport
172173
profiling.tasks on
173174
spread-checks 10

0 commit comments

Comments
 (0)