domain switch

Philippe Gerum rpm at xenomai.org
Sun Jan 3 12:06:37 CET 2021


Leandro Bucci <guestleandro11 at gmail.com> writes:

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

task == thread

> Il dom 3 gen 2021, 11:31 Philippe Gerum <rpm at xenomai.org> ha scritto:
>
>>
>> steve freyder via Xenomai <xenomai at 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.
>>


-- 
Philippe.



More information about the Xenomai mailing list