Seastar
High performance C++ framework for concurrent servers
smp_options.hh
Go to the documentation of this file.
1/*
2 * This file is open source software, licensed to you under the terms
3 * of the Apache License, Version 2.0 (the "License"). See the NOTICE file
4 * distributed with this work for additional information regarding copyright
5 * ownership. You may not use this file except in compliance with the License.
6 *
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing,
12 * software distributed under the License is distributed on an
13 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 * KIND, either express or implied. See the License for the
15 * specific language governing permissions and limitations
16 * under the License.
17 */
18/*
19 * Copyright 2022 ScyllaDB
20 */
21
22#pragma once
23
24#ifndef SEASTAR_MODULE
25#include <seastar/util/program-options.hh>
26#include <seastar/util/modules.hh>
27#include <string>
28#endif
29
31
32namespace seastar {
33
34SEASTAR_MODULE_EXPORT_BEGIN
35
36enum class memory_allocator {
39 seastar,
44};
45
87
101
104 size_t reserve_additional_memory_per_shard = 0;
106public:
108};
109
110SEASTAR_MODULE_EXPORT_END
111}
Definition: program-options.hh:292
Seastar API namespace.
Definition: abort_on_ebadf.hh:26
memory_allocator
Definition: smp_options.hh:36
Configuration for the multicore aspect of seastar.
Definition: smp_options.hh:47
program_options::value< std::string > reserve_memory
Memory reserved to OS (if memory not specified).
Definition: smp_options.hh:55
program_options::value< resource::cpuset > cpuset
CPUs to use (in cpuset(7) format; default: all)).
Definition: smp_options.hh:51
program_options::value< std::string > memory
Memory to use, in bytes (ex: 4G) (default: all).
Definition: smp_options.hh:53
program_options::value< bool > mbind
Definition: smp_options.hh:77
program_options::value< unsigned > smp
Number of threads (default: one per CPU).
Definition: smp_options.hh:49
program_options::value< std::string > io_properties
A YAML string describing the characteristics of the I/O Subsystem.
Definition: smp_options.hh:73
program_options::value< std::string > hugepages
Path to accessible hugetlbfs mount (typically /dev/hugepages/something).
Definition: smp_options.hh:57
program_options::value< bool > thread_affinity
Definition: smp_options.hh:63
program_options::value< bool > enable_glibc_exception_scaling_workaround
Definition: smp_options.hh:82
program_options::value< bool > allow_cpus_in_remote_numa_nodes
Definition: smp_options.hh:86
program_options::value< std::string > io_properties_file
Path to a YAML file describing the characteristics of the I/O Subsystem.
Definition: smp_options.hh:71
program_options::value< bool > lock_memory
Lock all memory (prevents swapping).
Definition: smp_options.hh:59
program_options::value< unsigned > num_io_groups
Number of IO groups.
Definition: smp_options.hh:69