Re: Spin locks
- From
- Gennady Mayko ()
- To
- Alex Fedotov
- Date
- 2002-07-01T10:23:18Z
- Area
- SU.WINDOWS.NT.PROG
From: "Gennady Mayko" <gennady.mayko@broadcom.com>
Добрый день,
Sun Jun 30 2002 19:43, Alex Fedotov wrote to Gennady Mayko:
AF> From: "Alex Fedotov" <me@alexfedotov.com>
>> Использование же номера процессора технически будет сложнее. Во-первых,
>> судя по MSDN, получить номер процессора в kernel mode для текущего
>> thread'a документированными средствами не удастся.
AF> KeGetCurrentProcessorNumber.
--
Спасибо, не заметил.
>> Во-вторых, если мы не ограничили специально AffinityMask для thread'a,
>> нужно специально постараться, чтобы, с момента определения номера
>> процессора, thread не переключился с него к тому времени, когда мы будем
>> сравнивать owner'a для spinlock'a.
AF> Для этого достаточно поднять IRQL до DISPATCH_LEVEL, что собственно и
AF> делают обычные спин-локи в NT.
--
Да, что-то подобное я и имел ввиду.
В таком варианте, при втором и последующих захватах spinlock'a, всегда будет
вызываться KeRaiseIrgl*. В оригинальном же этого не будет.
AF> -- Alex Fedotov
С уважением,
Геннадий Майко.
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)