Линус Торвальдс анонсировал (https://lkml.org/lkml/2013/5/11/155) первый кандидат в релизы ядра Linux 3.10 (rc1), который ознаменовал закрытие окна по приёму новшеств (merge window) в ветку 3.10. По утверждению Линуса, по числу добавленных изменений ядро 3.10 является одним из самых значительных за всю историю. В частности было внесено почти 12 тысяч коммитов, при этом изменения в основном связаны с текущей работой по улучшению ядра. Релиз ядра 3.10 ожидается в первой половине июля.
Среди внесённых в ядро 3.10 изменений:
- Интеграция разработанной и применяемой в Google системы Bcache (http://www.opennet.me/opennews/art.shtml?num=35849), которая позволяет организовать кэширование доступа к медленным жестким дискам на быстрых SSD-накопителях, при этом кэширование ведётся на уровне блочного устройства, что позволяет ускорить доступ к накопителю независимо от используемых на нём файловых систем. Один SSD-накопитель может использоваться для кэширования нескольких различных блочных устройств. Блочное устройство может быть на лету прикреплено к кэшу и отключено от него, без размонтирования и временной остановки работы. Поддерживается как сквозное кэширование (writethrough), так и режим отложенной записи (writeback) при котором данные записываются на исходный носитель не сразу, что позволяет обеспечить ускорение операций записи. Дополнительно поддерживается режим readahead, при котором кэш наполняется не только при записи, но и при операциях чтения;
- Функциональность запуска скриптов, содержащих путь к интерпретатору в заголовке "#!", теперь может быть собрана в виде модуля ядра. Таким образом, теперь легко можно запретить выполнить скрипты как программы;- В DRM-модуль Radeon добавлена поддержка (http://www.opennet.me/opennews/art.shtml?num=36571) ускорения воспроизведения видео с использованием аппаратного декодера UVD, встроенного в современные GPU AMD. Поддержка UVD обеспечена для GPU HD4xxx-HD5xxx (R700, Evergreen), поддерживающих UVD2, и HD6xxx-HD7xxx (Northern Islands, Southern Islands) с поддержкой UVD3;
- Внесены патчи, подготовленные в рамках проекта LLVMLinux (http://www.opennet.me/opennews/art.shtml?num=34811) и позволяющие собирать ядро компилятором Clang. Аналогичные патчи внесены в ветку Clang 3.3, что приблизило проект к состоянию, когда немодифицированное ядро можно пересобрать штатным компилятором Clang;
- Добавлена динамическая система управления генерацией прерываний таймером, позволяющая в зависимости от ткущего состояния изменять прерываний в диапазоне от тысяч тиков в секунду до одного прерывания в секунду, сводя к минимум нагрузку на CPU при обработке прерываний при неактивности системы. В настоящее время добавленная функциональность нацелена на применение в системах реального времени и для высокопроизводительных вычислений (HPC), в будущих выпусках планируется задействовать указанную возможность и для десктоп-систем;
- В cgroups добавлена поддержка от генерации события с уведомлением приложения о приближении к исчерпанию доступной процессу или системе памяти;
- В систему uprobes (userspace probes), нацеленную на анализ поведения выполняемых в пространстве пользователя приложений, добавлен контрольный вызов для перехвата выхода из функции (выполнение Return);
- В команду perf добавлена поддержка профилирования доступа к памяти;
- В подсистему iSCSI добавлена поддержка протокола RDMA (iSER);
- Добавлен новый экспериментальный драйвер "sync", разработанный в рамках платформы Android и используемый для синхронизации между другими драйверами;
- Добавлен драйвер для виртуальных видеоадептеров Microsoft Hyper-V;
- Поддержка новых средств управления питанием, появившихся в процессорах AMD семейства 16h ("Jaguar");
- Выполнение криптографических функций, в том числе sha256, sha512, blowfish, twofish, serpent и camellia, оптимизировано с использованием инструкций AVX/AVX2 и SSE. Отдельно можно отметить задействование поддерживаемых в современных CPU AMD и Intel средств ускорения шифрования AES, что позволяет существенно повысить производительность eCryptfs AES-NI;
- Интегрирован драйвер виртуальной графической карты QXL, применяемой в системах виртуализации для обеспечения акселерированного вывода графики с использованием протокола SPICE (http://www.opennet.me/opennews/art.shtml?num=29782);
- В Btrfs добавлена поддержка режима Skinny Extents, позволяющего уменьшить размер дерева распределения блоков до 30%. Добавлена поддержка автоматического перестроения индекса квот;
- В файловой системе XFS появилась экспериментальная поддержка ведения контрольных сумм для контроля целостности метаданных.
Одновременно представлены (http://www.kernel.org/) очередные корректирующие релизы ядра Linux: 3.0.78 (http://lkml.org/lkml/2013/5/11/131) (13 исправлений (http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.0.78)), 3.4.45 (http://lkml.org/lkml/2013/5/11/132) (26 исправлений (http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.45)), 3.8.13 (http://lkml.org/lkml/2013/5/11/135) (76 исправлений (http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.13))и 3.9.2 (http://lkml.org/lkml/2013/5/11/136) (77 исправлений (http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.2)). Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления. Выпуск 3.8.13 является последним в серии 3.8.x, пользователям рекомендуется осуществить обновление до ветки 3.9.URL: https://lkml.org/lkml/2013/5/11/155
Новость: http://www.opennet.me/opennews/art.shtml?num=36921
>> Блочное устройство может быть на лету прикреплено к кэшу и отключено от него, без размонтирования и временной остановки работы.что-то это не сходится с тем что написано в оф.документации к Bcache:
Both the cache device and backing device must be formatted before use.
Речь про уже созданный кэш. На сайте bcache написано:A single cache device can be used to cache an arbitrary number of backing devices, and backing devices can be attached and detached at runtime, while mounted and in use (they run in passthrough mode when they don't have a cache).
>В Btrfs добавлена поддержка режима Skinny Extents, >позволяющего уменьшить размер дерева распределения >блоков до 30%. Добавлена поддержка автоматического >перестроения индекса квот;Это как?
Это как дерево, только квоты
> Это как дерево, только квотыСамурай без меча подобен самураю с мечом, но без меча.
Skinny Extents - метаданные занимают на 30% меньше места.Что касается квот, то теперь не должно быть проблемой включение квот у непустой директории или диска (раньше, если ничего не путаю, надо было создать пустую директорию, задать для нее квоты и только потом писать туда инфу). Теперь же, после включения квот, содержимое директории/диска автоматически сканируется и сразу ясно - кто и сколько нагадил в каталоге :)
ух скоро 3.11
Ставлю 20 дублонов, что они таки выпустят 4.0, а не 3.11
56 песо что 3.11
Выпустят Linux NT.
Линус сказал что здето 3.39 будет последней из 3 версии потом 4
новостное агентство "Одна бабка сказала" (тм)
100 теньге, что выпустят Linux for Workgroups :)
Проскакивала новость, что книжкой займётся Линус лично. Также писали, что для Linux 3.11 поменяют логотип:
http://www.heise.de/open/imgs/10/7/1/0/6/1/4/31-tuxlogo-f41b...
> В cgroups добавлена поддержка генерации события с уведомлением приложения о приближении к исчерпанию доступной процессу или системе памяти;Это еще надо научить приложение обрабатывать такое событие?
Кто не будет обрабатывать, тот будет убит. Все честно.
нет
linux 3.11 это вам ничего не напоминает?
> linux 3.11 это вам ничего не напоминает?Нет.
Там не будет добавки "for Workgroups"
Так что не напоминает.
> linux 3.11 это вам ничего не напоминает?Предлагаю взять им слоган для 3.11: "Done the right way"
вообще, об этом все стали подшучивать, когда был переход на версию 3.0
> Добавлен драйвер для виртуальных видеоадаптеров Microsoft Hyper-V;не нужно
Нужно.
Не нужно.
Нужно
Ваши "нужно" и "не нужно" не нужны. И мое.
ну не нужно же
Обоснуй!
Эту Bcache можно настроить так, чтобы HDD как можно больше времени проводил в standby mode?
Use ramdisk, Luke!
Зачем мне ramdisk, когда у меня SSD в разы больше RAM.
чтобы HDD как можно больше времени проводил в standby mode?
Для этого SSD есть.
Уточняю. Есть ноутбук с большим HDD и маленьким SSD. Я не хочу вручную определять, какие файлы и директории куда класть, а хочу работать с единой файловой системой, и чтобы при этом HDD как можно больше времени проводил в standby mode. Может ли Bcache помочь мне в этом?
> Уточняю. Есть ноутбук с большим HDD и маленьким SSD. Я не хочу
> вручную определять, какие файлы и директории куда класть, а хочу работать
> с единой файловой системой, и чтобы при этом HDD как можно
> больше времени проводил в standby mode. Может ли Bcache помочь мне
> в этом?Для двигателей запуск самый тяжелый режим. Дергать винт постоянными пусками это плохая идея.
> Для двигателей запуск самый тяжелый режим. Дергать винт постоянными пусками это плохая идея.Поэтому дергать надо как можно реже.
В этот раз мало вкусностей для десктопа(
И про Xen не слышно
Stefano Stabellini: (1)
ARM Xen SMP updates
Konrad Rzeszutek Wilk: (2)
Xen updates
Xen bug-fixes
Автокад не включили в ядро? Или цвет обоев не тот?
А вообще с 3.9 что-нибудь релизнулось уже?
Арч, конечно же. А через пару дней будет в нынешней (18-й) федоре.
Релизнулось ли что не знаю, но в сусе запросто ставится 3.9.1, ну или в SUSE Studio собирается для себя с таким ядром.
Хочется именно что из коробки. Как-то старая привычка - иметь под рукой диск с тем, что ставишь, чтобы потом было чем выдернуть файлы с очередной извратной ФС, которую (с учётом новых фишек) не понимают старые ядра или там конфиги поправить, если чего грузиться перестало. Хотя давно такое было надо последний раз, но всё ж для мажорных релизов хорошая практика.
> Хочется именно что из коробки. Как-то старая привычка - иметь под рукой
> диск с тем, что ставишь, чтобы потом было чем выдернуть файлы
> с очередной извратной ФС, которую (с учётом новых фишек) не понимают
> старые ядра или там конфиги поправить, если чего грузиться перестало. Хотя
> давно такое было надо последний раз, но всё ж для мажорных
> релизов хорошая практика.
>> в SUSE Studio собирается для себя с таким ядром.
с 11-го мая 3.9 доступно в Sabayon.
> с 11-го мая 3.9 доступно в Sabayon.Sabayon как раз интересует... но вот оно доступно не из коробки, а через установку обновления, т.е. если система перестанет грузиться, из "ливчика" вытащить данные с какой-нить f2fs (в 3.9 его исправили маленько) может и не получиться.
Но по ходу Sabayon может раньше остальных релиз полноценный выдать.Значится остаётся кастом от SUSE
Что-то я в упор не вижу, где у них в кастоме задать ядро. Максимум там можно задать, на базе какого релиза суси билдить, т.е. сейчас оно "based on openSUSE 12.3"
Arch
AltLinux
О :) а ещё там будет исправление бага (race condition где-то в районе HPET), внесённого в 3.6, из-за которого у меня hibernate отвалился! Мне так tglx сказал :)
Они что, хотят со временем перейти на Clang?
Те, кто продвигает эти патчи? Да =)
> Те, кто продвигает эти патчи? Да =)Apple хочет сделать Mac OS Server на базе Linux?
> по числу добавленных изменений ядро ${LINUX_VERSION |h} является одним из самых значительных за всю историюОПЯТЬ?!
>>является одним из самых значительных за всю историю
> ОПЯТЬ?!Регулярно!
Больше изменений хороших и разных!
> Больше изменений хороших и разных!Да чтоб ты жил в эпоху перемен!
"Внесены патчи, подготовленные в рамках проекта LLVMLinux и позволяющие собирать ядро компилятором Clang. "
А вот это они зря под бздунов и Аппле прогибаются.
Нассал на старпёра.
> Нассал на старпёра.Нассал на ябло-хипстера.
> "Внесены патчи, подготовленные в рамках проекта LLVMLinux и позволяющие собирать ядро компилятором
> Clang. "
> А вот это они зря под бздунов и Аппле прогибаются.Расширение инструментария разработки, улучшение отстрела ошибок на этапе сборки, выпиливание gcc-измов мешающих собирать софт под другие платформы и другими компиляторами (их таки не два)... ну да, зря, зря, лучше сидеть в жопе и постить тут сивый бред по вашему примеру =)
> выпиливание gcc-измов мешающих собирать софт под другие платформывы немного не в теме
http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/хотя в целом gcc хреновенький компилятор, шланг _сейчас_ еще хуже, особенно на ARM, но в перспективе возможно что-то из него можно получить.
> хотя в целом gcc хреновенький компилятор, шланг _сейчас_ еще хуже,Вы скомпиленное icc на процессорах amd позапускайте :)) для сравнения ... и gcc и шланг намного лучше иных поделок ;)
> Расширение инструментария разработки, улучшение отстрела ошибок на этапе сборки, выпиливание
> gcc-измов мешающих собирать софт под другие платформы и другими компиляторами (их
> таки не два)...Нормальный компилятор один - gcc. Вменяемых конкурентов ему все равно нет. Тем более - по количеству платформ.
Носиться с домашней поделкой яббла как с писаной торбой - смысла не вижу.
> их таки не двада, он один.
И его вы тоже не осилили, как и те которые отрицаете?
> И его вы тоже не осилили, как и те которые отрицаете?осилил. пользуюсь. в том числе с удовольствием пользуюсь и расширениями (gcc-измами, ага). потому что это удобно. а компилятор, который их не поддерживает — для меня не существует: всё равно он мой код собрать не может.
Ты сколько раз в код GCC заглядывал, Анон?
> Ты сколько раз в код GCC заглядывал, Анон?Про мантру "не читал, но осуждаю" слышал?
Скорее бы уже запилили xfs_reno
Я вот про "#!" не понял. Кто-нибудь может пояснить?
static int load_script(struct linux_binprm *bprm)
{
const char *i_arg, *i_name;
char *cp;
struct file *file;
char interp[BINPRM_BUF_SIZE];
int retval;if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!'))
return -ENOEXEC;
/*
* This section does the #! interpretation.
* Sorta complicated, but hopefully it will work. -TYT
*/allow_write_access(bprm->file);
fput(bprm->file);
bprm->file = NULL;bprm->buf[BINPRM_BUF_SIZE - 1] = '\0';
if ((cp = strchr(bprm->buf, '\n')) == NULL)
cp = bprm->buf+BINPRM_BUF_SIZE-1;
*cp = '\0';
while (cp > bprm->buf) {
cp--;
if ((*cp == ' ') || (*cp == '\t'))
*cp = '\0';
else
break;
}
for (cp = bprm->buf+2; (*cp == ' ') || (*cp == '\t'); cp++);
if (*cp == '\0')
return -ENOEXEC; /* No interpreter name found */
i_name = cp;
i_arg = NULL;
for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++)
/* nothing */ ;
while ((*cp == ' ') || (*cp == '\t'))
*cp++ = '\0';
if (*cp)
i_arg = cp;
strcpy (interp, i_name);
/*
* OK, we've parsed out the interpreter name and
* (optional) argument.
* Splice in (1) the interpreter's name for argv[0]
* (2) (optional) argument to interpreter
* (3) filename of shell script (replace argv[0])
*
* This is done in reverse order, because of how the
* user environment and arguments are stored.
*/
retval = remove_arg_zero(bprm);
if (retval)
return retval;
retval = copy_strings_kernel(1, &bprm->interp, bprm);
if (retval < 0) return retval;
bprm->argc++;
if (i_arg) {
retval = copy_strings_kernel(1, &i_arg, bprm);
if (retval < 0) return retval;
bprm->argc++;
}
retval = copy_strings_kernel(1, &i_name, bprm);
if (retval) return retval;
bprm->argc++;
retval = bprm_change_interp(interp, bprm);
if (retval < 0)
return retval;/*
* OK, now restart the process with the interpreter's dentry.
*/
file = open_exec(interp);
if (IS_ERR(file))
return PTR_ERR(file);bprm->file = file;
retval = prepare_binprm(bprm);
if (retval < 0)
return retval;
return search_binary_handler(bprm);
}
А выложи конечную релизацию
int pci_bus_read_config_word(struct pci_bus *bus, unsigned int devfn, int where, u16 *val);
> А выложи конечную релизацию
> int pci_bus_read_config_word(struct pci_bus *bus, unsigned int devfn, int where, u16 *val);
#define PCI_OP_READ(size,type,len) \
int pci_bus_read_config_##size \
(struct pci_bus *bus, unsigned int devfn, int pos, type *value) \
{ \
int res; \
unsigned long flags; \
u32 data = 0; \
if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \
raw_spin_lock_irqsave(&pci_lock, flags); \
res = bus->ops->read(bus, devfn, pos, len, &data); \
*value = (type)data; \
raw_spin_unlock_irqrestore(&pci_lock, flags); \
return res; \
}
...
PCI_OP_READ(word, u16, 2)
...
EXPORT_SYMBOL(pci_bus_read_config_word);
Ну конечно,вот только не это имел в виду,в смысле какая в конце концов функция стоит за
pci_bus_read_config_word.Вот куда ведёт указатель bus->ops->read(bus, devfn, pos, len, &data).Смотреть в arch/XXX/pci
Окончательная победа Поттеринга над здравым смыслом. Скрипты больше не нужны, только systemd! :)
> первый кандидат в релизы ядра Linux 3.10 (rc1)
> Среди внесённых в ядро 3.10 изменений:
> - Добавлен драйвер для виртуальных видеоадептеров Microsoft Hyper-V;Сам по себе driver for the Hyper-V Synthetic Video
{
the driver for the Hyper-V Synthetic Video, which supports screen
resolution up to Full HD 1920×1080 on Windows Server 2012 host, and
1600×1200 on Windows Server 2008 R2 or earlier. It also solves the double
mouse cursor issue of the emulated video mode.}
не самое интересное
Там еще VSS и hot add в Dynamic Memory