[spp] [PATCH 31/57] spp_vf: use prediction keywords

x-fn-spp at sl.ntt-tx.co.jp x-fn-spp at sl.ntt-tx.co.jp
Thu Dec 28 05:55:38 CET 2017


From: Hiroyuki Nakamura <nakamura.hioryuki at po.ntt-tx.co.jp>

* Add branch prediction keyword(likely/unlikely) according to DPDK
  coding style.
* Add and modify logging procedures.

Signed-off-by: Daiki Yamashita <yamashita.daiki.z01 at as.ntt-tx.co.jp>
Signed-off-by: Yasufum Ogawa <ogawa.yasufumi at lab.ntt.co.jp>
---
 src/vf/command_conn.c | 17 ++++++++++-------
 src/vf/command_proc.c |  8 +++++++-
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/vf/command_conn.c b/src/vf/command_conn.c
index 98a7e27..ae60c4b 100644
--- a/src/vf/command_conn.c
+++ b/src/vf/command_conn.c
@@ -4,6 +4,7 @@
 #include <errno.h>
 #include <arpa/inet.h>
 
+#include <rte_common.h>
 #include <rte_log.h>
 #include <rte_branch_prediction.h>
 
@@ -45,7 +46,7 @@ spp_connect_to_controller(int *sock)
 	/* create socket */
 	RTE_LOG(INFO, SPP_COMMAND_PROC, "Creating socket...\n");
 	*sock = socket(AF_INET, SOCK_STREAM, 0);
-	if (*sock < 0) {
+	if (unlikely(*sock < 0)) {
 		RTE_LOG(ERR, SPP_COMMAND_PROC, 
 				"Cannot create tcp socket. errno=%d\n", errno);
 		return -1;
@@ -60,7 +61,7 @@ spp_connect_to_controller(int *sock)
 	RTE_LOG(INFO, SPP_COMMAND_PROC, "Trying to connect ... socket=%d\n", *sock);
 	ret = connect(*sock, (struct sockaddr *)&controller_addr,
 			sizeof(controller_addr));
-	if (ret < 0) {
+	if (unlikely(ret < 0)) {
 		RTE_LOG(ERR, SPP_COMMAND_PROC,
 				"Cannot connect to controller. errno=%d\n", errno);
 		close(*sock);
@@ -89,11 +90,11 @@ spp_receive_message(int *sock, char **strbuf)
 	size_t rx_buf_sz = MESSAGE_BUFFER_BLOCK_SIZE;
 
 	ret = recv(*sock, rx_buf, rx_buf_sz, 0);
-	if (ret <= 0) {
-		if (ret == 0) {
+	if (unlikely(ret <= 0)) {
+		if (likely(ret == 0)) {
 			RTE_LOG(INFO, SPP_COMMAND_PROC,
 					"Controller has performed an shutdown.");
-		} else if (errno == EAGAIN || errno == EWOULDBLOCK) {
+		} else if (likely(errno == EAGAIN || errno == EWOULDBLOCK)) {
 			/* no receive message */
 			return 0;
 		} else {
@@ -101,7 +102,7 @@ spp_receive_message(int *sock, char **strbuf)
 					"Receive failure. errno=%d\n", errno);
 		}
 
-		RTE_LOG(INFO, SPP_COMMAND_PROC, "Assume Server closed connection\n");
+		RTE_LOG(INFO, SPP_COMMAND_PROC, "Assume Server closed connection.\n");
 		close(*sock);
 		*sock = -1;
 		return -1;
@@ -112,7 +113,9 @@ spp_receive_message(int *sock, char **strbuf)
 
 	new_strbuf = spp_strbuf_append(*strbuf, rx_buf, n_rx);
 	if (unlikely(new_strbuf == NULL)) {
-		return -1;
+		RTE_LOG(ERR, SPP_COMMAND_PROC,
+				"Cannot allocate memory for receive data.\n");
+		rte_exit(-1, "Cannot allocate memory for receive data.\n");
 	}
 
 	*strbuf = new_strbuf;
diff --git a/src/vf/command_proc.c b/src/vf/command_proc.c
index f0a1e79..fafb007 100644
--- a/src/vf/command_proc.c
+++ b/src/vf/command_proc.c
@@ -404,8 +404,14 @@ spp_command_proc_do(void)
 	static size_t rb_cnt = 0;
 	static size_t lb_cnt = 0;
 
-	if (unlikely(msgbuf == NULL))
+	if (unlikely(msgbuf == NULL)) {
 		msgbuf = spp_strbuf_allocate(CMD_REQ_BUF_INIT_SIZE);
+		if (unlikely(msgbuf == NULL)) {
+			RTE_LOG(ERR, SPP_COMMAND_PROC,
+					"Cannot allocate memory for receive data(init).\n");
+			rte_exit(-1, "Cannot allocate memory for receive data(init).\n");
+		}
+	}
 
 	ret = spp_connect_to_controller(&sock);
 	if (unlikely(ret != 0))
-- 
1.9.1



More information about the spp mailing list