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 
32 namespace seastar {
33 
34 SEASTAR_MODULE_EXPORT_BEGIN
35 
36 enum class memory_allocator {
39  seastar,
43  standard,
44 };
45 
87 
101 
104  size_t reserve_additional_memory_per_shard = 0;
106 public:
108 };
109 
110 SEASTAR_MODULE_EXPORT_END
111 }
Definition: program-options.hh:290
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