[root@localhost helloworld]# cat main.c
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation
*/
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <errno.h>
#include <sys/queue.h>
#include <rte_memory.h>
#include <rte_launch.h>
#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_lcore.h>
#include <rte_debug.h>
#include <unistd.h>
static int
lcore_hello(__attribute__((unused)) void *arg)
{
unsigned lcore_id, socket_id;
lcore_id = rte_lcore_id();
socket_id = rte_socket_id();
printf("hello from core %u
", lcore_id);
printf("socket id %u
", socket_id);
sleep(60);
return 0;
}
int
main(int argc, char **argv)
{
int ret;
unsigned lcore_id;
ret = rte_eal_init(argc, argv);
if (ret < 0)
rte_panic("Cannot init EAL
");
/* call lcore_hello() on every slave lcore */
RTE_LCORE_FOREACH_SLAVE(lcore_id) {
rte_eal_remote_launch(lcore_hello, NULL, lcore_id);
}
/* call it on master lcore too */
lcore_hello(NULL);
rte_eal_mp_wait_lcore();
return 0;
}
[root@localhost helloworld]# ./build/app/helloworld
EAL: Detected 128 lcore(s)
EAL: Detected 4 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:05:00.0 on NUMA socket 0
EAL: probe driver: 19e5:200 net_hinic
net_hinic: Initializing pf hinic-0000:05:00.0 in primary process
net_hinic: Device 0000:05:00.0 hwif attribute:
net_hinic: func_idx:0, p2p_idx:0, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:15, func_type:2
net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2
net_hinic: API CMD poll status timeout
net_hinic: chain type: 0x7
net_hinic: chain hw cpld error: 0x1
net_hinic: chain hw check error: 0x0
net_hinic: chain hw current fsm: 0x0
net_hinic: chain hw current ci: 0x0
net_hinic: Chain hw current pi: 0x1
net_hinic: Send msg to mgmt failed
net_hinic: Failed to get board info, err: -110, status: 0x0, out size: 0x0
net_hinic: Check card workmode failed, dev_name: 0000:05:00.0
net_hinic: Create nic device failed, dev_name: 0000:05:00.0
net_hinic: Initialize 0000:05:00.0 in primary failed
EAL: Requested device 0000:05:00.0 cannot be used
EAL: PCI device 0000:06:00.0 on NUMA socket 0
EAL: probe driver: 19e5:200 net_hinic
EAL: PCI device 0000:7d:00.0 on NUMA socket 0
EAL: probe driver: 19e5:a222 net_hns3
EAL: PCI device 0000:7d:00.1 on NUMA socket 0
EAL: probe driver: 19e5:a221 net_hns3
EAL: PCI device 0000:7d:00.2 on NUMA socket 0
EAL: probe driver: 19e5:a222 net_hns3
EAL: PCI device 0000:7d:00.3 on NUMA socket 0
EAL: probe driver: 19e5:a221 net_hns3
hello from core 1
socket id 0
hello from core 2
socket id 0
hello from core 3
hello from core 4
hello from core 6
socket id 0
hello from core 7
hello from core 8
socket id 0
hello from core 11
hello from core 12
socket id 0
socket id 0
hello from core 14
socket id 0
hello from core 15
socket id 0
hello from core 16
socket id 0
hello from core 5
hello from core 18
socket id 0
hello from core 19
socket id 0
hello from core 20
socket id 0
hello from core 17
socket id 0
hello from core 9
hello from core 23
socket id 0
hello from core 24
socket id 0
socket id 0
hello from core 21
socket id 0
socket id 0
hello from core 28
socket id 0
hello from core 29
socket id 0
hello from core 13
hello from core 31
socket id 0
hello from core 27
socket id 0
socket id 0
hello from core 10
socket id 0
hello from core 32
hello from core 33
socket id 1
hello from core 25
socket id 0
hello from core 22
socket id 0
socket id 0
hello from core 36
hello from core 37
socket id 1
hello from core 34
hello from core 39
socket id 1
hello from core 35
socket id 1
socket id 1
hello from core 43
socket id 1
hello from core 47
socket id 1
hello from core 26
hello from core 49
hello from core 50
socket id 1
socket id 1
hello from core 42
socket id 1
hello from core 44
socket id 1
hello from core 46
socket id 1
hello from core 38
socket id 1
socket id 1
socket id 0
hello from core 40
socket id 1
hello from core 41
socket id 1
hello from core 51
socket id 1
hello from core 30
socket id 0
hello from core 53
socket id 1
hello from core 57
socket id 1
socket id 0
hello from core 56
socket id 1
socket id 1
socket id 0
hello from core 52
socket id 1
hello from core 59
socket id 1
hello from core 48
socket id 1
hello from core 45
socket id 1
hello from core 55
socket id 1
hello from core 54
socket id 1
hello from core 58
socket id 1
hello from core 60
socket id 1
hello from core 61
socket id 1
hello from core 62
socket id 1
hello from core 63
socket id 1
hello from core 64
socket id 2
hello from core 65
hello from core 66
socket id 2
socket id 2
hello from core 68
socket id 2
hello from core 69
socket id 2
hello from core 71
socket id 2
hello from core 70
hello from core 73
socket id 2
socket id 2
hello from core 75
socket id 2
hello from core 74
hello from core 77
socket id 2
hello from core 78
hello from core 79
socket id 2
hello from core 72
hello from core 81
socket id 2
hello from core 86
socket id 2
hello from core 80
socket id 2
hello from core 89
socket id 2
hello from core 83
socket id 2
hello from core 92
socket id 2
socket id 2
hello from core 94
socket id 2
hello from core 95
socket id 2
hello from core 76
socket id 2
hello from core 82
socket id 2
hello from core 84
socket id 2
socket id 2
hello from core 93
socket id 2
hello from core 87
socket id 2
socket id 2
hello from core 90
socket id 2
hello from core 85
socket id 2
hello from core 88
hello from core 91
socket id 2
hello from core 67
socket id 2
socket id 2
hello from core 96
socket id 3
hello from core 97
socket id 3
hello from core 98
hello from core 100
socket id 3
hello from core 99
socket id 3
hello from core 101
hello from core 107
hello from core 108
socket id 3
hello from core 105
socket id 3
socket id 3
hello from core 115
socket id 3
hello from core 116
socket id 3
hello from core 109
socket id 3
hello from core 110
hello from core 120
socket id 3
hello from core 112
hello from core 122
socket id 3
socket id 3
hello from core 102
socket id 3
hello from core 125
socket id 3
hello from core 126
socket id 3
hello from core 119
socket id 3
hello from core 106
socket id 3
hello from core 127
socket id 3
hello from core 113
socket id 3
hello from core 123
socket id 3
socket id 3
hello from core 117
socket id 3
hello from core 118
socket id 3
socket id 3
hello from core 111
socket id 3
hello from core 121
socket id 3
hello from core 114
socket id 3
hello from core 103
socket id 3
hello from core 0
socket id 0
socket id 3
hello from core 124
socket id 3
hello from core 104
socket id 3
[root@localhost dpdk-ring-ping]# ps -mo pid,tid,%cpu,psr -p 125616
PID TID %CPU PSR
125616 - 63.4 -
- 125616 59.1 0
- 125617 0.0 0
- 125618 0.0 0
--------------------------- 0号cpu跑了三个线程
- 125619 0.0 1
- 125620 0.0 2
- 125621 0.0 3
- 125622 0.0 4
- 125623 0.0 5
- 125624 0.0 6
- 125625 0.0 7
- 125626 0.0 8
- 125627 0.0 9
- 125628 0.0 10
- 125629 0.0 11
- 125630 0.0 12
- 125631 0.0 13
- 125632 0.0 14
- 125633 0.0 15
- 125634 0.0 16
- 125635 0.0 17
- 125636 0.0 18
- 125637 0.0 19
- 125638 0.0 20
- 125639 0.0 21
- 125640 0.0 22
- 125641 0.0 23
- 125642 0.0 24
- 125643 0.0 25
- 125644 0.0 26
- 125645 0.0 27
- 125646 0.0 28
- 125647 0.0 29
- 125648 0.0 30
- 125649 0.0 31
- 125650 0.0 32
- 125651 0.0 33
- 125652 0.0 34
- 125653 0.0 35
- 125654 0.0 36
- 125655 0.0 37
- 125656 0.0 38
- 125657 0.0 39
- 125658 0.0 40
- 125659 0.0 41
- 125660 0.0 42
- 125661 0.0 43
- 125662 0.0 44
- 125663 0.0 45
- 125664 0.0 46
- 125665 0.0 47
- 125666 0.0 48
- 125667 0.0 49
- 125668 0.0 50
- 125669 0.0 51
- 125670 0.0 52
- 125671 0.0 53
- 125672 0.0 54
- 125673 0.0 55
- 125674 0.0 56
- 125675 0.0 57
- 125676 0.0 58
- 125677 0.0 59
- 125678 0.0 60
- 125679 0.0 61
- 125680 0.0 62
- 125681 0.0 63
- 125682 0.0 64
- 125683 0.0 65
- 125684 0.0 66
- 125685 0.0 67
- 125686 0.0 68
- 125687 0.0 69
- 125688 0.0 70
- 125689 0.0 71
- 125690 0.0 72
- 125691 0.0 73
- 125692 0.0 74
- 125693 0.0 75
- 125694 0.0 76
- 125695 0.0 77
- 125696 0.0 78
- 125697 0.0 79
- 125698 0.0 80
- 125699 0.0 81
- 125700 0.0 82
- 125701 0.0 83
- 125702 0.0 84
- 125703 0.0 85
- 125704 0.0 86
- 125705 0.0 87
- 125706 0.0 88
- 125707 0.0 89
- 125708 0.0 90
- 125709 0.0 91
- 125710 0.0 92
- 125711 0.0 93
- 125712 0.0 94
- 125713 0.0 95
- 125714 0.0 96
- 125715 0.0 97
- 125716 0.0 98
- 125717 0.0 99
- 125718 0.0 100
- 125719 0.0 101
- 125720 0.0 102
- 125721 0.0 103
- 125722 0.0 104
- 125723 0.0 105
- 125724 0.0 106
- 125725 0.0 107
- 125726 0.0 108
- 125727 0.0 109
- 125728 0.0 110
- 125729 0.0 111
- 125730 0.0 112
- 125731 0.0 113
- 125732 0.0 114
- 125733 0.0 115
- 125734 0.0 116
- 125735 0.0 117
- 125736 0.0 118
- 125737 0.0 119
- 125738 0.0 120
- 125739 0.0 121
- 125740 0.0 122
- 125741 0.0 123
- 125742 0.0 124
- 125743 0.0 125
- 125744 0.0 126
- 125745 0.0 127
[root@localhost dpdk-ring-ping]# ps -T -p 125616
PID SPID TTY TIME CMD
125616 125616 pts/1 00:00:10 helloworld
125616 125617 pts/1 00:00:00 eal-intr-thread
125616 125618 pts/1 00:00:00 rte_mp_handle
125616 125619 pts/1 00:00:00 lcore-slave-1
125616 125620 pts/1 00:00:00 lcore-slave-2
125616 125621 pts/1 00:00:00 lcore-slave-3
125616 125622 pts/1 00:00:00 lcore-slave-4
125616 125623 pts/1 00:00:00 lcore-slave-5
125616 125624 pts/1 00:00:00 lcore-slave-6
125616 125625 pts/1 00:00:00 lcore-slave-7
125616 125626 pts/1 00:00:00 lcore-slave-8
125616 125627 pts/1 00:00:00 lcore-slave-9
125616 125628 pts/1 00:00:00 lcore-slave-10
125616 125629 pts/1 00:00:00 lcore-slave-11
125616 125630 pts/1 00:00:00 lcore-slave-12
125616 125631 pts/1 00:00:00 lcore-slave-13
125616 125632 pts/1 00:00:00 lcore-slave-14
125616 125633 pts/1 00:00:00 lcore-slave-15
125616 125634 pts/1 00:00:00 lcore-slave-16
125616 125635 pts/1 00:00:00 lcore-slave-17
125616 125636 pts/1 00:00:00 lcore-slave-18
125616 125637 pts/1 00:00:00 lcore-slave-19
125616 125638 pts/1 00:00:00 lcore-slave-20
125616 125639 pts/1 00:00:00 lcore-slave-21
125616 125640 pts/1 00:00:00 lcore-slave-22
125616 125641 pts/1 00:00:00 lcore-slave-23
125616 125642 pts/1 00:00:00 lcore-slave-24
125616 125643 pts/1 00:00:00 lcore-slave-25
125616 125644 pts/1 00:00:00 lcore-slave-26
125616 125645 pts/1 00:00:00 lcore-slave-27
125616 125646 pts/1 00:00:00 lcore-slave-28
125616 125647 pts/1 00:00:00 lcore-slave-29
125616 125648 pts/1 00:00:00 lcore-slave-30
125616 125649 pts/1 00:00:00 lcore-slave-31
125616 125650 pts/1 00:00:00 lcore-slave-32
125616 125651 pts/1 00:00:00 lcore-slave-33
125616 125652 pts/1 00:00:00 lcore-slave-34
125616 125653 pts/1 00:00:00 lcore-slave-35
125616 125654 pts/1 00:00:00 lcore-slave-36
125616 125655 pts/1 00:00:00 lcore-slave-37
125616 125656 pts/1 00:00:00 lcore-slave-38
125616 125657 pts/1 00:00:00 lcore-slave-39
125616 125658 pts/1 00:00:00 lcore-slave-40
125616 125659 pts/1 00:00:00 lcore-slave-41
125616 125660 pts/1 00:00:00 lcore-slave-42
125616 125661 pts/1 00:00:00 lcore-slave-43
125616 125662 pts/1 00:00:00 lcore-slave-44
125616 125663 pts/1 00:00:00 lcore-slave-45
125616 125664 pts/1 00:00:00 lcore-slave-46
125616 125665 pts/1 00:00:00 lcore-slave-47
125616 125666 pts/1 00:00:00 lcore-slave-48
125616 125667 pts/1 00:00:00 lcore-slave-49
125616 125668 pts/1 00:00:00 lcore-slave-50
125616 125669 pts/1 00:00:00 lcore-slave-51
125616 125670 pts/1 00:00:00 lcore-slave-52
125616 125671 pts/1 00:00:00 lcore-slave-53
125616 125672 pts/1 00:00:00 lcore-slave-54
125616 125673 pts/1 00:00:00 lcore-slave-55
125616 125674 pts/1 00:00:00 lcore-slave-56
125616 125675 pts/1 00:00:00 lcore-slave-57
125616 125676 pts/1 00:00:00 lcore-slave-58
125616 125677 pts/1 00:00:00 lcore-slave-59
125616 125678 pts/1 00:00:00 lcore-slave-60
125616 125679 pts/1 00:00:00 lcore-slave-61
125616 125680 pts/1 00:00:00 lcore-slave-62
125616 125681 pts/1 00:00:00 lcore-slave-63
125616 125682 pts/1 00:00:00 lcore-slave-64
125616 125683 pts/1 00:00:00 lcore-slave-65
125616 125684 pts/1 00:00:00 lcore-slave-66
125616 125685 pts/1 00:00:00 lcore-slave-67
125616 125686 pts/1 00:00:00 lcore-slave-68
125616 125687 pts/1 00:00:00 lcore-slave-69
125616 125688 pts/1 00:00:00 lcore-slave-70
125616 125689 pts/1 00:00:00 lcore-slave-71
125616 125690 pts/1 00:00:00 lcore-slave-72
125616 125691 pts/1 00:00:00 lcore-slave-73
125616 125692 pts/1 00:00:00 lcore-slave-74
125616 125693 pts/1 00:00:00 lcore-slave-75
125616 125694 pts/1 00:00:00 lcore-slave-76
125616 125695 pts/1 00:00:00 lcore-slave-77
125616 125696 pts/1 00:00:00 lcore-slave-78
125616 125697 pts/1 00:00:00 lcore-slave-79
125616 125698 pts/1 00:00:00 lcore-slave-80
125616 125699 pts/1 00:00:00 lcore-slave-81
125616 125700 pts/1 00:00:00 lcore-slave-82
125616 125701 pts/1 00:00:00 lcore-slave-83
125616 125702 pts/1 00:00:00 lcore-slave-84
125616 125703 pts/1 00:00:00 lcore-slave-85
125616 125704 pts/1 00:00:00 lcore-slave-86
125616 125705 pts/1 00:00:00 lcore-slave-87
125616 125706 pts/1 00:00:00 lcore-slave-88
125616 125707 pts/1 00:00:00 lcore-slave-89
125616 125708 pts/1 00:00:00 lcore-slave-90
125616 125709 pts/1 00:00:00 lcore-slave-91
125616 125710 pts/1 00:00:00 lcore-slave-92
125616 125711 pts/1 00:00:00 lcore-slave-93
125616 125712 pts/1 00:00:00 lcore-slave-94
125616 125713 pts/1 00:00:00 lcore-slave-95
125616 125714 pts/1 00:00:00 lcore-slave-96
125616 125715 pts/1 00:00:00 lcore-slave-97
125616 125716 pts/1 00:00:00 lcore-slave-98
125616 125717 pts/1 00:00:00 lcore-slave-99
125616 125718 pts/1 00:00:00 lcore-slave-100
125616 125719 pts/1 00:00:00 lcore-slave-101
125616 125720 pts/1 00:00:00 lcore-slave-102
125616 125721 pts/1 00:00:00 lcore-slave-103
125616 125722 pts/1 00:00:00 lcore-slave-104
125616 125723 pts/1 00:00:00 lcore-slave-105
125616 125724 pts/1 00:00:00 lcore-slave-106
125616 125725 pts/1 00:00:00 lcore-slave-107
125616 125726 pts/1 00:00:00 lcore-slave-108
125616 125727 pts/1 00:00:00 lcore-slave-109
125616 125728 pts/1 00:00:00 lcore-slave-110
125616 125729 pts/1 00:00:00 lcore-slave-111
125616 125730 pts/1 00:00:00 lcore-slave-112
125616 125731 pts/1 00:00:00 lcore-slave-113
125616 125732 pts/1 00:00:00 lcore-slave-114
125616 125733 pts/1 00:00:00 lcore-slave-115
125616 125734 pts/1 00:00:00 lcore-slave-116
125616 125735 pts/1 00:00:00 lcore-slave-117
125616 125736 pts/1 00:00:00 lcore-slave-118
125616 125737 pts/1 00:00:00 lcore-slave-119
125616 125738 pts/1 00:00:00 lcore-slave-120
125616 125739 pts/1 00:00:00 lcore-slave-121
125616 125740 pts/1 00:00:00 lcore-slave-122
125616 125741 pts/1 00:00:00 lcore-slave-123
125616 125742 pts/1 00:00:00 lcore-slave-124
125616 125743 pts/1 00:00:00 lcore-slave-125
125616 125744 pts/1 00:00:00 lcore-slave-126
125616 125745 pts/1 00:00:00 lcore-slave-127
[root@localhost dpdk-ring-ping]#
if (rte_ctrl_thread_create(&mp_handle_tid, "rte_mp_handle",
NULL, mp_handle, NULL) < 0) {
RTE_LOG(ERR, EAL, "failed to create mp thead: %s
",
strerror(errno));
close(mp_fd);
close(dir_fd);
mp_fd = -1;
return -1;
}
static void *
mp_handle(void *arg __rte_unused)
{
struct mp_msg_internal msg;
struct sockaddr_un sa;
while (1) {
if (read_msg(&msg, &sa) == 0)
process_msg(&msg, &sa);
}
return NULL;
}
open_socket_fd(void)
{
struct sockaddr_un un;
peer_name[0] = '