[dpdk-dev] [PATCH v4 08/11] eal: replace rte_panic instances in interrupts thread
Kevin Traynor
ktraynor at redhat.com
Thu Apr 19 19:27:15 CEST 2018
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 <arnon at qwilt.com>
> ---
> 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
>
More information about the dev
mailing list