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

Исходное сообщение
"Сетевой стек FreeBSD окончательно простился с глобальными бл..."

Отправлено opennews , 19-Апр-09 10:52 
Роберт Ватсон (Robert Watson) объявил (http://groups.google.com/group/mailing.freebsd.current/msg/8...) о завершении четырехлетней работы по переводу сетевой подсистемы FreeBSD на более эффективную систему блокировок. В сетевой стек FreeBSD 8-CURRENT добавлено исправление, удаляющее поддержку признака IFF_NEEDSGIANT (http://wiki.freebsd.org/NetworkNeedsGiant), обеспечивающего работоспособность старого кода сетевых драйверов, использующего механизм глобальной блокировки (Giant lock). Иными словами, отныне все сетевые драйверы переведены на новую MPSAFE (Multi Processor Safe) систему блокировок, эффективную для моногопроцессорных и многоядерных систем.

URL: http://docs.freebsd.org/cgi/mid.cgi?alpine.BSF.2.00.09041821...
Новость: http://www.opennet.me/opennews/art.shtml?num=21330


Содержание

Сообщения в этом обсуждении
"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Дмитрий Ю. Карпов , 19-Апр-09 12:48 
Мне кажется, зря они забросили поддержку версии 4.x - однопроцессорных систем достаточно много, да и на двухпроцессорных системах гигантские блокировки не затрудняли работу слишком сильно; зато более совершенная система блокировок сложнее, что приводит к увеличению затрат.

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено RE_set , 19-Апр-09 15:10 
Попробуй DragonFlyBSD она когда-то ответлилась от 4-й фряхи

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено аноним , 19-Апр-09 15:45 
Угу, но и в плане производительности DFBSD провалилась полностью, судя по тестам.

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено аноним , 19-Апр-09 15:47 
Сомневаюсь, в DF банально слишком мало народу и FreeBSD уже слишком ушла вперед, codebase значительно различаются. Поэтому стрекозу можно рассматривать только как полигон для image и hammer, ни о каком практическом ее использовании речи быть не может.

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено yantux , 19-Апр-09 16:47 
А передрать они не могут?

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено аноним , 19-Апр-09 18:48 
Кто передрать, DF? Говорю же, код уже значительно различается и народу мало. Флаг им у руки, конечно.

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено аноним , 19-Апр-09 15:44 
Поддержку версии 4.x они забросили очень правильно, потому что, независимо от параллельности сетевого стека, она протухла полностью и абсолютно.

> на двухпроцессорных системах гигантские блокировки не затрудняли работу слишком сильно

Постеснялись бы такой бред писать.


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено cvsup , 19-Апр-09 22:26 
> Поддержку версии 4.x они забросили очень правильно, потому что, независимо от параллельности сетевого стека, она протухла полностью и абсолютно.

+1, забавно теперь читать текст анонсов тех лет об очередном выпуске из 4 ветки. "Вот теперь уж точно последний релиз", "самый самый последний релиз" и т.д.
Была бы возможность - забросили бы куда раньше.


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено sky , 19-Апр-09 22:41 
В OpenBSD все еще есть ваши любимые гигантские блокировки. Пользуйтесь на здоровье.

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено PereresusNeVlezaetBuggy , 20-Апр-09 09:12 
>В OpenBSD все еще есть ваши любимые гигантские блокировки. Пользуйтесь на здоровье.

Они и во фряхе ещё есть, только в других подсистемах. Кстати, если инфа по приведённой рядом ссылке http://wiki.freebsd.org/SMPTODO не устарела, то нельзя считать, что во FreeBSD полностью избавились от блокировок в сетевой подсистеме, так как как минимум netgraph ещё юзает non-MPSAFE интерфейс timeout().

В OpenBSD тоже движутся в сторону fine-grained блокировок, недавно, например, свежий коммит на эту тему:

CVSROOT:        /cvs
Module name:    src
Changes by:     oga@cvs.openbsd.org     2009/04/19 11:50:18

Modified files:
        sys/arch/amd64/amd64: softintr.c
        sys/arch/amd64/include: intr.h
        sys/arch/i386/i386: softintr.c
        sys/arch/i386/include: intr.h

Log message:
Switch the softinterrupt code on x86 over to mutexes instead of
simplelocks + splhigh().

First part of making it possible to make mpsafe softinterrupts.


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено zorro , 19-Апр-09 13:34 
Отлично! Была проделана огромная работа. Которую Дилону только предстоит пройти..

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Осторожный , 19-Апр-09 15:59 
Избавились - это хорошо.
Видимо ожидаемый летом релиз FreeBSD 8.0 будет уже без блокировок.
А вот будет ли это в FreeBSD 7.3 ?

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено infofarmer , 20-Апр-09 02:41 
нет

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Осторожный , 20-Апр-09 07:59 
А вот это не очень хорошо.
Придется ждать FreeBSD 8.1

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено crypt , 19-Апр-09 17:32 
Хорошо, конечно. В каких-то других (disk io?) подсистемах блокировки сохраняются?

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Имя , 19-Апр-09 19:28 
конечно сохранятся... куда же без них

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено cvsup , 19-Апр-09 22:23 
http://wiki.freebsd.org/SMPTODO

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено www2 , 20-Апр-09 08:44 
NetBSD тоже двигается в сторону SMP, но, похоже, более планомерно: http://www.netbsd.org/~ad/smp/tasks.html

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Аноним , 20-Апр-09 13:53 
21-й век на дворе, а BSD еще только двигайются в сторону SMP...

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено PereresusNeVlezaetBuggy , 20-Апр-09 14:06 
>21-й век на дворе, а BSD еще только двигайются в сторону SMP...

Так расскажите же нам так же детально состояние других ОС. Например, Windows NT 7, или MacOS X... упс, эппловская хрень — это ведь тоже в некотором роде BSD. Трудно? Тогда (это уже без сарказма) хотя бы поделитесь хотя бы _столь_же_подробной_ информацией по Linux, обсудим. :)

Главное, не путайте поддержку и оптимизацию. ;)


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Trouble , 22-Апр-09 05:10 
да, сразу видно что вы ни разу не видели "эппловскую хрень".

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено PereresusNeVlezaetBuggy , 22-Апр-09 12:43 
>да, сразу видно что вы ни разу не видели "эппловскую хрень".

Видел, видел. Только я-то отнюдь не работник культуры, мне интересна другая архитектура. :)


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено iZEN , 20-Апр-09 14:51 
>21-й век на дворе, а BSD еще только двигайются в сторону SMP...

Что есть -- то есть. В Linux не лучше:
"12 лет назад Linux стал поддерживать многопроцессорные системы. Тогда же для предотвращения "логических гонок" (race conditions) без существенного изменения драйверов и других частей ядра был введен Big Kernel Lock, как временная мера до появления более совершенных механизмов синхронизации. Однако с течением времени для уменьшения задержек (latency) реализация Big Kernel Lock усложнялась: например, было добавлено вытеснение (preemption).

Недавно Linus вернул реализацию Big Kernel Lock к старому варианту (spinlock), и тем самым потерялась возможность вытеснения. По его словам, единственным приемлемым способом избавиться от задержек является уничтожение Big Kernel Lock из всех 1300+ мест, в которых он используется. Однако, по оценкам Ingo Molnar, с текущими темпами этот процесс может занять порядка 10 лет. Причина: Big Kernel Lock слишком прозрачен. Теперь слишком легко, даже не подозревая об этом, добавить код, который захватывает BKL, и для большинства строк кода никто наверняка не знает, захвачен он в данной строке или нет. Кроме того, автоматическая проверка вложенности блокировок (lockdep) не знает о Big Kernel Lock, и поэтому слишком просто создать труднообнаружимый deadlock.

Для ускорения процесса удаления Big Kernel Lock Ingo Molnar создал git-дерево, в котором Big Kernel Lock стал более "видимым" (добавлены отладочные средства и поддержка lockdep), и его использование удалено из основного кода ядра."
Новость: http://lkml.org/lkml/2008/5/14/324
Обсуждение: http://www.linux.org.ru/view-message.jsp?msgid=2744340


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено Аноним , 20-Апр-09 16:03 
На opennet тоже было:
17.05.2008 Инициатива по устранению глобальных блокировок в Linux ядре
http://www.opennet.me/opennews/art.shtml?num=15922

"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено vle , 21-Апр-09 14:36 
>NetBSD тоже двигается в сторону SMP, но, похоже, более планомерно:
>http://www.netbsd.org/~ad/smp/tasks.html

Куда уж планомернее. 90% работы сделано.
Насколько хорошо -- можно посмотреть в NetBSD5_RC4.
И сделано на порядок быстрее, чем во FreeBSD, года за два примерно.
Вместо ~8 у FreeBSD. Причина -- NetBSD-шники пошли другим путем,
наняли одного человека на full-time (ad@) и не стали полагаться
на в общем-то неопределенный результат работы волонтеров.


"Сетевой стек FreeBSD окончательно простился с глобальными бл..."
Отправлено www2 , 21-Апр-09 14:44 
>>NetBSD тоже двигается в сторону SMP, но, похоже, более планомерно:
>>http://www.netbsd.org/~ad/smp/tasks.html
>
>Куда уж планомернее. 90% работы сделано.
>Насколько хорошо -- можно посмотреть в NetBSD5_RC4.
>И сделано на порядок быстрее, чем во FreeBSD, года за два примерно.
>
>Вместо ~8 у FreeBSD. Причина -- NetBSD-шники пошли другим путем,
>наняли одного человека на full-time (ad@) и не стали полагаться
>на в общем-то неопределенный результат работы волонтеров.

Я думаю тут ещё не последюю роль сыграла хорошо продуманная архитектура системы, хороший уровень абстракции от оборудования, чистота и компактность кода.