LINUX.ORG.RU

Смена власти в проекте Glibc, уход Ульриха Дреппера из управления проектом

 ,


0

1

Рональд Макграт, основатель системной библиотеки Glibc, объявил о роспуске курирующего разработку Glibc управляющего комитета, что приведёт к передаче полномочий по принятию решений в руки команды активных мейнтейнеров. Комитет принял решение о своём роспуске, посчитав, что сформировавшееся сообщество разработчиков способно обеспечить саморегулирование. Направление развития и политика проекта теперь будут определяться через достижение консенсуса среди людей, непосредственно вовлечённых в разработку Glibc.

Джозеф Маерс, один из мейнтейнеров Glibc, пригласил энтузиастов принять участие в разработке Glibc и указал на то, что соблюдая правила GNU и не отходя от устоявшихся в сообществе норм и стиля кодирования, участники разработки могут претендовать на получение права коммита. В будущем не исключено решение всех разногласий с разработчиками еglibc и постепенную интеграцию расширенных функций еglibc в glibc, что в итоге может привести к слиянию обеих системных библиотек в единый проект.

Среди утверждённых мэйнтейнеров отмечены Рональд Макграт, Райан Арнольд, Максим Кувырков, Джозеф Маерс, Карлос О'Донелл и Алехандре Олива. Примечательно, но в списке нет Ульриха Дреппера, который отмечен на сайте Glibc как наиболее влиятельный разработчик, отвечающий за приём патчей и сопровождение проекта. В сообщении о роспуске комитета выражается благодарность Ульриху Дрепперу за вклад в развитие Glibc, но он не включён в новую команду мэйнтейнеров, что связано с его уходом из компании Red Hat и невозможности тратить много времени на проект (работа в RedHat подразумевала трату на Glibc всего рабочего времени).

Новость взята с opennet.ru

>>> Подробности

★★★★★

Проверено: tazhate ()
Последнее исправление: JB (всего исправлений: 3)

Ответ на: комментарий от DoctorSinus

VP, Technology Division at Goldman Sachs. Location: Greater New York City Area;

Чо, пацан к успеху пришел.

stevejobs ★★★★☆
()
Ответ на: комментарий от MyTrooName

При фиксированном размере блока, вызов memcpy эффективно разворачивается компилятором в оптимальный код. memmove развернуть в набор присваиваний невозможно.

Поэтому, кстати, в стандарте ничего трогать нельзя.

geekless ★★
()
Ответ на: комментарий от geekless

и с этим я полностью согласен. вы уже успели поменять точку зрения, некоторые еще нет. читай, в интернетах кто-то неправ

MyTrooName ★★★★★
()
Ответ на: комментарий от cvs-255

У вас ничего не изменится, копируйте через DMA, кто вам запрещает? Только дополнительно придется настраивать DMA на копирование в нужном направлении.

A-234 ★★★★★
()
Ответ на: комментарий от geekless

в стандарте ничего трогать нельзя, потому что это стандарт, и этого аргумента достаточно. можно дополнять, но не ломая совместимость.

я лишь указываю, что требование вместо memcpy подсунуть memmove? если с ним согласиться, должно быть стандартизовано. следовательно стандарт должен быть изменен, следовательно, такое требование нелегитимно.

MyTrooName ★★★★★
()
Ответ на: комментарий от myhand

Вот такая политика и привела к тому, что с Ульриком вежливо распрощались.

Это Ульрих распрощался. Дело в том, что RedHat - контора куда более бедная, чем Goldman Sachs :)

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

а я все думал, из чего же на самом деле «сакс» в данном случае транслитерировано было :)

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

Относительно стандартов, я и не выступал за их изменение. Так что точку зрения поменять не мог на ту же самую.

Относительно внутренней реализации memcpy в libc. Я не знаю, чем объясняется полуторное падение производительности в тесте (оно как-то не совсем логично), но мне лень выяснять. Поэтому будем считать, что на вопрос «а стоит ли в сорцах libc делать 2 функции вместо одной» имеет ответ «стоит».

geekless ★★
()
Ответ на: комментарий от A-234

А сама возможность копировать в нужном направлении зависит от реализации работы памяти и DMA. может там асинхронное мультипоточное копирование.

cvs-255 ★★★★★
()
Ответ на: комментарий от MyTrooName

я лишь указываю, что требование вместо memcpy подсунуть memmove? если с ним согласиться, должно быть стандартизовано. следовательно стандарт должен быть изменен, следовательно, такое требование нелегитимно.

Нет, это не требование. Это вопрос из разряда «если функциональность memmove > функцональности memcpy, может не париться и сделать их одной и той же функцией?» Т.е. это частное решение разработчика библиотеки, не ломающее никаких стандартов. Тест анона показал, что таки нет — имеет смысл «париться».

geekless ★★
()
Ответ на: комментарий от geekless

Относительно стандартов, я и не выступал за их изменение. Так что точку зрения поменять не мог на ту же самую.

вы, емнип, выступали за то, что дрепперу нужно было прогнуться под адоб (поправьте, если я ошибаюсь). я пытаюсь донести, что запрет на произвольное направление копирования в memcpy есть изменение стандарта, поскольку стандарт разрешает копировать в любом направлении.

но мне лень выяснять. ... Поэтому будем считать, что на вопрос «а стоит ли в сорцах libc делать 2 функции вместо одной» имеет ответ «стоит».

считайте.

и да, таки вы оспариваете надежность теста. но я об этом уже не говорю, поскольку «мне пох» с вашей стороны принято к сведению.

MyTrooName ★★★★★
()
Ответ на: комментарий от geekless

верно, имеет. еще и потому, что помимо glibc, есть другие реализации. и то, что мы делаем в глибц #define memcpy memmove, не спасает нас от возможных багов во флеше на альтернативах glibc.

MyTrooName ★★★★★
()
Ответ на: комментарий от geekless

В реальную qsort размер данных придёт как параметр, сама qsort не инлайнится. Поэтому компилятор ничего не сможет соптимизировать по константному размеру, несмотря на __builtin_memcpy. В примере sorting тоже вызываются именно generic версии обеих функций, убедился в этом по листингу. (glibc-2.5-81.el5_8.1, так, для справки).

Кстати, если увеличить размер данных - до 4096, разница будет ещё драматичнее: ~ 284m инструкций для memcpy против ~ 708m memmove, +150%

anonymous
()
Ответ на: комментарий от MyTrooName

s/и да, таки вы оспариваете надежность теста. но я об этом уже не говорю, поскольку «мне пох» с вашей стороны принято к сведению.//

моя ошибка

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

поправьте, если я ошибаюсь

Ошибаетесь.

и да, таки вы оспариваете надежность теста

У вас сегодня логика сбоит уже который раз. Я не оспариваю надёжность теста. Тест показал, что один и тот же код, собранный с memcpy и memmove, отличается в полтора раза по производительности. Это именно то, что он и должен был показать: есть разница в производительности или нет. Если разницы нет, значит сабжевый вопрос имеет ответ «можно использовать одну реализацию и не париться». Если тест показал разницу, ответ всё еще: «недостаточно информации». Но поскольку да, как вы заметили, «мне пох», я не буду выяснять детали. А раз не буду, то автоматически признаю правоту собеденика.

Ферштейн?

geekless ★★
()
Ответ на: комментарий от anonymous

В реальную qsort размер данных придёт как параметр, сама qsort не инлайнится. Поэтому компилятор ничего не сможет соптимизировать по константному размеру, несмотря на __builtin_memcpy. В примере sorting тоже вызываются именно generic версии обеих функций, убедился в этом по листингу.

Да. Я говорил про случай константного размера блока, а не про этот конкретно код.

geekless ★★
()
Ответ на: комментарий от anonymous

А теперь смотрим в реализацию memcpy и memmove и видим почему так происходит. Еще из этого кода сразу становится понятно при каких условиях разницы в работе этих функций приктически не будет. Что подтверждается экспериментами.

src > dst
memcpy: 551539758 cpu cycles
memmove: 535040373 cpu cycles

dst < src
memcpy: 535672756 cpu cycles
memmove: 869030893 cpu cycles

И тут речь идет скорее о неоптимально написанном memmove а не о том, что проверка занимает такую кучу времени ибо это извините бред.

A-234 ★★★★★
()
Ответ на: комментарий от Manhunt

Это Ульрих распрощался. Дело в том, что RedHat - контора куда более бедная, чем Goldman Sachs :)

«Если ты плюнешь в народ - народ утрется. Если народ плюнет в тебя - ты утонешь.» (с) Вот в этом смысле, очевидно, и «распрощались».

myhand
()
Ответ на: комментарий от geekless

Да. Я говорил про случай константного размера блока, а не про этот конкретно код.

Насколько я помню, gcc развернёт __builtin_memcpy для небольших размеров блока, выше некоторого порога полагается, что libc версия memcpy эффективнее, а оверхед на вызов уже незначителен.

Но в целом, мы пришли к согласию?

Что memcpy и memmove не зря существуют в двух версиях, и объединять их не стоит в том числе и по критерию производительности, а так, что исторически сложилось.

anonymous
()
Ответ на: комментарий от A-234

А теперь смотрим в реализацию memcpy и memmove и видим почему так происходит.

Я вижу условие dstp - srcp >= len. Сравнение unsigned. Поясни, что не так.

geekless ★★
()
Ответ на: комментарий от imul

Эк ты ловко назвал папуасами 6998000000 человек.

Эк ловко ты приписал мне то, что я не утверждал.

Да ещё оказывается и у меня проблемы. Ню-ню.

Да, так и есть. Причём и с логикой тоже.

rtvd ★★★★★
()
Ответ на: комментарий от geekless

Да нет, тут все в порядке, сравни внимательно код прямого и обратного копирования в memmove. Прямое копирование это memcpy один в один, а вот обратное немного отличается. Возможно для обратного копирования попросту невозможно сделать такую же реализацию как для прямого, но я пока в этом не убежден.

A-234 ★★★★★
()
Ответ на: комментарий от myhand

«Если ты плюнешь в народ - народ утрется. Если народ плюнет в тебя - ты утонешь.» (с) Вот в этом смысле, очевидно, и «распрощались».

Забавно, что основная масса линуксобыдла не способна оценить, сколь высока квалификация Ульриха, и не понимает, от какого количества головной боли Ульрих оградил сообщество. Плюйтесь сколько угодно - сидящий на колокольне в ваших плевках не утонет, вы попросту не способны до него доплюнуть. Скорее, это похоже на плевки против ветра :)

Manhunt ★★★★★
()
Ответ на: комментарий от myhand

Вот такая политика и привела к тому, что с Ульриком вежливо распрощались.

Вообще то это Ульрик распрощался по простой причине - он работает в другой компании и не может уделять достаточно времени.

Меньше чем «идиотский» сей «аргумент» нельзя назвать при всем желании. Не плачь и познакомься уже с системами контроля версий.

И чем мне поможет система контроля версий?

Legioner ★★★★★
()
Ответ на: комментарий от A-234

Нет, погоди. В каких случаях мы выполняем прямое копирование? Разве в случае неперекрывающихся буферов управление не будет всегда попадать в первую ветку?

geekless ★★
()
Ответ на: комментарий от Manhunt

Забавно, что основная масса линуксобыдла не способна оценить, сколь высока квалификация Ульриха, и не понимает, от какого количества головной боли Ульрих оградил сообщество.

Тонко. А примеры лютых винов будут?

geekless ★★
()
Ответ на: комментарий от geekless

Ну да, конечно, я имел в виду выполнение условия

if (dstp - srcp >= len)

И в случае перехода по else получаем менее эффективное копирование. Теперь меня мучает вопрос - почему оно такое медленное?

A-234 ★★★★★
()
Ответ на: комментарий от geekless

А примеры лютых винов будут?

Рекомендую ознакомиться с его статьями, там множество сакральных знаний: http://www.akkadia.org/drepper/ Действительно круто.

Ну а легко наблюдаемый на практике лютый вин заключается в том, что я могу собрать свой блоб с glibc 2.3.6, и он одинаково хорошо будет работать на всем зоопарке дистрибутивов, начиная от выпущенных 6+ лет назад, и заканчивая самыми свежими.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

Добавил в закладки, потом посмотрю. Я сейчас немного того...

geekless ★★
()
Ответ на: комментарий от geekless

Ошибаетесь.

признаю. претензии к вам оказались не по адресу, бес попутал

Ферштейн?

ферштейн уже постом выше. для вас же просьба стараться указывать на ошибки, а не переходить на личности. ваши фразы не всегда идеальны и могут быть однозначно истолкованы.

MyTrooName ★★★★★
()
Ответ на: комментарий от geekless

Там не всё так просто.

В sysdeps/x86_64, sysdeps/x86_64/multiarch есть масса всяких разных memcpy и memmove, и какие именно собраны для x86_64 centos 5.8, который я использовал в тесте, одному аллаху известно. В некоторых случаях по тесту типа процессора - выбирается одна из N версий в runtime, типа sse2/sse3.

Во всяком случае, по факту получается, что код memcpy заоптимизирован по самые помидоры и берётся из какого-то platform-specific memcpy.S, а memmove собирается из string/memmove.c и platform-specific макросов типа WORD_COPY_FWD и менее оптимально.

Что, в общем и делает разницу в тесте такой драматичной. Blame glibc :)

anonymous
()
Ответ на: комментарий от rtvd

Я тебе указал точное число каких-то папуасов, которым никакого дела нет до эсперанто. Перестань лепить отмазки и у тебя всё будет хорошо. А обо мне не беспокойся.

imul ★★★★★
()
Ответ на: комментарий от geekless

А примеры лютых винов будут?

в данном случае отсутствие множества лютых фейлов сойдет за один лютый вин.

anonymous
()
Ответ на: комментарий от anonymous

Кхм... Для многих здесь отметившихся фейл с флешем настолько лютый в их системе ценностей, что пересилит любой, наперёд заданный, вин произвольной весовой категории во всех прочих областях, вместе взятых. :D

imul ★★★★★
()
Ответ на: комментарий от imul

Я тебе указал точное число каких-то папуасов, которым никакого дела нет до эсперанто.

Ну и как ты их насчитал, точный ты наш? :) Решил, что я якобы утверждал, что все, кому не нужен эсператно - папуасы? Топай в школу, учи логику.

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

Комбинаторика сэр. Метод перестановок элементов подмножеств множества, разбитого на подмножества по определённому критерию. Мне как-то всё-равно, что ты там сказал. А прежде чем мне тыкать логикой, осильте арифметику. И да, одного папуаса, про которого ты (по твоим отмазкам) говорил, можешь откинуть и поделить на 6999999999 и стать счастливым и перестать волноваться по моему поводу.

imul ★★★★★
()
Ответ на: комментарий от Manhunt

Забавно, что основная масса линуксобыдла не способна оценить, сколь высока квалификация Ульриха, и не понимает, от какого количества головной боли Ульрих оградил сообщество.

Мне, конечно, лестно что вы «весь в белом» решили меня записать в категорию быдла. А «до кучи» - разработчиков eglibc, мейнтейнеров libc в дебиан и еще кучу народа.

Квалификация тут непричем. В сущности, никто в ней и не сомневается. Просто более умные люди понимают, что из нее не следует правильности каждого технического решения, принятого «диктаторски» Ульрихом.

myhand
()
Ответ на: комментарий от imul

Не, ну с флешем-то действительно фейл вышел. Тока при чем тут Ульрих? Непонятно.

// ладно, поверю, что ты Михаил.

anonymous
()
Ответ на: комментарий от imul

Говорят, что история не знает сослогательного наклонения. Кто знает, быть может, без его характера не было бы такой библиотеки совсем. Сейчас вот он отстранен, что ж, пусть попробуют без него.

hibou ★★★★★
()
Ответ на: комментарий от imul

Как же ты мог забыть

Это потому что все про Поттеринга, а про него уже и не вспоминают

goingUp ★★★★★
()
Ответ на: комментарий от imul

Комбинаторика сэр. Метод перестановок элементов подмножеств множества, разбитого на подмножества по определённому критерию.

Сам-то понял, что сказал? %)

А прежде чем мне тыкать логикой, осильте арифметику.

Похоже ты её переосилил. Рекомендую подышать свежим воздухом.

rtvd ★★★★★
()
Ответ на: комментарий от geekless

делать жит компиляцию 2 секунды при каждом запуске? это копейки. 5 секунд копейки! что? вы можете за наносекунду? да кому это надо? ок.

Thero ★★★★★
()
Ответ на: комментарий от geekless

нет разницы каждый разговаривает на своём языке.

Thero ★★★★★
()
Ответ на: комментарий от AptGet

пыщ на арме то зачем глибц? на арме 97% эмбеддед глибц туда толст. такчто ССЗБ и я бы тоже ВОНТФИКС

Thero ★★★★★
()
Ответ на: комментарий от myhand

Просто более умные люди понимают, что из нее не следует правильности каждого технического решения, принятого «диктаторски» Ульрихом.

А правильности *каждого* и не требуется. Достаточно, чтобы правильными были *ключевые* решения. В остальном, развлекался Ульрих в багзилле или занимался чем-нибудь более полезным --- это уже не так важно..

Manhunt ★★★★★
()
Ответ на: комментарий от Loki13

я отвечал на обобщение -_- но ладно неактуально уже

Thero ★★★★★
()
Ответ на: комментарий от geekless

чтобы у вас не оставалось иллюзий:

исправление было необходимо и неизбежно

дреппер плохо его подал а потом попиарился на конфронтациях.

попытки выявить главную причину отметая чуть менее значимые приводят к провалу.

Thero ★★★★★
()
Ответ на: комментарий от Loki13

так вот кто прячет мои носки когда они рвутся да? \\всегда сказать эта шутка

Thero ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.