From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Traynor Subject: Re: [PATCH v4 08/11] eal: replace rte_panic instances in interrupts thread Date: Thu, 19 Apr 2018 18:27:15 +0100 Message-ID: References: <1524117669-25729-1-git-send-email-arnon@qwilt.com> <1524117669-25729-9-git-send-email-arnon@qwilt.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org To: Arnon Warshavsky , thomas@monjalon.net, anatoly.burakov@intel.com, wenzhuo.lu@intel.com, declan.doherty@intel.com, jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com, ferruh.yigit@intel.com Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id 9D4BB8D8B for ; Thu, 19 Apr 2018 19:27:18 +0200 (CEST) In-Reply-To: <1524117669-25729-9-git-send-email-arnon@qwilt.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 04/19/2018 07:01 AM, Arnon Warshavsky wrote: > replace panic calls with log and retrun value. > Thread function removes the noretrun attribute. > > Signed-off-by: Arnon Warshavsky > --- > lib/librte_eal/linuxapp/eal/eal_interrupts.c | 27 ++++++++++++++++++++------- > 1 file changed, 20 insertions(+), 7 deletions(-) > > diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c > index 58e9328..8b8650a 100644 > --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c > +++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c > @@ -785,7 +785,7 @@ struct rte_intr_source { > * @return > * never return; > */ > -static __attribute__((noreturn)) void * > +static void * > eal_intr_thread_main(__rte_unused void *arg) > { > struct epoll_event ev; > @@ -803,8 +803,11 @@ static __attribute__((noreturn)) void * > > /* create epoll fd */ > int pfd = epoll_create(1); > - if (pfd < 0) > - rte_panic("Cannot create epoll instance\n"); > + if (pfd < 0) { > + RTE_LOG(CRIT, EAL, "%s(): Cannot create epoll instance\n", > + __func__); > + return NULL; > + } > > pipe_event.data.fd = intr_pipe.readfd; > /** > @@ -813,8 +816,11 @@ static __attribute__((noreturn)) void * > */ > if (epoll_ctl(pfd, EPOLL_CTL_ADD, intr_pipe.readfd, > &pipe_event) < 0) { > - rte_panic("Error adding fd to %d epoll_ctl, %s\n", > + RTE_LOG(CRIT, EAL, "%s(): Error adding fd to %d " > + "epoll_ctl, %s\n", > + __func__, > intr_pipe.readfd, strerror(errno)); > + return NULL; > } > numfds++; > > @@ -831,9 +837,14 @@ static __attribute__((noreturn)) void * > * into wait list. > */ > if (epoll_ctl(pfd, EPOLL_CTL_ADD, > - src->intr_handle.fd, &ev) < 0){ > - rte_panic("Error adding fd %d epoll_ctl, %s\n", > - src->intr_handle.fd, strerror(errno)); > + src->intr_handle.fd, &ev) < 0) { The alignment changed here, not sure if it was deliberate > + RTE_LOG(CRIT, EAL, > + "%s(): Error adding fd %d " > + "epoll_ctl, %s\n", > + __func__, > + src->intr_handle.fd, > + strerror(errno)); > + return NULL; > } > else > numfds++; > @@ -848,6 +859,8 @@ static __attribute__((noreturn)) void * > */ > close(pfd); > } > + > + return NULL; > } > > int >