| 36 | PacketPool *PacketPool::default_pools_[RTE_MAX_NUMA_NODES]; |
| 37 | |
| 38 | void PacketPool::CreateDefaultPools(size_t capacity) { |
| 39 | InitDpdk(FLAGS_dpdk ? FLAGS_m : 0); |
| 40 | |
| 41 | rte_dump_physmem_layout(stdout); |
| 42 | |
| 43 | for (int sid = 0; sid < NumNumaNodes(); sid++) { |
| 44 | if (FLAGS_m == 0) { |
| 45 | LOG(WARNING) << "Hugepage is disabled! Creating PlainPacketPool for " |
| 46 | << capacity << " packets on node " << sid; |
| 47 | default_pools_[sid] = new PlainPacketPool(capacity, sid); |
| 48 | } else if (FLAGS_dpdk) { |
| 49 | LOG(INFO) << "Creating DpdkPacketPool for " << capacity |
| 50 | << " packets on node " << sid; |
| 51 | default_pools_[sid] = new DpdkPacketPool(capacity, sid); |
| 52 | } else { |
| 53 | LOG(INFO) << "Creating BessPacketPool for " << capacity |
| 54 | << " packets on node " << sid; |
| 55 | default_pools_[sid] = new BessPacketPool(capacity, sid); |
| 56 | } |
| 57 | CHECK(default_pools_[sid]) |
| 58 | << "Packet pool allocation on node " << sid << " failed!"; |
| 59 | } |
| 60 | } |
| 61 | |
| 62 | PacketPool::PacketPool(size_t capacity, int socket_id) { |
| 63 | if (!IsDpdkInitialized()) { |
nothing calls this directly
no test coverage detected