LINUX.ORG.RU

Очистка CFS


0

0

Инго Молинар поместил ряд исправлений к своему планировщику, которые были объединены в ядре. Он объяснил причину для очень многих маленьких исправлений - безопасное и постепенное устранение широко используемого 64-битового функционального параметра: 64-bit 'now' timestamp.

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



Проверено: Shaman007 ()

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

polachok
()

Надо ресурс уже в cfs.org.ru переименовывать.

Terus
()

>поместил ряд исправлений к своему планировщику, которые были объединены в ядре.

что-то тут не так. Объеденены с чем?

anonymous
()

Зачем помещать новости о каждом маленьком патче? Или это прорыв? Тогда в чем он?

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

> А теперь объясните народу, что нам это даст.

это чтоб народ не паниковал от большого патча на новый планировщик

vadiml ★★★★★
()

Прочитал я.
Короче убрали 64 битную переменную - код стал более компактным - значит скорость повысилась вобщем ничего особенного но всёравно приятно даже за такой тюниг.

Хотя вот что странно: по моим тестам 64 битные процессоры AMD быстрее выполняют операции с 64 битными переменными чем с 32 битными...

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

>Хотя вот что странно: по моим тестам 64 битные процессоры AMD >быстрее выполняют операции с 64 битными переменными чем с 32 >битными... А интеловские? Скажем Core 2 Duo ?

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

> Хотя вот что странно: по моим тестам 64 битные процессоры AMD быстрее выполняют операции с 64 битными переменными чем с 32 битными...

long long или long. Чувствуешь разницу?

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

> А интеловские? Скажем Core 2 Duo ?

А интеловские медленнее, ибо линия предвыборки кеша слишком узкая для загрузки 4-х конвееров, а поскольку 64-битным операциям в long-mode процессора добавляется 1-байтовый префикс, корка дуба начинает буксовать и недогружаться.

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

> long long или long. Чувствуешь разницу?

Звучит как реклама или спам

... enlarge your variable ;-)

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

>На x86_64 sizeof(long) == sizeof(long long).

>A) int x = -1; It's 32-bit in 32-bit platform and 32-bit in 64-bit platform.

B) long y = -1L; It's 32-bit in 32-bit platform and 64-bit in 64-bit platform.

C) long long z = -1LL; It's 64-bit in 32-bit platform and 64-bit in 64-bit platform.

Может кто-то по-простому объяснить, почему так? Я всегда думал, что short - 16, long - 32, long long - 64, int - в зависимости от платформы 16, 32 либо 64 бита... =\

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

>Ну и новости пошли... По каждому чиху постить будем?

Новость касается изменений в планировщеке ядра ос. В конце концов из таких вот мелочей(чихов) и складывается стабильная работа системы, а в конечном счете и пользователя.

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

>В конце концов из таких вот мелочей(чихов) и складывается стабильная работа системы,

Бугага. Ты представляешь сколько подобных изменений вносится _каждый день_? :D

Новость поддерживаю лишь в контексте недавнего бурного обсуждения.

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

> Новость касается изменений в планировщеке ядра ос.

Не так !

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

теперь будут курить и колоть всякую гадость.

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

>Я всегда думал, что short - 16, long - 32, long long - 64, int - в зависимости от платформы 16, 32 либо 64 бита... =\

Ты думал не верно. В языке С есть только следующее правило. 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long). Всё остальное досужие домыслы :).

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

>Всё остальное досужие домыслы :).

Меня обманули! :D

Всем спасибо за ссылки, разобрался. :]

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

вобще для отсудствия путаници я юзаю int64... вообщем это легко проверить в gcc :)

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

> Как это может быть верным, если есть архитектуры, где нельзя оперировать отдельными байтами?

А где там написано, что char - это 8 бит? ;-)

char, по определению, это минимально адресуемая единица. И если на вашем проце это, скажем, 36 бит (на Эльбрус 2, если я правильно запомнил то, что нам рассказывали на "войне", так было) - то и будет у вас такой вот char. А sizeof(long) на таком железе будет равен 1, скорее всего...

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

>char, по определению, это минимально адресуемая единица

Если я правильно помню, то у микроконтроллеров атмелловских C51-х, например, можно оперировать отдельными битами, что реализуется для Cи с помощью специального типа bit. Что возвращает sizeof(bit), не знаю, но не могу представить ни единого способа применить это знание.

>char, по определению, это минимально адресуемая единица

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

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

адрессация анонимффуссаа.... анонимффусс эссстонннеееццц...

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

в языке С нет понятия байта/бита и т.п. Просто размеры всех типов измеряются в "чарах", а как это ложится на железо задача компилятора.

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

> в языке С нет понятия байта/бита и т.п. Просто размеры всех типов измеряются в "чарах", а как это ложится на железо задача компилятора.

Учи матчасть. sizeof() возращает размер в байтах. Разер чара(не типа char, а символа) вообще может быть 1-2 и более байт. А sizeof(char) в С это всегда 1 байт, который как известно состоит из 8 бит.

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

> в языке С нет понятия байта/бита и т.п.

Ты еще скажи чтобитовых операций нет и битовых полей. Char это синоним байта и всегда таковым был.

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

А байт - это не 8 бит, а минимально адресуемый кусок памяти...

>Байт (англ. byte) — единица измерения количества информации, обычно равная восьми битам (в этом случае может принимать 256 (2^8) различных значений).
>Вообще, байт — это минимально адресуемая последовательность фиксированного числа битов. В современных компьютерах общего назначения байт равен 8 битам. Для того, чтобы подчеркнуть, что имеется в виду восьмибитный байт, в описании сетевых протоколов используется термин «октет» (лат. octet).

(с) http://ru.wikipedia.org/wiki/Байт

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

>sizeof() возращает размер в байтах.

It is fundamental to the correct usage of functions such as malloc and fread that sizeof(char) be exactly one.

>который как известно состоит из 8 бит.

All objects in C must be representable as a contiguous sequence of bytes, each of which is at _least_ 8 bits wide.

...

(Thus, for instance, on a machine with 36-bit words, a byte can be defined to consist of 9, 12, 18, or 36 bits, these numbers being all the exact divisors of 36 which are not less than 8.)

Перевод слово least знаешь ?.

>Разер чара(не типа char, а символа) вообще может быть 1-2 и более байт.

"Чар" это тип данных char. И он всегда 1.

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

>Ты еще скажи чтобитовых операций нет и битовых полей. Char это синоним байта и всегда таковым был.

С этим облажался. Да есть понятие бита и байта. И A char whether signed or unsigned, occupies exactly one byte.

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

> Новость касается изменений в скандально известном планировщеке ядра ос, благодаря чему команда лиух-кернел прое... ла штатного нарколога...

Он анастезиолог. Но можешь продолжать пить курить и ширяться )

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