All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [LTTNG-TOOLS PATCH v2] Contexts for RT debugging
       [not found] <1447863421-12789-1-git-send-email-jdesfossez@efficios.com>
@ 2015-11-18 20:01 ` Mathieu Desnoyers
       [not found] ` <1762527520.116282.1447876892012.JavaMail.zimbra@efficios.com>
  1 sibling, 0 replies; 3+ messages in thread
From: Mathieu Desnoyers @ 2015-11-18 20:01 UTC (permalink / raw)
  To: Julien Desfossez; +Cc: lttng-dev, Jeremie Galarneau

----- On Nov 18, 2015, at 11:17 AM, Julien Desfossez jdesfossez@efficios.com wrote:

> Enables the interruptible, preemptible, need_resched and migratable
> kernel contexts.

need_resched -> need_reschedule

(in changelog)

Other than that, looks good,

Thanks,

Mathieu

> 
> Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
> ---
> include/lttng/event.h                  |  4 ++++
> src/bin/lttng-sessiond/context.c       | 12 ++++++++++++
> src/bin/lttng-sessiond/save.c          | 12 ++++++++++++
> src/bin/lttng/commands/add_context.c   |  8 ++++++++
> src/common/config/config-session-abi.h |  4 ++++
> src/common/config/session-config.c     | 16 ++++++++++++++++
> src/common/lttng-kernel.h              |  4 ++++
> 7 files changed, 60 insertions(+)
> 
> diff --git a/include/lttng/event.h b/include/lttng/event.h
> index 3e8fbe3..dc7b0a7 100644
> --- a/include/lttng/event.h
> +++ b/include/lttng/event.h
> @@ -136,6 +136,10 @@ enum lttng_event_context_type {
> 	LTTNG_EVENT_CONTEXT_IP                = 12,
> 	LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER  = 13,
> 	LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER = 14,
> +	LTTNG_EVENT_CONTEXT_INTERRUPTIBLE     = 15,
> +	LTTNG_EVENT_CONTEXT_PREEMPTIBLE       = 16,
> +	LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE   = 17,
> +	LTTNG_EVENT_CONTEXT_MIGRATABLE        = 18,
> };
> 
> enum lttng_event_field_type {
> diff --git a/src/bin/lttng-sessiond/context.c b/src/bin/lttng-sessiond/context.c
> index 0de1d06..0149c00 100644
> --- a/src/bin/lttng-sessiond/context.c
> +++ b/src/bin/lttng-sessiond/context.c
> @@ -193,6 +193,18 @@ int context_kernel_add(struct ltt_kernel_session *ksession,
> 	case LTTNG_EVENT_CONTEXT_HOSTNAME:
> 		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_HOSTNAME;
> 		break;
> +	case LTTNG_EVENT_CONTEXT_INTERRUPTIBLE:
> +		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE;
> +		break;
> +	case LTTNG_EVENT_CONTEXT_PREEMPTIBLE:
> +		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PREEMPTIBLE;
> +		break;
> +	case LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE:
> +		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE;
> +		break;
> +	case LTTNG_EVENT_CONTEXT_MIGRATABLE:
> +		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_MIGRATABLE;
> +		break;
> 	case LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER:
> 	case LTTNG_EVENT_CONTEXT_PERF_COUNTER:
> 		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER;
> diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c
> index a6fea46..aec655e 100644
> --- a/src/bin/lttng-sessiond/save.c
> +++ b/src/bin/lttng-sessiond/save.c
> @@ -232,6 +232,18 @@ const char *get_kernel_context_type_string(
> 	case LTTNG_KERNEL_CONTEXT_HOSTNAME:
> 		context_type_string = config_event_context_hostname;
> 		break;
> +	case LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE:
> +		context_type_string = config_event_context_interruptible;
> +		break;
> +	case LTTNG_KERNEL_CONTEXT_PREEMPTIBLE:
> +		context_type_string = config_event_context_preemptible;
> +		break;
> +	case LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE:
> +		context_type_string = config_event_context_need_reschedule;
> +		break;
> +	case LTTNG_KERNEL_CONTEXT_MIGRATABLE:
> +		context_type_string = config_event_context_migratable;
> +		break;
> 	default:
> 		context_type_string = NULL;
> 	}
> diff --git a/src/bin/lttng/commands/add_context.c
> b/src/bin/lttng/commands/add_context.c
> index fb37c0a..39a609b 100644
> --- a/src/bin/lttng/commands/add_context.c
> +++ b/src/bin/lttng/commands/add_context.c
> @@ -69,6 +69,10 @@ enum context_type {
> 	CONTEXT_IP           = 12,
> 	CONTEXT_PERF_CPU_COUNTER = 13,
> 	CONTEXT_PERF_THREAD_COUNTER = 14,
> +	CONTEXT_INTERRUPTIBLE = 15,
> +	CONTEXT_PREEMPTIBLE  = 16,
> +	CONTEXT_NEED_RESCHEDULE = 17,
> +	CONTEXT_MIGRATABLE   = 18,
> };
> 
> /*
> @@ -213,6 +217,10 @@ const struct ctx_opts {
> 	{ "vppid", CONTEXT_VPPID },
> 	{ "hostname", CONTEXT_HOSTNAME },
> 	{ "ip", CONTEXT_IP },
> +	{ "interruptible", CONTEXT_INTERRUPTIBLE },
> +	{ "preemptible", CONTEXT_PREEMPTIBLE },
> +	{ "need_reschedule", CONTEXT_NEED_RESCHEDULE },
> +	{ "migratable", CONTEXT_MIGRATABLE },
> 
> 	/* Perf options */
> 
> diff --git a/src/common/config/config-session-abi.h
> b/src/common/config/config-session-abi.h
> index 9251b22..8de585f 100644
> --- a/src/common/config/config-session-abi.h
> +++ b/src/common/config/config-session-abi.h
> @@ -116,5 +116,9 @@ extern const char * const config_event_context_pthread_id;
> extern const char * const config_event_context_hostname;
> extern const char * const config_event_context_ip;
> extern const char * const config_event_context_perf_thread_counter;
> +extern const char * const config_event_context_interruptible;
> +extern const char * const config_event_context_preemptible;
> +extern const char * const config_event_context_need_reschedule;
> +extern const char * const config_event_context_migratable;
> 
> #endif /* CONFIG_SESSION_INTERNAL_H */
> diff --git a/src/common/config/session-config.c
> b/src/common/config/session-config.c
> index 87e9c03..de1a346 100644
> --- a/src/common/config/session-config.c
> +++ b/src/common/config/session-config.c
> @@ -165,6 +165,10 @@ const char * const config_event_context_pthread_id =
> "PTHREAD_ID";
> const char * const config_event_context_hostname = "HOSTNAME";
> const char * const config_event_context_ip = "IP";
> const char * const config_event_context_perf_thread_counter =
> "PERF_THREAD_COUNTER";
> +const char * const config_event_context_interruptible = "INTERRUPTIBLE";
> +const char * const config_event_context_preemptible = "PREEMPTIBLE";
> +const char * const config_event_context_need_reschedule = "NEED_RESCHEDULE";
> +const char * const config_event_context_migratable = "MIGRATABLE";
> 
> struct consumer_output {
> 	int enabled;
> @@ -946,6 +950,18 @@ int get_context_type(xmlChar *context_type)
> 	} else if (!strcmp((char *) context_type,
> 		config_event_context_ip)) {
> 		ret = LTTNG_EVENT_CONTEXT_IP;
> +	} else if (!strcmp((char *) context_type,
> +		config_event_context_interruptible)) {
> +		ret = LTTNG_EVENT_CONTEXT_INTERRUPTIBLE;
> +	} else if (!strcmp((char *) context_type,
> +		config_event_context_preemptible)) {
> +		ret = LTTNG_EVENT_CONTEXT_PREEMPTIBLE;
> +	} else if (!strcmp((char *) context_type,
> +		config_event_context_need_reschedule)) {
> +		ret = LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE;
> +	} else if (!strcmp((char *) context_type,
> +		config_event_context_migratable)) {
> +		ret = LTTNG_EVENT_CONTEXT_MIGRATABLE;
> 	} else {
> 		goto error;
> 	}
> diff --git a/src/common/lttng-kernel.h b/src/common/lttng-kernel.h
> index 9dd8df7..78d5fc4 100644
> --- a/src/common/lttng-kernel.h
> +++ b/src/common/lttng-kernel.h
> @@ -54,6 +54,10 @@ enum lttng_kernel_context_type {
> 	LTTNG_KERNEL_CONTEXT_VPPID          = 9,
> 	LTTNG_KERNEL_CONTEXT_HOSTNAME       = 10,
> 	LTTNG_KERNEL_CONTEXT_CPU_ID         = 11,
> +	LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE  = 12,
> +	LTTNG_KERNEL_CONTEXT_PREEMPTIBLE    = 13,
> +	LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE = 14,
> +	LTTNG_KERNEL_CONTEXT_MIGRATABLE     = 15,
> };
> 
> /* Perf counter attributes */
> --
> 1.9.1
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev@lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [LTTNG-TOOLS PATCH v2] Contexts for RT debugging
       [not found] ` <1762527520.116282.1447876892012.JavaMail.zimbra@efficios.com>
@ 2015-11-19 16:12   ` Jérémie Galarneau
  0 siblings, 0 replies; 3+ messages in thread
From: Jérémie Galarneau @ 2015-11-19 16:12 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: lttng-dev, Jeremie Galarneau, Julien Desfossez

On top of Mathieu's comment, enabling the "migratable" kernel context
on a non-RT kernel results in the following error:

$ lttng add-context -c channel0 -k -t migratable
Error: migratable: Add kernel context failed
Warning: Some command(s) went wrong

While the session daemon logs the following:
DEBUG1 - 11:07:27.693936 [26927/26974]: Adding context to channel
channel0 (in kernel_add_channel_context() at kernel.c:49)
PERROR - 11:07:27.693952 [26927/26974]: add context ioctl: Function
not implemented (in kernel_add_channel_context() at kernel.c:53)
DEBUG1 - 11:07:27.693961 [26927/26974]: Sending response (size: 16,
retcode: Add kernel context failed (42)) (in thread_manage_clients()
at main.c:4493)

A new error code and message should be introduced to report that a
context is unavailable on the system instead of a "generic" error
which makes it seem like a bug was encountered.

Jérémie

On Wed, Nov 18, 2015 at 3:01 PM, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
> ----- On Nov 18, 2015, at 11:17 AM, Julien Desfossez jdesfossez@efficios.com wrote:
>
>> Enables the interruptible, preemptible, need_resched and migratable
>> kernel contexts.
>
> need_resched -> need_reschedule
>
> (in changelog)
>
> Other than that, looks good,
>
> Thanks,
>
> Mathieu
>
>>
>> Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
>> ---
>> include/lttng/event.h                  |  4 ++++
>> src/bin/lttng-sessiond/context.c       | 12 ++++++++++++
>> src/bin/lttng-sessiond/save.c          | 12 ++++++++++++
>> src/bin/lttng/commands/add_context.c   |  8 ++++++++
>> src/common/config/config-session-abi.h |  4 ++++
>> src/common/config/session-config.c     | 16 ++++++++++++++++
>> src/common/lttng-kernel.h              |  4 ++++
>> 7 files changed, 60 insertions(+)
>>
>> diff --git a/include/lttng/event.h b/include/lttng/event.h
>> index 3e8fbe3..dc7b0a7 100644
>> --- a/include/lttng/event.h
>> +++ b/include/lttng/event.h
>> @@ -136,6 +136,10 @@ enum lttng_event_context_type {
>>       LTTNG_EVENT_CONTEXT_IP                = 12,
>>       LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER  = 13,
>>       LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER = 14,
>> +     LTTNG_EVENT_CONTEXT_INTERRUPTIBLE     = 15,
>> +     LTTNG_EVENT_CONTEXT_PREEMPTIBLE       = 16,
>> +     LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE   = 17,
>> +     LTTNG_EVENT_CONTEXT_MIGRATABLE        = 18,
>> };
>>
>> enum lttng_event_field_type {
>> diff --git a/src/bin/lttng-sessiond/context.c b/src/bin/lttng-sessiond/context.c
>> index 0de1d06..0149c00 100644
>> --- a/src/bin/lttng-sessiond/context.c
>> +++ b/src/bin/lttng-sessiond/context.c
>> @@ -193,6 +193,18 @@ int context_kernel_add(struct ltt_kernel_session *ksession,
>>       case LTTNG_EVENT_CONTEXT_HOSTNAME:
>>               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_HOSTNAME;
>>               break;
>> +     case LTTNG_EVENT_CONTEXT_INTERRUPTIBLE:
>> +             kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE;
>> +             break;
>> +     case LTTNG_EVENT_CONTEXT_PREEMPTIBLE:
>> +             kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PREEMPTIBLE;
>> +             break;
>> +     case LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE:
>> +             kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE;
>> +             break;
>> +     case LTTNG_EVENT_CONTEXT_MIGRATABLE:
>> +             kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_MIGRATABLE;
>> +             break;
>>       case LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER:
>>       case LTTNG_EVENT_CONTEXT_PERF_COUNTER:
>>               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER;
>> diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c
>> index a6fea46..aec655e 100644
>> --- a/src/bin/lttng-sessiond/save.c
>> +++ b/src/bin/lttng-sessiond/save.c
>> @@ -232,6 +232,18 @@ const char *get_kernel_context_type_string(
>>       case LTTNG_KERNEL_CONTEXT_HOSTNAME:
>>               context_type_string = config_event_context_hostname;
>>               break;
>> +     case LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE:
>> +             context_type_string = config_event_context_interruptible;
>> +             break;
>> +     case LTTNG_KERNEL_CONTEXT_PREEMPTIBLE:
>> +             context_type_string = config_event_context_preemptible;
>> +             break;
>> +     case LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE:
>> +             context_type_string = config_event_context_need_reschedule;
>> +             break;
>> +     case LTTNG_KERNEL_CONTEXT_MIGRATABLE:
>> +             context_type_string = config_event_context_migratable;
>> +             break;
>>       default:
>>               context_type_string = NULL;
>>       }
>> diff --git a/src/bin/lttng/commands/add_context.c
>> b/src/bin/lttng/commands/add_context.c
>> index fb37c0a..39a609b 100644
>> --- a/src/bin/lttng/commands/add_context.c
>> +++ b/src/bin/lttng/commands/add_context.c
>> @@ -69,6 +69,10 @@ enum context_type {
>>       CONTEXT_IP           = 12,
>>       CONTEXT_PERF_CPU_COUNTER = 13,
>>       CONTEXT_PERF_THREAD_COUNTER = 14,
>> +     CONTEXT_INTERRUPTIBLE = 15,
>> +     CONTEXT_PREEMPTIBLE  = 16,
>> +     CONTEXT_NEED_RESCHEDULE = 17,
>> +     CONTEXT_MIGRATABLE   = 18,
>> };
>>
>> /*
>> @@ -213,6 +217,10 @@ const struct ctx_opts {
>>       { "vppid", CONTEXT_VPPID },
>>       { "hostname", CONTEXT_HOSTNAME },
>>       { "ip", CONTEXT_IP },
>> +     { "interruptible", CONTEXT_INTERRUPTIBLE },
>> +     { "preemptible", CONTEXT_PREEMPTIBLE },
>> +     { "need_reschedule", CONTEXT_NEED_RESCHEDULE },
>> +     { "migratable", CONTEXT_MIGRATABLE },
>>
>>       /* Perf options */
>>
>> diff --git a/src/common/config/config-session-abi.h
>> b/src/common/config/config-session-abi.h
>> index 9251b22..8de585f 100644
>> --- a/src/common/config/config-session-abi.h
>> +++ b/src/common/config/config-session-abi.h
>> @@ -116,5 +116,9 @@ extern const char * const config_event_context_pthread_id;
>> extern const char * const config_event_context_hostname;
>> extern const char * const config_event_context_ip;
>> extern const char * const config_event_context_perf_thread_counter;
>> +extern const char * const config_event_context_interruptible;
>> +extern const char * const config_event_context_preemptible;
>> +extern const char * const config_event_context_need_reschedule;
>> +extern const char * const config_event_context_migratable;
>>
>> #endif /* CONFIG_SESSION_INTERNAL_H */
>> diff --git a/src/common/config/session-config.c
>> b/src/common/config/session-config.c
>> index 87e9c03..de1a346 100644
>> --- a/src/common/config/session-config.c
>> +++ b/src/common/config/session-config.c
>> @@ -165,6 +165,10 @@ const char * const config_event_context_pthread_id =
>> "PTHREAD_ID";
>> const char * const config_event_context_hostname = "HOSTNAME";
>> const char * const config_event_context_ip = "IP";
>> const char * const config_event_context_perf_thread_counter =
>> "PERF_THREAD_COUNTER";
>> +const char * const config_event_context_interruptible = "INTERRUPTIBLE";
>> +const char * const config_event_context_preemptible = "PREEMPTIBLE";
>> +const char * const config_event_context_need_reschedule = "NEED_RESCHEDULE";
>> +const char * const config_event_context_migratable = "MIGRATABLE";
>>
>> struct consumer_output {
>>       int enabled;
>> @@ -946,6 +950,18 @@ int get_context_type(xmlChar *context_type)
>>       } else if (!strcmp((char *) context_type,
>>               config_event_context_ip)) {
>>               ret = LTTNG_EVENT_CONTEXT_IP;
>> +     } else if (!strcmp((char *) context_type,
>> +             config_event_context_interruptible)) {
>> +             ret = LTTNG_EVENT_CONTEXT_INTERRUPTIBLE;
>> +     } else if (!strcmp((char *) context_type,
>> +             config_event_context_preemptible)) {
>> +             ret = LTTNG_EVENT_CONTEXT_PREEMPTIBLE;
>> +     } else if (!strcmp((char *) context_type,
>> +             config_event_context_need_reschedule)) {
>> +             ret = LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE;
>> +     } else if (!strcmp((char *) context_type,
>> +             config_event_context_migratable)) {
>> +             ret = LTTNG_EVENT_CONTEXT_MIGRATABLE;
>>       } else {
>>               goto error;
>>       }
>> diff --git a/src/common/lttng-kernel.h b/src/common/lttng-kernel.h
>> index 9dd8df7..78d5fc4 100644
>> --- a/src/common/lttng-kernel.h
>> +++ b/src/common/lttng-kernel.h
>> @@ -54,6 +54,10 @@ enum lttng_kernel_context_type {
>>       LTTNG_KERNEL_CONTEXT_VPPID          = 9,
>>       LTTNG_KERNEL_CONTEXT_HOSTNAME       = 10,
>>       LTTNG_KERNEL_CONTEXT_CPU_ID         = 11,
>> +     LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE  = 12,
>> +     LTTNG_KERNEL_CONTEXT_PREEMPTIBLE    = 13,
>> +     LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE = 14,
>> +     LTTNG_KERNEL_CONTEXT_MIGRATABLE     = 15,
>> };
>>
>> /* Perf counter attributes */
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> lttng-dev mailing list
>> lttng-dev@lists.lttng.org
>> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com



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

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [LTTNG-TOOLS PATCH v2] Contexts for RT debugging
@ 2015-11-18 16:17 Julien Desfossez
  0 siblings, 0 replies; 3+ messages in thread
From: Julien Desfossez @ 2015-11-18 16:17 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev, Julien Desfossez

Enables the interruptible, preemptible, need_resched and migratable
kernel contexts.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
---
 include/lttng/event.h                  |  4 ++++
 src/bin/lttng-sessiond/context.c       | 12 ++++++++++++
 src/bin/lttng-sessiond/save.c          | 12 ++++++++++++
 src/bin/lttng/commands/add_context.c   |  8 ++++++++
 src/common/config/config-session-abi.h |  4 ++++
 src/common/config/session-config.c     | 16 ++++++++++++++++
 src/common/lttng-kernel.h              |  4 ++++
 7 files changed, 60 insertions(+)

diff --git a/include/lttng/event.h b/include/lttng/event.h
index 3e8fbe3..dc7b0a7 100644
--- a/include/lttng/event.h
+++ b/include/lttng/event.h
@@ -136,6 +136,10 @@ enum lttng_event_context_type {
 	LTTNG_EVENT_CONTEXT_IP                = 12,
 	LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER  = 13,
 	LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER = 14,
+	LTTNG_EVENT_CONTEXT_INTERRUPTIBLE     = 15,
+	LTTNG_EVENT_CONTEXT_PREEMPTIBLE       = 16,
+	LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE   = 17,
+	LTTNG_EVENT_CONTEXT_MIGRATABLE        = 18,
 };
 
 enum lttng_event_field_type {
diff --git a/src/bin/lttng-sessiond/context.c b/src/bin/lttng-sessiond/context.c
index 0de1d06..0149c00 100644
--- a/src/bin/lttng-sessiond/context.c
+++ b/src/bin/lttng-sessiond/context.c
@@ -193,6 +193,18 @@ int context_kernel_add(struct ltt_kernel_session *ksession,
 	case LTTNG_EVENT_CONTEXT_HOSTNAME:
 		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_HOSTNAME;
 		break;
+	case LTTNG_EVENT_CONTEXT_INTERRUPTIBLE:
+		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE;
+		break;
+	case LTTNG_EVENT_CONTEXT_PREEMPTIBLE:
+		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PREEMPTIBLE;
+		break;
+	case LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE:
+		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE;
+		break;
+	case LTTNG_EVENT_CONTEXT_MIGRATABLE:
+		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_MIGRATABLE;
+		break;
 	case LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER:
 	case LTTNG_EVENT_CONTEXT_PERF_COUNTER:
 		kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER;
diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c
index a6fea46..aec655e 100644
--- a/src/bin/lttng-sessiond/save.c
+++ b/src/bin/lttng-sessiond/save.c
@@ -232,6 +232,18 @@ const char *get_kernel_context_type_string(
 	case LTTNG_KERNEL_CONTEXT_HOSTNAME:
 		context_type_string = config_event_context_hostname;
 		break;
+	case LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE:
+		context_type_string = config_event_context_interruptible;
+		break;
+	case LTTNG_KERNEL_CONTEXT_PREEMPTIBLE:
+		context_type_string = config_event_context_preemptible;
+		break;
+	case LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE:
+		context_type_string = config_event_context_need_reschedule;
+		break;
+	case LTTNG_KERNEL_CONTEXT_MIGRATABLE:
+		context_type_string = config_event_context_migratable;
+		break;
 	default:
 		context_type_string = NULL;
 	}
diff --git a/src/bin/lttng/commands/add_context.c b/src/bin/lttng/commands/add_context.c
index fb37c0a..39a609b 100644
--- a/src/bin/lttng/commands/add_context.c
+++ b/src/bin/lttng/commands/add_context.c
@@ -69,6 +69,10 @@ enum context_type {
 	CONTEXT_IP           = 12,
 	CONTEXT_PERF_CPU_COUNTER = 13,
 	CONTEXT_PERF_THREAD_COUNTER = 14,
+	CONTEXT_INTERRUPTIBLE = 15,
+	CONTEXT_PREEMPTIBLE  = 16,
+	CONTEXT_NEED_RESCHEDULE = 17,
+	CONTEXT_MIGRATABLE   = 18,
 };
 
 /*
@@ -213,6 +217,10 @@ const struct ctx_opts {
 	{ "vppid", CONTEXT_VPPID },
 	{ "hostname", CONTEXT_HOSTNAME },
 	{ "ip", CONTEXT_IP },
+	{ "interruptible", CONTEXT_INTERRUPTIBLE },
+	{ "preemptible", CONTEXT_PREEMPTIBLE },
+	{ "need_reschedule", CONTEXT_NEED_RESCHEDULE },
+	{ "migratable", CONTEXT_MIGRATABLE },
 
 	/* Perf options */
 
diff --git a/src/common/config/config-session-abi.h b/src/common/config/config-session-abi.h
index 9251b22..8de585f 100644
--- a/src/common/config/config-session-abi.h
+++ b/src/common/config/config-session-abi.h
@@ -116,5 +116,9 @@ extern const char * const config_event_context_pthread_id;
 extern const char * const config_event_context_hostname;
 extern const char * const config_event_context_ip;
 extern const char * const config_event_context_perf_thread_counter;
+extern const char * const config_event_context_interruptible;
+extern const char * const config_event_context_preemptible;
+extern const char * const config_event_context_need_reschedule;
+extern const char * const config_event_context_migratable;
 
 #endif /* CONFIG_SESSION_INTERNAL_H */
diff --git a/src/common/config/session-config.c b/src/common/config/session-config.c
index 87e9c03..de1a346 100644
--- a/src/common/config/session-config.c
+++ b/src/common/config/session-config.c
@@ -165,6 +165,10 @@ const char * const config_event_context_pthread_id = "PTHREAD_ID";
 const char * const config_event_context_hostname = "HOSTNAME";
 const char * const config_event_context_ip = "IP";
 const char * const config_event_context_perf_thread_counter = "PERF_THREAD_COUNTER";
+const char * const config_event_context_interruptible = "INTERRUPTIBLE";
+const char * const config_event_context_preemptible = "PREEMPTIBLE";
+const char * const config_event_context_need_reschedule = "NEED_RESCHEDULE";
+const char * const config_event_context_migratable = "MIGRATABLE";
 
 struct consumer_output {
 	int enabled;
@@ -946,6 +950,18 @@ int get_context_type(xmlChar *context_type)
 	} else if (!strcmp((char *) context_type,
 		config_event_context_ip)) {
 		ret = LTTNG_EVENT_CONTEXT_IP;
+	} else if (!strcmp((char *) context_type,
+		config_event_context_interruptible)) {
+		ret = LTTNG_EVENT_CONTEXT_INTERRUPTIBLE;
+	} else if (!strcmp((char *) context_type,
+		config_event_context_preemptible)) {
+		ret = LTTNG_EVENT_CONTEXT_PREEMPTIBLE;
+	} else if (!strcmp((char *) context_type,
+		config_event_context_need_reschedule)) {
+		ret = LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE;
+	} else if (!strcmp((char *) context_type,
+		config_event_context_migratable)) {
+		ret = LTTNG_EVENT_CONTEXT_MIGRATABLE;
 	} else {
 		goto error;
 	}
diff --git a/src/common/lttng-kernel.h b/src/common/lttng-kernel.h
index 9dd8df7..78d5fc4 100644
--- a/src/common/lttng-kernel.h
+++ b/src/common/lttng-kernel.h
@@ -54,6 +54,10 @@ enum lttng_kernel_context_type {
 	LTTNG_KERNEL_CONTEXT_VPPID          = 9,
 	LTTNG_KERNEL_CONTEXT_HOSTNAME       = 10,
 	LTTNG_KERNEL_CONTEXT_CPU_ID         = 11,
+	LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE  = 12,
+	LTTNG_KERNEL_CONTEXT_PREEMPTIBLE    = 13,
+	LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE = 14,
+	LTTNG_KERNEL_CONTEXT_MIGRATABLE     = 15,
 };
 
 /* Perf counter attributes */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-11-19 16:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1447863421-12789-1-git-send-email-jdesfossez@efficios.com>
2015-11-18 20:01 ` [LTTNG-TOOLS PATCH v2] Contexts for RT debugging Mathieu Desnoyers
     [not found] ` <1762527520.116282.1447876892012.JavaMail.zimbra@efficios.com>
2015-11-19 16:12   ` Jérémie Galarneau
2015-11-18 16:17 Julien Desfossez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.