Доступ к логическому (программному) идентификатору потока в gem5

Мне было интересно, есть ли способ различать разные логические (программные) потоки в gem5. Я пытаюсь собрать статистику для каждого логического потока, и пока все, что я мог найти в gem5, это доступ к физическим потокам. Я знаю, что ответственность за логические потоки несет ОС, но есть ли у gem5 доступ к идентификатору логического потока.

Один из вариантов - привязать потоки к ядрам, но это работает только в том случае, если количество ядер по меньшей мере равно количеству логических потоков. Однако мне нужно будет провести некоторые эксперименты, в которых количество логических потоков превышает количество ядер, и в этом случае несколько логических потоков будут назначены одному и тому же ядру, и для того, чтобы различать их, мне нужен идентификатор логического потока.

Заранее большое спасибо.

1 ответ

Для arm64 полной системы Linux, я считаю, что если вы собираете ядро ​​с CONFIG_PID_IN_CONTEXTIDRзатем каждый процесс выполняется с уникальным CONTEXTIDR_EL1, который показывает на --debug-flag Exec,

Другие архивы см. В ответах на вопрос списка рассылки: https://www.mail-archive.com/gem5-users@gem5.org/msg16228.html

Пожалуйста, всегда уточняйте, работаете ли вы с полной системой, или с эмуляцией системного вызова, если кажется, что это имеет значение, поскольку ответы могут быть совершенно разными.

Другие вопросы по тегам