MCPcopy Create free account
hub / github.com/NetSys/bess / DumpMempool

Method DumpMempool

core/bessctl.cc:1396–1432  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1394 }
1395
1396 Status DumpMempool(ServerContext*, const DumpMempoolRequest* request,
1397 DumpMempoolResponse* response) override {
1398 std::lock_guard<std::recursive_mutex> lock(mutex_);
1399
1400 int socket_filter = request->socket();
1401 socket_filter =
1402 (socket_filter == -1) ? (RTE_MAX_NUMA_NODES - 1) : socket_filter;
1403 int socket = (request->socket() == -1) ? 0 : socket_filter;
1404 for (; socket <= socket_filter; socket++) {
1405 bess::PacketPool* pool = bess::PacketPool::GetDefaultPool(socket);
1406 if (!pool) {
1407 continue;
1408 }
1409
1410 rte_mempool* mempool = pool->pool();
1411 MempoolDump* dump = response->add_dumps();
1412 dump->set_socket(socket);
1413 dump->set_initialized(mempool != nullptr);
1414 if (mempool == nullptr) {
1415 continue;
1416 }
1417 struct rte_ring* ring =
1418 reinterpret_cast<struct rte_ring*>(mempool->pool_data);
1419 dump->set_mp_size(mempool->size);
1420 dump->set_mp_cache_size(mempool->cache_size);
1421 dump->set_mp_element_size(mempool->elt_size);
1422 dump->set_mp_populated_size(mempool->populated_size);
1423 dump->set_mp_available_count(rte_mempool_avail_count(mempool));
1424 dump->set_mp_in_use_count(rte_mempool_in_use_count(mempool));
1425 uint32_t ring_count = rte_ring_count(ring);
1426 uint32_t ring_free_count = rte_ring_free_count(ring);
1427 dump->set_ring_count(ring_count);
1428 dump->set_ring_free_count(ring_free_count);
1429 dump->set_ring_bytes(rte_ring_get_memsize(ring_count + ring_free_count));
1430 }
1431 return Status::OK;
1432 }
1433
1434 Status ListGateHookClass(ServerContext*, const EmptyRequest*,
1435 ListGateHookClassResponse* response) override {

Callers

nothing calls this directly

Calls 3

socketMethod · 0.80
poolMethod · 0.80
set_initializedMethod · 0.80

Tested by

no test coverage detected