]> git.droids-corp.org - dpdk.git/commitdiff
ipc: support --no-shconf mode
authorAnatoly Burakov <anatoly.burakov@intel.com>
Fri, 13 Jul 2018 12:47:58 +0000 (13:47 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 13 Jul 2018 13:32:43 +0000 (15:32 +0200)
IPC is an inter-process communication mechanism. Since no secondaries
can ever be expected to run in no-shconf mode, IPC will be useless, so
do not enable it in the first place. In the interests of API usage
convenience, we will still allow registering callbacks, but obviously
they won't ever be triggered.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/common/eal_common_proc.c

index 0974e329bccbb6b2051ec6129b10dcc7b823d78d..9fcb9121908d28af027696b8fadf87fb4b18c64c 100644 (file)
@@ -572,6 +572,14 @@ rte_mp_channel_init(void)
        int dir_fd;
        pthread_t mp_handle_tid;
 
+       /* in no shared files mode, we do not have secondary processes support,
+        * so no need to initialize IPC.
+        */
+       if (internal_config.no_shconf) {
+               RTE_LOG(DEBUG, EAL, "No shared files mode enabled, IPC will be disabled\n");
+               return 0;
+       }
+
        /* create filter path */
        create_socket_path("*", path, sizeof(path));
        strlcpy(mp_filter, basename(path), sizeof(mp_filter));
@@ -930,6 +938,12 @@ rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
 
        if (check_input(req) == false)
                return -1;
+
+       if (internal_config.no_shconf) {
+               RTE_LOG(DEBUG, EAL, "No shared files mode enabled, IPC is disabled\n");
+               return 0;
+       }
+
        if (gettimeofday(&now, NULL) < 0) {
                RTE_LOG(ERR, EAL, "Faile to get current time\n");
                rte_errno = errno;
@@ -1014,6 +1028,12 @@ rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
 
        if (check_input(req) == false)
                return -1;
+
+       if (internal_config.no_shconf) {
+               RTE_LOG(DEBUG, EAL, "No shared files mode enabled, IPC is disabled\n");
+               return 0;
+       }
+
        if (gettimeofday(&now, NULL) < 0) {
                RTE_LOG(ERR, EAL, "Faile to get current time\n");
                rte_errno = errno;
@@ -1152,5 +1172,10 @@ rte_mp_reply(struct rte_mp_msg *msg, const char *peer)
                return -1;
        }
 
+       if (internal_config.no_shconf) {
+               RTE_LOG(DEBUG, EAL, "No shared files mode enabled, IPC is disabled\n");
+               return 0;
+       }
+
        return mp_send(msg, peer, MP_REP);
 }