| 409 | } |
| 410 | |
| 411 | int |
| 412 | rte_trace_save(void) |
| 413 | { |
| 414 | struct trace *trace = trace_obj_get(); |
| 415 | struct __rte_trace_header *header; |
| 416 | uint32_t count; |
| 417 | int rc = 0; |
| 418 | |
| 419 | if (trace->nb_trace_mem_list == 0) |
| 420 | return rc; |
| 421 | |
| 422 | rc = trace_mkdir(); |
| 423 | if (rc < 0) |
| 424 | return rc; |
| 425 | |
| 426 | rc = trace_meta_save(trace); |
| 427 | if (rc) |
| 428 | return rc; |
| 429 | |
| 430 | rte_spinlock_lock(&trace->lock); |
| 431 | for (count = 0; count < trace->nb_trace_mem_list; count++) { |
| 432 | header = trace->lcore_meta[count].mem; |
| 433 | rc = trace_mem_save(trace, header, count); |
| 434 | if (rc) |
| 435 | break; |
| 436 | } |
| 437 | rte_spinlock_unlock(&trace->lock); |
| 438 | return rc; |
| 439 | } |
no test coverage detected