URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 6999
[ Назад ]

Исходное сообщение
"OpenNews: Список системных вызовов FreeBSD, которые не избавлены от giant lock"

Отправлено opennews , 31-Май-05 16:14 
Robert Watson опубликовал (http://kerneltrap.org/node/5191) список системных вызовов,  которые еще приводят к полной блокировке (giant lock) на SMP системах.


Giant lock еще присутствует в вызовах управляющих расширенными атрибутами файлов (extattr_*), NFS (nfsclnt), NTP (ntp_gettime), монтированием ФС (mount, unmount, nmount), асинхронным вводом/выводом (aio_*, lio_*).

URL: http://kerneltrap.org/node/5191
Новость: http://www.opennet.me/opennews/art.shtml?num=5538


Содержание

Сообщения в этом обсуждении
"Список системных вызовов FreeBSD, которые не избавлены от giant lock"
Отправлено Осторожный , 31-Май-05 16:14 
Очень хорошо если NFS и асихронный ввод-вывод будут MPSAFE.

"Список системных вызовов FreeBSD, которые не избавлены от giant lock"
Отправлено Dmitry U. Karoiv , 31-Май-05 16:40 
Интересно было бы почитать подробнее об этих Гиант-Локах. Чего это вдруг все на них окрысились? IMHO, на двухпроцессорной (и даже, скорее всего, на четырёхпроцесорной) системе они не так уж вредны...

"Список системных вызовов FreeBSD, которые не избавлены от gi..."
Отправлено Осторожный , 01-Июн-05 08:13 
На эту тему уже писали
Giant Lock - это глобальная блокировка в коде ядра,
используемая чтобы другой процессор или thread не залез в ненужное время
в ненужное место и чего-нибудь не испортил.
Отсутствие глобальной блокировки должно ускорять работу и 1-CPU машин, а не только 2-CPU и 4-CPU.
Насколько я понял Giant Lock заменяют на множество локальных блокировок. Локальные блокировки относятся уже к какой-то конкретной части ядра.
Множество локальных блокировок позволяет процессам меньше затыкаться на Giant Lock, и таким образом исполнение получается более быстрым.

"Список системных вызовов FreeBSD, которые не избавлены от gi..."
Отправлено ZOD , 01-Июн-05 17:10 
Всё верно только однопроцессорным от этого не легче так как одновременно может испонятся только либо код процесса либо ядра, либо второго процесса. Возможно только для HT будет какая то разница.

"Список системных вызовов FreeBSD, которые не избавлены от gi..."
Отправлено Dmitry U. Karoiv , 01-Июн-05 21:05 
> Giant Lock - это глобальная блокировка в коде ядра, используемая чтобы другой процессор или thread не залез в ненужное время в ненужное место и чего-нибудь не испортил.

Это-то я и сам прекрасно понимаю. Меня интересуют подробности, в т.ч. оценки потерь производительности на реально работающих системах.


> Отсутствие глобальной блокировки должно ускорять работу и 1-CPU машин, а не только 2-CPU и 4-CPU.

А вот в это, простите, я не верю - на однопроцессорных системах Giant Lock д.б. проще и эффективнее локальных блокировок (собственно, Giant Lock - это наследие однопроцессорных систем, на которых развивались первые версии Linux и *BSD).


"Список системных вызовов FreeBSD, которые не избавлены от giant lock"
Отправлено RIPper_wk , 02-Июн-05 16:16 
в НФС у меня это приводило к кордампу .
в 4.10