| 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 { |
nothing calls this directly
no test coverage detected