[lttng-dev] [PATCH lttng-tools 5/6] Fix: poll: show the correct number of fds

Jérémie Galarneau jeremie.galarneau at efficios.com
Thu Jan 8 15:46:51 EST 2015


On Mon, Jan 5, 2015 at 4:43 PM, Mathieu Desnoyers
<mathieu.desnoyers at efficios.com> wrote:
> LTTNG_POLL_GETNB() uses wait nb_fd, which is only updated after
> lttng_poll_wait returns.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
>  src/bin/lttng-sessiond/agent-thread.c |  4 +++-
>  src/bin/lttng-sessiond/ht-cleanup.c   |  5 +++--
>  src/bin/lttng-sessiond/main.c         |  8 ++++++--
>  src/bin/lttng-sessiond/ust-thread.c   |  5 +++--
>  src/common/consumer.c                 | 10 ++++++++--
>  5 files changed, 23 insertions(+), 9 deletions(-)
>
> diff --git a/src/bin/lttng-sessiond/agent-thread.c b/src/bin/lttng-sessiond/agent-thread.c
> index a9cc6e7..5f48151 100644
> --- a/src/bin/lttng-sessiond/agent-thread.c
> +++ b/src/bin/lttng-sessiond/agent-thread.c
> @@ -307,12 +307,14 @@ void *agent_thread_manage_registration(void *data)
>         }
>
>         while (1) {
> -               DBG3("[agent-thread] Manage agent polling on %d fds",
> +               DBG3("[agent-thread] Manage agent polling",
>                                 LTTNG_POLL_GETNB(&events));

All merged with a small change here as "LTTNG_POLL_GETNB(&events)" is
no longer referred to in the format string.

I also added a "Fixes #747" note in the appropriate commit messages.

Thanks!
Jérémie

>
>                 /* Inifinite blocking call, waiting for transmission */
>  restart:
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG3("[agent-thread] Manage agent return from poll on %d fds",
> +                               LTTNG_POLL_GETNB(&events));
>                 if (ret < 0) {
>                         /*
>                          * Restart interrupted system call.
> diff --git a/src/bin/lttng-sessiond/ht-cleanup.c b/src/bin/lttng-sessiond/ht-cleanup.c
> index 373c913..e5a2916 100644
> --- a/src/bin/lttng-sessiond/ht-cleanup.c
> +++ b/src/bin/lttng-sessiond/ht-cleanup.c
> @@ -66,14 +66,15 @@ void *thread_ht_cleanup(void *data)
>         while (1) {
>                 int handled_event;
>
> -               DBG3("[ht-thread] Polling on %d fds.",
> -                       LTTNG_POLL_GETNB(&events));
> +               DBG3("[ht-thread] Polling.");
>
>                 /* Inifinite blocking call, waiting for transmission */
>  restart:
>                 handled_event = 0;
>                 health_poll_entry();
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG3("[ht-thread] Returning from poll on %d fds.",
> +                       LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 if (ret < 0) {
>                         /*
> diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c
> index 6bc7b1e..6fd1d1e 100644
> --- a/src/bin/lttng-sessiond/main.c
> +++ b/src/bin/lttng-sessiond/main.c
> @@ -1059,12 +1059,14 @@ static void *thread_manage_kernel(void *data)
>                         update_poll_flag = 0;
>                 }
>
> -               DBG("Thread kernel polling on %d fds", LTTNG_POLL_GETNB(&events));
> +               DBG("Thread kernel polling");
>
>                 /* Poll infinite value of time */
>         restart:
>                 health_poll_entry();
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG("Thread kernel return from poll on %d fds",
> +                               LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 if (ret < 0) {
>                         /*
> @@ -1527,12 +1529,14 @@ static void *thread_manage_apps(void *data)
>         health_code_update();
>
>         while (1) {
> -               DBG("Apps thread polling on %d fds", LTTNG_POLL_GETNB(&events));
> +               DBG("Apps thread polling");
>
>                 /* Inifinite blocking call, waiting for transmission */
>         restart:
>                 health_poll_entry();
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG("Apps thread return from poll on %d fds",
> +                               LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 if (ret < 0) {
>                         /*
> diff --git a/src/bin/lttng-sessiond/ust-thread.c b/src/bin/lttng-sessiond/ust-thread.c
> index 6f4295d..b421eb2 100644
> --- a/src/bin/lttng-sessiond/ust-thread.c
> +++ b/src/bin/lttng-sessiond/ust-thread.c
> @@ -65,13 +65,14 @@ void *ust_thread_manage_notify(void *data)
>         health_code_update();
>
>         while (1) {
> -               DBG3("[ust-thread] Manage notify polling on %d fds",
> -                               LTTNG_POLL_GETNB(&events));
> +               DBG3("[ust-thread] Manage notify polling");
>
>                 /* Inifinite blocking call, waiting for transmission */
>  restart:
>                 health_poll_entry();
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG3("[ust-thread] Manage notify return from poll on %d fds",
> +                               LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 if (ret < 0) {
>                         /*
> diff --git a/src/common/consumer.c b/src/common/consumer.c
> index 1ece1d5..ef5da12 100644
> --- a/src/common/consumer.c
> +++ b/src/common/consumer.c
> @@ -2190,9 +2190,12 @@ void *consumer_thread_metadata_poll(void *data)
>                 }
>
>  restart:
> -               DBG("Metadata poll wait with %d fd(s)", LTTNG_POLL_GETNB(&events));
> +               health_code_update();
>                 health_poll_entry();
> +               DBG("Metadata poll wait");
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG("Metadata poll return from wait with %d fd(s)",
> +                               LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 DBG("Metadata event catched in thread");
>                 if (ret < 0) {
> @@ -2765,9 +2768,12 @@ void *consumer_thread_channel_poll(void *data)
>                 }
>
>  restart:
> -               DBG("Channel poll wait with %d fd(s)", LTTNG_POLL_GETNB(&events));
> +               health_code_update();
> +               DBG("Channel poll wait");
>                 health_poll_entry();
>                 ret = lttng_poll_wait(&events, -1);
> +               DBG("Channel poll return from wait with %d fd(s)",
> +                               LTTNG_POLL_GETNB(&events));
>                 health_poll_exit();
>                 DBG("Channel event catched in thread");
>                 if (ret < 0) {
> --
> 2.1.1
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list