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)