Spin locks

From
Gennady Mayko ()
To
Eugene Muzychenko
Date
2002-06-30T10:57:56Z
Area
SU.WINDOWS.NT.PROG
From: "Gennady Mayko" <gennady.mayko@broadcom.com>

Добрый день!

Sat Jun 29 2002 22:50, Eugene Muzychenko wrote to Gennady Mayko:

 GM>> Поэтому, скоpее всего, не
 GM>> имеет смысла говоpить о связях ID thread'а и ISR. 

 EM> Вот именно, а коppектно ли тогда использовать в качестве owner'а для
 EM> spinlock'а идентификатоpа задачи, как это сделано в пpиведенном пpимеpе?
 EM> По-моему, более пpавильно было бы использовать номеp пpоцессоpа.
--
Если я не ошибаюсь, речь идет о функции KSpin::Lock() из файла kspin.cpp, нет?
Думаю, что она не предназначена для защиты данных между ISR и остальными
функциями драйвера. Если этот случай исключить, то, IMHO, корректно
использовать ID thread'а.

Использование же номера процессора технически будет сложнее. Во-первых, судя
по MSDN, получить номер процессора в kernel mode для текущего thread'a
документированными средствами не удастся. Во-вторых, если мы не ограничили
специально AffinityMask для thread'a, нужно специально постараться, чтобы, с
момента определения номера процессора, thread не переключился с него к тому
времени, когда мы будем сравнивать owner'a для spinlock'a.

 EM> Всего добpого!
 EM> Евгений Мyзыченко

С уважением,
Геннадий Майко.

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)