Я только что получил быстрое разъяснение от кого-то, кто имеет больше идей, чем я. В настоящее время я отслеживаю транзакции связывателя в ядре Android и сравниваю их с журналами связывателя как проверку работоспособности.Журналы показывают запись, такую как
2122.135601 1959009: call from 3081:7263 to 3075:0 node 69606 handle 10 size 84:0
(обратите внимание, что я изменил печать журнала связывателя, чтобы показать sched_clock()
)
Теперь из функции печати журнала связывателя
seq_printf(m,
| "%5llu.%06lu %d: %s from %d:%d to %d:%d node %d handle %d size %d:%d\n",
| t, usec_rem,
| e->debug_id, (e->call_type == 2) ? "reply" :
| ((e->call_type == 1) ? "async" : "call "), e->from_proc,
| e->from_thread, e->to_proc, e->to_thread, e->to_node,
| e->target_handle, e->data_size, e->offsets_size);
Я вижу, что в печатной форме от "X: Y до A: B" (в середине инструкции) показаны операции from proc & thread и to proc & thread.Так что после всего этого мой вопрос довольно прост.Когда для proc & thread что-то наподобие 1234: 0, это означает, что поток (имеющий идентификатор 0) представляет, что это исходный процесс, который разветвляются все другие потоки (например, 1234: 5678) целевой программыот?Мне не удалось найти конкретную литературу по этому вопросу (возможно, я просто слепой).
Приветствия