Почему arg0 может указывать, что это стек ядра, когда? - PullRequest
0 голосов
/ 25 февраля 2019

В чем разница между arg0 и arg1 при использовании dtrace.

dtrace -n 'profile-997 /arg0/ { @[stack()] = count() }
dtrace -n 'profile-997 /arg1/ { @[ustack()] = count() }

Например, два сценария над номером записи каждого стека.Мне просто интересно, почему arg0 указывает, что это стек ядра, а arg1 - стек пространства пользователя.

1 Ответ

0 голосов
/ 25 февраля 2019

Это специально.

Поставщик профиля получает два аргумента, arg0 устанавливается на ПК в случае, если ЦП работает в режиме ядра, а arg1 имеет ПК в случае, если ЦП работает в пользовательском пространстве.Другой аргумент устанавливается в ноль, что позволяет очень просто определять состояние процессора.

...