_set_affinity(cpuid);
ceph_pthread_setname(pthread_self(), thread_name.c_str());
-#ifdef WITH_SEASTAR
- crimson::os::AlienStore::configure_thread_memory();
-#endif
return entry();
}
#include "alien_store.h"
#include <map>
-#include <optional>
#include <string_view>
#include <boost/algorithm/string/trim.hpp>
#include <fmt/format.h>
#include <seastar/core/alien.hh>
#include <seastar/core/future-util.hh>
-#include <seastar/core/memory.hh>
#include <seastar/core/reactor.hh>
-#include <seastar/core/resource.hh>
#include "common/ceph_context.h"
#include "global/global_context.h"
return iter->status();
}
-void AlienStore::configure_thread_memory()
-{
- std::vector<seastar::resource::memory> layout;
- // 1 GiB for experimenting. Perhaps we'll introduce a config option later.
- // TODO: consider above.
- layout.emplace_back(seastar::resource::memory{1024 * 1024 * 1024, 0});
- seastar::memory::configure(layout, false, std::nullopt);
-}
-
}
CollectionRef ch,
const ghobject_t& oid) final;
- static void configure_thread_memory();
private:
constexpr static unsigned MAX_KEYS_PER_OMAP_GET_CALL = 32;
mutable std::unique_ptr<crimson::os::ThreadPool> tp;
#include "include/ceph_assert.h"
#include "crimson/common/config_proxy.h"
-#include "crimson/os/alienstore/alien_store.h"
using crimson::common::local_conf;
if (cpu_id >= 0) {
pin(cpu_id);
}
- crimson::os::AlienStore::configure_thread_memory();
loop(queue_max_wait);
});
}
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
-#ifdef WITH_SEASTAR
-#include "crimson/os/alienstore/alien_store.h"
-#endif
-
#include "BlueRocksEnv.h"
#include "BlueFS.h"
#include "include/stringify.h"
*path = "temp_" + stringify(++foo);
return rocksdb::Status::OK();
}
-
-void BlueRocksEnv::StartThread(void(*function)(void* arg), void* arg)
-{
-#ifdef WITH_SEASTAR
- crimson::os::AlienStore::configure_thread_memory();
-#endif
- base_t::StartThread(function, arg);
-}
class BlueFS;
class BlueRocksEnv : public rocksdb::EnvWrapper {
- using base_t = EnvWrapper;
-
void split(const std::string &fn, std::string *dir, std::string *file) {
size_t slash = fn.rfind('/');
*file = fn.substr(slash + 1);
rocksdb::Status GetAbsolutePath(const std::string& db_path,
std::string* output_path) override;
- // Start new thread taking care about Seastar's allocator init.
- void StartThread(void(*function)(void* arg), void* arg) override;
-
explicit BlueRocksEnv(BlueFS *f);
private:
BlueFS *fs;
unittest-seastar-alienstore-thread-pool --memory 256M --smp 1)
target_link_libraries(unittest-seastar-alienstore-thread-pool
crimson-os
- crimson-alienstore
crimson)
add_executable(unittest-seastar-config