is it possible to have the same thing for tasks instead of threads?

Il dom 3 gen 2021, 11:31 Philippe Gerum <r...@xenomai.org> ha scritto:

>
> steve freyder via Xenomai <xenomai@xenomai.org> writes:
>
> > Right.
> >
> >
> > AKA, "mode switch", a switch from "primary mode" to "secondary mode",
> > or vice versa.
> >
> > One place you can find that information is in:
> >
> > /proc/xenomai/sched/acct
> >
> > there are two fields MSW, and CSW which count mode/context switches
> > per-process. This requires an open, a read loop to locate the desired
> > pid and extract the desired information, then either rewind or
> > close/reopen to do it again - all of which will almost surely generate
> > more mode/context switching.
> >
>
> If that helps, there is also the option of getting the thread stats by
> program, using int cobalt_thread_stat(pid_t pid, struct
> cobalt_threadstat *stat), declared in sys/cobalt.h. pid refers to a
> thread identifier (as obtained from gettid(2) in the context of the
> target thread). It must refer to a Cobalt thread, otherwise the call
> would fail with -ESRCH.
>
> The mode switch count is present in the returned information block
> (->msw). cobalt_thread_stat() would not cause any mode switch. It can be
> called by any thread regardless of its type (i.e. regular or Cobalt).
>
> --
> Philippe.
>

Reply via email to