File 2212-erts-Remove-scheduler_poll-lttng-event.patch of Package erlang

From 16ea222223d579f20375e59585a3b64f05cf0402 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Wed, 4 Sep 2019 09:34:36 +0200
Subject: [PATCH 2/2] erts: Remove scheduler_poll lttng event

This event is not really useful for anything since the
poll events moved to a seperate thread so remove it.
---
 erts/emulator/beam/erl_process.c    |  2 --
 erts/emulator/beam/erlang_lttng.h   | 15 ----------
 erts/emulator/test/lttng_SUITE.erl  | 60 +++----------------------------------
 lib/runtime_tools/doc/src/LTTng.xml |  8 -----
 4 files changed, 4 insertions(+), 81 deletions(-)

diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index a247258eff..c0b26ef6d8 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -44,7 +44,6 @@
 #include "erl_thr_queue.h"
 #include "erl_async.h"
 #include "dtrace-wrapper.h"
-#include "lttng-wrapper.h"
 #include "erl_ptab.h"
 #include "erl_bif_unique.h"
 #define ERTS_WANT_TIMER_WHEEL_API
@@ -9562,7 +9561,6 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
 	    erts_runq_unlock(rq);
 
             ERTS_MSACC_SET_STATE_CACHED_M(ERTS_MSACC_STATE_CHECK_IO);
-            LTTNG2(scheduler_poll, esdp->no, 1);
 
 	    erts_check_io(esdp->ssi->psi, ERTS_POLL_NO_TIMEOUT, 0);
 	    ERTS_MSACC_POP_STATE_M();
diff --git a/erts/emulator/beam/erlang_lttng.h b/erts/emulator/beam/erlang_lttng.h
index e5fc56d3ec..213830e6fd 100644
--- a/erts/emulator/beam/erlang_lttng.h
+++ b/erts/emulator/beam/erlang_lttng.h
@@ -30,21 +30,6 @@
 
 #include <lttng/tracepoint.h>
 
-/* Schedulers */
-
-TRACEPOINT_EVENT(
-    org_erlang_otp,
-    scheduler_poll,
-    TP_ARGS(
-        int, id,
-        int, runnable
-    ),
-    TP_FIELDS(
-        ctf_integer(int, scheduler, id)
-        ctf_integer(int, runnable, runnable)
-    )
-)
-
 #ifndef LTTNG_CARRIER_STATS
 #define LTTNG_CARRIER_STATS
 typedef struct {
diff --git a/erts/emulator/test/lttng_SUITE.erl b/erts/emulator/test/lttng_SUITE.erl
index c3d846d8b5..18d72cc16a 100644
--- a/erts/emulator/test/lttng_SUITE.erl
+++ b/erts/emulator/test/lttng_SUITE.erl
@@ -32,8 +32,7 @@
          t_driver_ready_input_output/1,
          t_driver_timeout/1,
          t_driver_caller/1,
-         t_driver_flush/1,
-         t_scheduler_poll/1]).
+         t_driver_flush/1]).
 
 -export([ets_load/0]).
 
@@ -43,7 +42,7 @@ suite() ->
     [{ct_hooks,[ts_install_cth]},
      {timetrap, {minutes, 1}}].
 
-all() -> 
+all() ->
     [t_lttng_list,
      t_memory_carrier,
      t_carrier_pool,
@@ -52,9 +51,7 @@ all() ->
      t_driver_control,
      t_driver_timeout,
      t_driver_caller,
-     t_driver_flush,
-     t_scheduler_poll].
-
+     t_driver_flush].
 
 init_per_suite(Config) ->
     case erlang:system_info(dynamic_trace) of
@@ -103,7 +100,6 @@ end_per_testcase(Case, _Config) ->
 %%   org_erlang_otp:driver_outputv
 %%   org_erlang_otp:driver_init
 %%   org_erlang_otp:driver_start
-%%   org_erlang_otp:scheduler_poll
 
 %%
 %% Testcases
@@ -262,35 +258,6 @@ t_driver_caller(Config) ->
     ok = check_tracepoint("org_erlang_otp:driver_init", Res),
     ok = check_tracepoint("org_erlang_otp:driver_finish", Res),
     ok.
- 
-%% org_erlang_otp:scheduler_poll
-t_scheduler_poll(Config) ->
-    ok = lttng_start_event("org_erlang_otp:scheduler_poll", Config),
-
-    N = 100,
-
-    Me = self(),
-    Pid = spawn_link(fun() -> tcp_server(Me, {active, N*2}) end),
-    receive {Pid, accept} -> ok end,
-
-    %% We want to create a scenario where the fd is moved into a scheduler
-    %% pollset, this means we have to send many small packages to the
-    %% same socket, but not fast enough for them to all arrive at the
-    %% same time.
-    {ok, Sock} = gen_tcp:connect("localhost", 5679, [binary, {packet, 2}]),
-    [begin gen_tcp:send(Sock,txt()), receive ok -> ok end end || _ <- lists:seq(1,N)],
-
-    ok = memory_load(),
-
-    [begin gen_tcp:send(Sock,txt()), receive ok -> ok end end || _ <- lists:seq(1,N)],
-
-    ok = gen_tcp:close(Sock),
-    Pid ! die,
-    receive {Pid, done} -> ok end,
-
-    Res = lttng_stop_and_view(Config),
-    ok = check_tracepoint("org_erlang_otp:scheduler_poll", Res),
-    ok.
 
 %% org_erlang_otp:driver_flush
 t_driver_flush(Config) ->
@@ -331,24 +298,6 @@ chk_caller(Port, Callback, ExpectedCaller) ->
             ExpectedCaller = Caller
     end.
 
-memory_load() ->
-    Me = self(),
-    Pids0 = [spawn_link(fun() -> memory_loop(Me, 20, <<42>>) end) || _ <- lists:seq(1,30)],
-    timer:sleep(50),
-    Pids1 = [spawn_link(fun() -> memory_loop(Me, 20, <<42>>) end) || _ <- lists:seq(1,30)],
-    [receive {Pid, done} -> ok end || Pid <- Pids0 ++ Pids1],
-    timer:sleep(500),
-    ok.
-
-memory_loop(Parent, N, Bin) ->
-    memory_loop(Parent, N, Bin, []).
-
-memory_loop(Parent, 0, _Bin, _) ->
-    Parent ! {self(), done};
-memory_loop(Parent, N, Bin0, Ls) ->
-    Bin = binary:copy(<<Bin0/binary, Bin0/binary>>),
-    memory_loop(Parent, N - 1, Bin, [a,b,c|Ls]).
-
 ets_load(Config) ->
 
     %% Have to do on a fresh node to guarantee that carriers are created
@@ -441,8 +390,7 @@ txt() ->
       "%%   org_erlang_otp:driver_output\n"
       "%%   org_erlang_otp:driver_outputv\n"
       "%%   org_erlang_otp:driver_init\n"
-      "%%   org_erlang_otp:driver_start\n"
-      "%%   org_erlang_otp:scheduler_poll">>.
+      "%%   org_erlang_otp:driver_start">>.
 
 load_driver(Dir, Driver) ->
     case erl_ddll:load_driver(Dir, Driver) of
diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml
index 85adbcc616..e6fa8d484c 100644
--- a/lib/runtime_tools/doc/src/LTTng.xml
+++ b/lib/runtime_tools/doc/src/LTTng.xml
@@ -313,14 +313,6 @@ $ make </code>
         <p>All tracepoints are in the domain of <c>org_erlang_otp</c></p>
         <p>All Erlang types are the string equivalent in LTTng.</p>
 
-        <p><em>scheduler_poll</em></p>
-        <list type="bulleted">
-            <item><c>scheduler : integer</c> :: Scheduler ID. Ex. <c>1</c></item>
-            <item><c>runnable : integer</c> :: Runnable. Ex. <c>1</c></item>
-        </list>
-        <p>Example:</p>
-        <code type="none">scheduler_poll: { cpu_id = 4 }, { scheduler = 1, runnable = 1 }</code>
-
         <p><em>driver_init</em></p>
         <list type="bulleted">
             <item><c>driver : string</c> :: Driver name. Ex. <c>"tcp_inet"</c></item>
-- 
2.16.4

openSUSE Build Service is sponsored by