| 173 | } |
| 174 | |
| 175 | void GPUMemoryPlanner::TrackAllocate(size_t alignment, size_t num_bytes, void* ptr) { |
| 176 | if (!is_stats_.load()) { |
| 177 | return; |
| 178 | } |
| 179 | |
| 180 | timeval tmp; |
| 181 | gettimeofday(&tmp, nullptr); |
| 182 | |
| 183 | auto alloc_stats = new AllocStats; |
| 184 | alloc_stats->begin = Timeval2Double(tmp); |
| 185 | alloc_stats->size = num_bytes; |
| 186 | { |
| 187 | std::lock_guard<spin_lock> l(stats_lock_); |
| 188 | ptr_stats_[ptr] = alloc_stats; |
| 189 | } |
| 190 | |
| 191 | if (SmallAlloc(num_bytes)) { |
| 192 | GetSmallBin(num_bytes)->TrackAllocate(alignment); |
| 193 | return; |
| 194 | } |
| 195 | |
| 196 | for (auto lifetime_policy : lifetime_stats_polices_) { |
| 197 | lifetime_policy->TrackAllocate(alignment, num_bytes); |
| 198 | } |
| 199 | } |
| 200 | |
| 201 | void GPUMemoryPlanner::TrackDeallocate(void* ptr) { |
| 202 | if (!is_stats_.load()) { |
nothing calls this directly
no test coverage detected