[d-kernel] info [немного недопонял, - В kernel 2.6.16 теперь ждущие блокировки spinlock() не работают?]

Sergey Vlasov vsu на altlinux.ru
Сб Июн 17 20:31:22 MSD 2006


On Sat, Jun 17, 2006 at 10:36:58AM +0000, gosha wrote:
>   Проблема с kernel 2.6.16.18/20.- Пробовал пересобрать (портировать) kernel 2.6.16.18:
> static spinlock_t lock;
> spin_lock_init(&lock);
>  for(ir=0;ir<128;ir++)
>     {spin_lock(&lock);
>      printk("%s %s %d spinlock=%ld,%p\r\n", __FILE__, __FUNCTION__, __LINE__, ir, lock.raw_lock);
>     }
>  так она ни на одном мутексе не останавливается...

Значит, этот тест был выполнен на ядре *-up, где spin_lock()
действительно ничего не делает.  Spinlock используются только на SMP
для синхронизации между несколькими процессорами.  Код, пытающийся
рекурсивно захватить один и тот же spinlock на одном процессоре,
недопустим - это гарантированный deadlock.

>  И в include/linux/spinlock*.h ничего похожего на разблокировку/ блокировку ....

Все реализации spinlock архитектурно-зависимые, и поэтому лежат в
include/asm-*.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel-kernel/attachments/20060617/e8c2128b/attachment.bin 


Подробная информация о списке рассылки devel-kernel