From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
Adrian Hunter <adrian.hunter@intel.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Ian Rogers <irogers@google.com>, Ingo Molnar <mingo@redhat.com>,
Jiri Olsa <jolsa@kernel.org>, Marco Elver <elver@google.com>,
Mark Rutland <mark.rutland@arm.com>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v2 0/4] perf: Make SIGTRAP and __perf_pending_irq() work on RT.
Date: Wed, 13 Mar 2024 10:28:41 -0300 [thread overview]
Message-ID: <ZfGqCWzyVzyGQrAQ@x1> (raw)
In-Reply-To: <20240313081303.DClwQrvb@linutronix.de>
On Wed, Mar 13, 2024 at 09:13:03AM +0100, Sebastian Andrzej Siewior wrote:
> On 2024-03-12 18:42:38 [-0300], Arnaldo Carvalho de Melo wrote:
> …
> > But:
> >
> > [acme@nine ~]$ pidof exec_child
> > 24273 24271 24270 24269 24268 24267 24266 24265 24264 24263 24262 24261 24260 24259
> …
>
> > [root@nine ~]# cat /proc/24263/stack
> > [<0>] irqentry_exit_to_user_mode+0x1c9/0x1e0
> > [<0>] asm_sysvec_apic_timer_interrupt+0x16/0x20
> > [root@nine ~]#
> …
> > [acme@nine ~]$ ps ax|grep exec_child| wc -l
> > 504
> > [acme@nine ~]$ ps ax|grep exec_child| tail
> > 24264 pts/0 R 0:04 exec_child
> > 24265 pts/0 R 0:04 exec_child
> > 24266 pts/0 R 0:04 exec_child
> > 24267 pts/0 R 0:04 exec_child
> > 24268 pts/0 R 0:04 exec_child
> > 24269 pts/0 R 0:04 exec_child
> > 24270 pts/0 R 0:04 exec_child
> > 24271 pts/0 R 0:04 exec_child
> > 24273 pts/0 R 0:04 exec_child
> > 26704 pts/1 S+ 0:00 grep --color=auto exec_child
> > [acme@nine ~]$
> >
> > All in 'R' state.
> >
> > [root@nine ~]# killall exec_child
> > exec_child: no process found
> > [root@nine ~]# ps ax | grep exec_child | head -5
> > 22964 pts/0 R 0:06 exec_child
> > 23046 pts/0 R 0:05 exec_child
> > 23128 pts/0 R 0:05 exec_child
> > 23129 pts/0 R 0:05 exec_child
> > 23181 pts/0 R 0:05 exec_child
> > [root@nine ~]# kill 22964 23046 23128 23129 23181
> > [root@nine ~]# ps ax | grep exec_child | head -5
> > 23182 pts/0 R 0:06 exec_child
> > 23196 pts/0 R 0:06 exec_child
> > 23197 pts/0 R 0:06 exec_child
> > 23210 pts/0 R 0:06 exec_child
> > 23213 pts/0 R 0:06 exec_child
> > [root@nine ~]#
> You can't kill them?
I can, they remain in R state and I can kill them with 'kill `pidof exec_child`'
> > at the end they disappeared, on this last run.
> > But if I do a 'killall remove_on_exec' and stop that loop (control+C/Z)
> > we get all those exec_child running a seemingly eternal loop:
>
> Is this new or was it there? Is this VM or bare metal?
bare metal.
> One part I don't get: did you let it run or did you kill it?
If I let them run they will finish and exit, no exec_child remains.
If I instead try to stop the loop that goes on forking the 100 of them,
then the exec_child remain spinning.
> `exec_child' spins until a signal is received or the parent kills it. So
> it shouldn't remain there for ever. And my guess, that it is in spinning
> in userland and not in kernel.
Checking that now, the stack is the one I posted:
> > [root@nine ~]# cat /proc/24263/stack
> > [<0>] irqentry_exit_to_user_mode+0x1c9/0x1e0
> > [<0>] asm_sysvec_apic_timer_interrupt+0x16/0x20
> > [root@nine ~]#
> I tried it on bare metal and VM and couldn't reproduce this.
All my tests are in bare metal.
- Arnaldo
next prev parent reply other threads:[~2024-03-13 13:28 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-12 18:01 [PATCH v2 0/4] perf: Make SIGTRAP and __perf_pending_irq() work on RT Sebastian Andrzej Siewior
2024-03-12 18:01 ` [PATCH v2 1/4] perf: Move irq_work_queue() where the event is prepared Sebastian Andrzej Siewior
2024-03-12 18:01 ` [PATCH v2 2/4] perf: Enqueue SIGTRAP always via task_work Sebastian Andrzej Siewior
2024-03-13 14:41 ` Marco Elver
2024-03-14 9:35 ` Sebastian Andrzej Siewior
2024-03-12 18:01 ` [PATCH v2 3/4] perf: Remove perf_swevent_get_recursion_context() from perf_pending_task() Sebastian Andrzej Siewior
2024-03-12 18:01 ` [PATCH v2 4/4] perf: Split __perf_pending_irq() out of perf_pending_irq() Sebastian Andrzej Siewior
2024-03-12 21:42 ` [PATCH v2 0/4] perf: Make SIGTRAP and __perf_pending_irq() work on RT Arnaldo Carvalho de Melo
2024-03-13 8:13 ` Sebastian Andrzej Siewior
2024-03-13 13:28 ` Arnaldo Carvalho de Melo [this message]
2024-03-13 13:46 ` Sebastian Andrzej Siewior
2024-03-13 14:06 ` Arnaldo Carvalho de Melo
2024-03-13 13:47 ` Arnaldo Carvalho de Melo
2024-03-13 14:15 ` Sebastian Andrzej Siewior
2024-03-13 14:17 ` Marco Elver
2024-03-13 14:35 ` Marco Elver
2024-03-13 15:23 ` Arnaldo Carvalho de Melo
2024-03-13 18:14 ` Arnaldo Carvalho de Melo
2024-03-13 18:30 ` Arnaldo Carvalho de Melo
2024-03-13 20:12 ` Arnaldo Carvalho de Melo
2024-03-13 20:14 ` Arnaldo Carvalho de Melo
2024-03-14 9:10 ` Sebastian Andrzej Siewior
2024-03-14 14:34 ` Arnaldo Carvalho de Melo
2024-03-14 21:22 ` Arnaldo Carvalho de Melo
2024-03-14 21:46 ` Arnaldo Carvalho de Melo
2024-03-15 7:41 ` Sebastian Andrzej Siewior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZfGqCWzyVzyGQrAQ@x1 \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=bigeasy@linutronix.de \
--cc=elver@google.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.