Skip to content

Commit

Permalink
Ensure ABT_THREAD_STACKSIZE>=18432 for dcpm storage class
Browse files Browse the repository at this point in the history
dcpm storage class with NDCTL enabled requires at least
18432 stack size for ULT.

PR-repos: pmdk@PR-38:11
Priority: 2
Cancel-prev-build: false

Skip-nlt: false
Skip-unit-tests: false
Skip-func-test-vm: false
Skip-test-rpms: false
Allow-unstable-test: true
Skip-func-hw-test-large: true
Skip-func-hw-test-medium: false
Skip-func-hw-test-medium-verbs-provider: true

Required-githooks: true

Signed-off-by: Tomasz Gromadzki <[email protected]>
  • Loading branch information
grom72 committed Aug 28, 2024
1 parent e3ed8f2 commit 150978c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/control/server/engine/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ package engine
import (
"fmt"
"os"
"strconv"
"strings"

"github.com/pkg/errors"
Expand All @@ -28,6 +29,8 @@ const (
envLogMasks = "D_LOG_MASK"
envLogDbgStreams = "DD_MASK"
envLogSubsystems = "DD_SUBSYS"

MIN_ABT_THREAD_STACKSIZE_FOR_DCPM = 18432
)

// FabricConfig encapsulates networking fabric configuration.
Expand Down Expand Up @@ -343,6 +346,18 @@ func (c *Config) Validate() error {
return errors.Wrap(err, "validate engine log subsystems")
}

// ensure 18k ABT stack size for engine with DCPM storage class
if c.Storage.Tiers[0].IsSCM() && c.Storage.Tiers[0].Class == storage.ClassDcpm {
stacksize, err := c.GetEnvVar("ABT_THREAD_STACKSIZE")
if err == nil {
i, err := strconv.Atoi(stacksize)
if err == nil && i >= MIN_ABT_THREAD_STACKSIZE_FOR_DCPM {
return nil
}
}
return errors.Errorf("env_var ABT_THREAD_STACKSIZE=%d is required for `dcpm` storage class", MIN_ABT_THREAD_STACKSIZE_FOR_DCPM)
}

return nil
}

Expand Down
1 change: 1 addition & 0 deletions utils/config/examples/daos_server_tcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ engines:
env_vars: # influence DAOS I/O Engine behavior by setting env variables
- FI_SOCKETS_MAX_CONN_RETRY=1
- FI_SOCKETS_CONN_TIMEOUT=2000
- ABT_THREAD_STACKSIZE=18432

# Storage definitions (one per tier)
storage:
Expand Down
3 changes: 3 additions & 0 deletions utils/config/examples/daos_server_ucx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ engines:
log_mask: ERR
log_file: /tmp/daos_engine.0.log

env_vars:
- ABT_THREAD_STACKSIZE=18432

# Storage definitions (one per tier)
storage:
-
Expand Down
3 changes: 3 additions & 0 deletions utils/config/examples/daos_server_verbs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ engines:
log_mask: ERR
log_file: /tmp/daos_engine.0.log

env_vars:
- ABT_THREAD_STACKSIZE=18432

# Storage definitions (one per tier)
storage:
-
Expand Down

0 comments on commit 150978c

Please sign in to comment.