All of lore.kernel.org
 help / color / mirror / Atom feed
* [lttng-dev] delay between trigger and action
@ 2023-05-23 12:17 Yitschak, Yehuda via lttng-dev
  2023-05-23 14:51 ` Jérémie Galarneau via lttng-dev
  0 siblings, 1 reply; 2+ messages in thread
From: Yitschak, Yehuda via lttng-dev @ 2023-05-23 12:17 UTC (permalink / raw)
  To: lttng-dev@lists.lttng.org


[-- Attachment #1.1: Type: text/plain, Size: 2137 bytes --]

Hi everyone

I am experimenting with enabling trace for a specific iteration of a loop in my application.
I created 2 trace points at the start and end of the loop which log the iteration number.
the loop itself creates thousands of trace points. It runs for ~5ms.

on lttng side I created 2 triggers to start and stop my session in case the loop tracepoint registers a specific iteration number.
the triggers seem to work since there is another session entry created under the session folder but there are very few tracepoints.

is it possible that the delay between the event happening and the session trace starting causes loss of events ?
If yes, is there a way around this  ?

here is my setup :

#lttng-status
Recording session session: [inactive]
    Trace output: /home/user/lttng-traces/session-20230523-113537

=== Domain: User space ===

Buffering scheme: per-user

Tracked process attributes
  Virtual process IDs:  all
  Virtual user IDs:     all
  Virtual group IDs:    all

Channels:
-------------
- user-channel: [enabled]

    Attributes:
      Event-loss mode:  discard
      Sub-buffer size:  16777216 bytes
      Sub-buffer count: 128
      Switch timer:     inactive
      Read timer:       inactive
      Monitor timer:    1000000 us
      Blocking timeout: 0 us
      Trace file count: 1 per stream
      Trace file size:  unlimited
      Output mode:      mmap

    Statistics:
      Discarded events: 0

    Recording event rules:
      trace_events* (type: tracepoint) [enabled]
      loop* (type: tracepoint) [enabled]

#lttng list-triggers

- name: iter-start
  owner uid: 1000
  condition: event rule matches
    rule: loop:iteration (type: user tracepoint, filter: iter==2 && start == 1)
    errors: none
  actions:
    start session `session`
      errors: none
  errors: none
- name: iter-stop
  owner uid: 1000
  condition: event rule matches
    rule: loop:iteration (type: user tracepoint, filter: iter==2 && start == 0)
    errors: none
  actions:
    stop session `session`
      errors: none
  errors: none


Thanks

Yehuda

[-- Attachment #1.2: Type: text/html, Size: 6525 bytes --]

[-- Attachment #2: Type: text/plain, Size: 156 bytes --]

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

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

* Re: [lttng-dev] delay between trigger and action
  2023-05-23 12:17 [lttng-dev] delay between trigger and action Yitschak, Yehuda via lttng-dev
@ 2023-05-23 14:51 ` Jérémie Galarneau via lttng-dev
  0 siblings, 0 replies; 2+ messages in thread
From: Jérémie Galarneau via lttng-dev @ 2023-05-23 14:51 UTC (permalink / raw)
  To: lttng-dev@lists.lttng.org, Yitschak, Yehuda


[-- Attachment #1.1: Type: text/plain, Size: 3494 bytes --]

Hi Yehuda,

The trigger mechanism is asynchroneous. The applications (or the kernel) won't block until the session daemon has processed the actions of the trigger.

As such, it is likely that you will lose events between the moment the trigger is triggered and when the session is started.

We have been considering implementing synchroneous start/stop actions, but no one has sponsored that work for the moment.

In your case, a work-around you could consider is to:

  *   setup a snapshot session with the same events
  *   set the trigger's actions to record a snapshot on that session, and start your existing session

In that setup, you would most likely see the events that led to the "start" (since they are captured in the in-memory buffers of the snapshot session), and you would capture the follow-up events in the on-disk session.

I hope that helps,
Jérémie

--
Jérémie Galarneau
EfficiOS Inc.
https://www.efficios.com
________________________________
From: lttng-dev <lttng-dev-bounces@lists.lttng.org> on behalf of Yitschak, Yehuda via lttng-dev <lttng-dev@lists.lttng.org>
Sent: May 23, 2023 08:17
To: lttng-dev@lists.lttng.org <lttng-dev@lists.lttng.org>
Subject: [lttng-dev] delay between trigger and action


Hi everyone

I am experimenting with enabling trace for a specific iteration of a loop in my application.
I created 2 trace points at the start and end of the loop which log the iteration number.
the loop itself creates thousands of trace points. It runs for ~5ms.

on lttng side I created 2 triggers to start and stop my session in case the loop tracepoint registers a specific iteration number.
the triggers seem to work since there is another session entry created under the session folder but there are very few tracepoints.

is it possible that the delay between the event happening and the session trace starting causes loss of events ?
If yes, is there a way around this  ?

here is my setup :

#lttng-status
Recording session session: [inactive]

    Trace output: /home/user/lttng-traces/session-20230523-113537



=== Domain: User space ===



Buffering scheme: per-user



Tracked process attributes

  Virtual process IDs:  all

  Virtual user IDs:     all

  Virtual group IDs:    all



Channels:

-------------

- user-channel: [enabled]



    Attributes:

      Event-loss mode:  discard

      Sub-buffer size:  16777216 bytes

      Sub-buffer count: 128

      Switch timer:     inactive

      Read timer:       inactive

      Monitor timer:    1000000 us

      Blocking timeout: 0 us

      Trace file count: 1 per stream

      Trace file size:  unlimited

      Output mode:      mmap



    Statistics:

      Discarded events: 0



    Recording event rules:

      trace_events* (type: tracepoint) [enabled]

      loop* (type: tracepoint) [enabled]

#lttng list-triggers

- name: iter-start

  owner uid: 1000

  condition: event rule matches

    rule: loop:iteration (type: user tracepoint, filter: iter==2 && start == 1)

    errors: none

  actions:

    start session `session`

      errors: none

  errors: none

- name: iter-stop

  owner uid: 1000

  condition: event rule matches

    rule: loop:iteration (type: user tracepoint, filter: iter==2 && start == 0)

    errors: none

  actions:

    stop session `session`

      errors: none

  errors: none


Thanks

Yehuda

[-- Attachment #1.2: Type: text/html, Size: 9212 bytes --]

[-- Attachment #2: Type: text/plain, Size: 156 bytes --]

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

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

end of thread, other threads:[~2023-05-23 14:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-23 12:17 [lttng-dev] delay between trigger and action Yitschak, Yehuda via lttng-dev
2023-05-23 14:51 ` Jérémie Galarneau via lttng-dev

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.