LINUX.ORG.RU

Linux-ck + Clear Linux Intel® + BFQ + -O3 + -falign-functions=16 + -falign-loops=16

 ,


2

2
blitz@inode ~/abs/core/linux-opt % uname -a
Linux inode 4.14.8-1-opt #1 SMP PREEMPT Fri Dec 22 12:10:40 CET 2017 x86_64 GNU/Linux
  patch -p1 -i "${srcdir}/0011-libata-Add-new-med_power_with_dipm-link_power_manage.patch"
  patch -p1 -i "${srcdir}/0012-platform-x86-intel_turbo_max_3-Add-Skylake-platform.patch"
  patch -p1 -i "${srcdir}/0101-i8042-decrease-debug-message-level-to-info.patch"
  patch -p1 -i "${srcdir}/0102-init-do_mounts-recreate-dev-root.patch"
#  patch -p1 -i "${srcdir}/0103-Increase-the-ext4-default-commit-age.patch"
  patch -p1 -i "${srcdir}/0104-silence-rapl.patch"
  patch -p1 -i "${srcdir}/0105-pci-pme-wakeups.patch"
  patch -p1 -i "${srcdir}/0106-ksm-wakeups.patch"
  patch -p1 -i "${srcdir}/0107-intel_idle-tweak-cpuidle-cstates.patch"
  patch -p1 -i "${srcdir}/0108-xattr-allow-setting-user.-attributes-on-symlinks-by-.patch"
#  patch -p1 -i "${srcdir}/0109-init_task-faster-timerslack.patch"
  patch -p1 -i "${srcdir}/0110-fs-ext4-fsync-optimize-double-fsync-a-bunch.patch"
  patch -p1 -i "${srcdir}/0111-overload-on-wakeup.patch"
  patch -p1 -i "${srcdir}/0112-bootstats-add-printk-s-to-measure-boot-time-in-more-.patch"
  patch -p1 -i "${srcdir}/0113-fix-initcall-timestamps.patch"
  patch -p1 -i "${srcdir}/0114-smpboot-reuse-timer-calibration.patch"
#  patch -p1 -i "${srcdir}/0115-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch"
  patch -p1 -i "${srcdir}/0116-Initialize-ata-before-graphics.patch"
  patch -p1 -i "${srcdir}/0117-reduce-e1000e-boot-time-by-tightening-sleep-ranges.patch"
  patch -p1 -i "${srcdir}/0118-give-rdrand-some-credit.patch"
#  patch -p1 -i "${srcdir}/0119-e1000e-change-default-policy.patch"
  patch -p1 -i "${srcdir}/0120-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch"
  patch -p1 -i "${srcdir}/0121-igb-no-runtime-pm-to-fix-reboot-oops.patch"
  patch -p1 -i "${srcdir}/0122-tweak-perfbias.patch"
  patch -p1 -i "${srcdir}/0123-e1000e-increase-pause-and-refresh-time.patch"
  patch -p1 -i "${srcdir}/0124-kernel-time-reduce-ntp-wakeups.patch"
#  patch -p1 -i "${srcdir}/0125-init-wait-for-partition-and-retry-scan.patch"
  patch -p1 -i "${srcdir}/0126-print-fsync-count-for-bootchart.patch"

  patch -p1 -i "${srcdir}/0151-mm-Export-do_madvise.patch"
  patch -p1 -i "${srcdir}/0152-x86-kvm-Notify-host-to-release-pages.patch"
  patch -p1 -i "${srcdir}/0153-x86-Return-memory-from-guest-to-host-kernel.patch"
  patch -p1 -i "${srcdir}/0154-sysctl-vm-Fine-grained-cache-shrinking.patch"

  # Patch source with ck patchset
  patch -p1 -i "${srcdir}/${_ckpatchname}"
  patch -p1 -i "${srcdir}/811cb391e71c1d60387dbbd6ae0bbc4e61f06acb.patch"
  patch -p1 -i "${srcdir}/6bfb805cbac27b18fb4ad7537fe90dfc39e17f35.patch"
  patch -p1 -i "${srcdir}/1588e6bf316231685204e358dfe172851b39fd1e.patch"
  patch -p1 -i "${srcdir}/df2a75f4864b30011ab6a6f365d9378d8eafa53b.patch"
  patch -p1 -i "${srcdir}/a79d648fcde72fc98048d4435bc86864a59fd01b.patch"

  # Patch source to unlock additional gcc CPU optimizatons
  # https://github.com/graysky2/kernel_gcc_patch
  patch -p1 -i "${srcdir}/gcc_cpu_optimization.patch"
  # Patch source to unlock functions and jumps aligments
  patch -p1 -i "${srcdir}/gcc_code_generation.patch"

Всё правильно сделал - для desktop kernel, самого быстрого на сегодня?


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

Зависит, действительно от железа - от CPU и самого медленнего в IO операциях - SSD и HDD.

Для CPU - выбран MNATIVE и -O3.
Для SSD и HDD:

blitz@inode ~/abs/core/linux-opt % sudo cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
blitz@inode ~/abs/core/linux-opt % sudo cat /sys/block/sdb/queue/scheduler
mq-deadline kyber [bfq] none

blitz
() автор топика

Всё правильно сделал - для desktop kernel, самого быстрого на сегодня?

Ну и каша!

Во первых на desktop критична не «скорость» а прежде всего поддержка нужных пользователю фич и стабильность. Мало того максимально возможная «скорость» достижима в reaitime а это чудо с desktop-ом вообще мало совместимо ибо оно о другом и для других проблем. И да это не значит что reaitime на desktop невозможно в принципе.

Если не секрет что за дистрибутив?

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

Но /me и добивается невозможного - в глазах ваших:
Скоростной работы кернела и быстрой отзывчивости-responsiveness desktop при load average до 16. До 16(!)

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

Понял теперь, что на правильном пути с кернел экспериментами.
Desktop с таким необычным кернелом MuQSS/BFQ - кушает stock kernels на завтрак.

Продемонстрировать результаты тестов?

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

Умному - достаточно.
Cherry picking во все поля.

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

Но /me и добивается невозможного - в глазах ваших

Чудес не бывает. Баги и/или регрессии даже в официальном ядре не новость. Мало того патчи не {берут}/{идут} в официальное ядро тоже по определенным причинам связанным скорее всего с говнокодом либо по иным своим соображениям. Так что не бывает всего и сразу.

Кроме того та же красношапка тоже не спроста тоннами бэкпортит в 3-е ядро нужные ей фичи и исправления. Как показывет практика зачастую эта политика гарантирует отсутствие многих дыр и проблем свежих ядер.

Продемонстрировать результаты тестов?

Мне результаты тестов не нужны. Я в курсе очень разного и могу лекции давать о невозможном.

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

Desktop с таким необычным кернелом MuQSS/BFQ - кушает stock kernels на завтрак.

по последним сведениям PDS уделывает MuQSS, так что твоё ядро отстой тормозной

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

> Кроме того та же красношапка тоже не спроста тоннами бэкпортит в 3-е ядро нужные ей фичи и исправления. Как показывет практика зачастую эта политика гарантирует отсутствие многих дыр и проблем свежих ядер.

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

В то время как, Intel эксперементирует со своими новыми features в кернеле.
И ясно даёт знать в патчах - (DISTRO TWEAK — NOT FOR UPSTREAM)

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

Всё это словоблудство. Однако продолжаем разговор.

У меня в поделиях есть такое себе ipatch. По сути этот велосипед кроссдистрибутивен, умеет применять заплатки из архивов и разархивирует на основе mimetype, а не как уж совсем унылые говноподелия, а главное он прежде наложения патча делает --dry-run, о чем ты судя по всему даже не думал, а это тревожный звоночек. Ну и вообще он умеет и все заплатки из директории или умеет по командному файлу. В общем волосы становятся мяяягкими и щёлковистыми да. Заинтерисует можешь спрашивать. Но в сырцы лучше не смотреть - там где то рядом ад.

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

Ну здравствуй, Andrey Ovcharov!

Приятно познакомиться ))

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

Как скажешь. А я не скрывал и не скрываю. К тому-же будь уверен анонимности нет а если захотят найдут.

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

Не подавай дурной пример молодёжи.
Здесь, на форуме - могут быть и дети. И ФСБ.

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

ipatch - это же НЁХ на хаскелле, не?

Судя по man ipatch ipatch - Intelligent patch wrapper. Рассказывай при чем там хаскелл к bash-у?

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

https://hackage.haskell.org/package/ipatch

В 2010м о таком не знал. Оправдатся могу только тем что у меня оно началось как часть geek-sources ещё в 2009м году правда в отдельную утилиту я его отделил в 2015м.

init_6 ★★★★★
()

+0,7% скорости в синтетических бенчмарках, отличный результат красноглазия)))

кстати, автор, ты в курсе, что производительность и отзывчивость - почти всегда диаметрально противоположные качества? и для комфортного использования важно именно второе

anonymous
()

самого быстрого на сегодня?

что конкретно быстрее, например, стока убунты ? Только не говори, что ядро :)

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

Кстати - да.
Знаком по не наслышке.

/me, иметь вольготно - вся свалка временных файлов и кэшей в /tmpfs - производительность.
Если начинаются длительные операции с винтом/своп - это будет при линковке LTO, и будет долго - но не желаю терять при этом отзывчивость/responsiveness системы.

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

Мало того максимально возможная «скорость» достижима в reaitime а это чудо с desktop-ом вообще мало совместимо ибо оно о другом и для других проблем.

звучит так как будто вы не в курсе что риал-тайм и скорость это несвязанные вещи.

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

кстати, автор, ты в курсе, что производительность и отзывчивость - почти всегда диаметрально противоположные качества?

По моему ТС не понял. И не поймет пока задаёт такие вопросы.

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

С точностью до наоборот.

Когда нужно - система использует максимально заложенную производительность с -O3 и скомпилированным ядром под нативный CPU.

Когда нужно - работают CPU MuSSQ и IO BFQ диспетчеры, позволяя сохранять баланс между производительностью и отзывчивостью.

blitz
() автор топика

Да, это не так просто, как пропатчить Wine патчами Staging. Те-то хоть накладываются без проблем, и основной пробелмой является другая: собрать Месу с Gallium Nine, положить заголовочные файлы NVENC и CUDA куда нужно. А тут наверняка ещё и редактировать патчи нужно. Я занимаюсь чем-то похожим, поэтому знаю о чём говорю.

А что за патчи? Где брал? Где ты вообще узнаёшь о них?

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

+0,7% скорости в синтетических бенчмарках, отличный результат красноглазия)))
Сделаешь себе браузер +20% в тестах в сравнении с оригинальным - побеседуем.

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

звучит так как будто вы не в курсе что риал-тайм и скорость это несвязанные вещи.

Многие вещи несвязаны а ещё больше такого где достижимо только что-то одно из целого списка желаний.

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

> А что за патчи? Где брал? Где ты вообще узнаёшь о них?
Ищешь, находишь и заимствуешь себе. Без спроса.
Но не это главное. Главное - чему себя научишь в ходе поиска.

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

Скоростной работы кернела и быстрой отзывчивости-responsiveness desktop при load average до 16. До 16(!)

Мальчик с задержкой развития кого-то удивить пытается

$ w
 09:37:03 up 12:18,  1 user,  load average: 49.41, 29.14, 12.38
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty7     :0               Sun21   12:18m  1:58   0.26s /sbin/upstart --user
Обычный лаптоп с убунтой, с которым лежу в данный момент на кровати и пишу на ЛОР.

Мальчик с задержкой в развитии даже не понимает, что нет прямой связи LA с отзывчивостью. Да, она в целом падает с LA, но можно иметь адские тормоза и задержки даже с LA < 1, а можно — как в моём случае, спокойно работать и при LA ~ 50.

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

https://github.com/clearlinux-pkgs/linux
Как раз там - нет этих патчей Clear Linux Intel.

Стало бы совсем удобно - скачивать их напрямую.
Таки не-а.

Нужно скачать Clear Linux SRC RPM, распаковать, глянуть linux.spec - сказать «Шалом, бен зона!» (да, он израильский)
И только после этих манипуляций - может быть, что-то получится и у шабес гоев ))

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

> Обычный лаптоп с убунтой
Регрессивная ветвь эволюции человекоподoбnых - со смартфонами, таблетами, лаптопами и Вконтактики/Фейсбуками.

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

Приятно удивил ))
В очередной раз, сменили локацию своих сурсов.

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

Им-то было с чего регрессировать, тебе — увы.

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

Зойчем ты предлагаешь мне посетить SJW сайт?

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

Тем более, что у них высокие и крепко развитые парни в тяжелых бутцах Dr. Martens, в черных джинсах Carthartt и черной куртке LoNSdale - вызывают испуганно-обиженные чуйства?

Hi there,

The account was flagged due to the usage of language that we consider offensive, namely a German slogan most commonly associated with the Nazi party. 
blitz
() автор топика
Ответ на: комментарий от anonymous

Именно этот патч, с -O3 и -falign/functions/loops/jumps=16 - не GPL.
Ссылка - file://192.168.1.24/abs/core/linux-opt/gcc_code_generation.patch

Другой ссылки нет и наврядли будет в скором времени.

blitz
() автор топика

#Плацебо #каргокульт #васянство

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

Блиц дал пищу к размышлению умным форумчанам.
Давайте проверим - вот оригинальный gcc_code_generation.patch и что получилось у вас?

blitz@inode ~/abs/core/linux-opt % cat gcc_code_generation.patch 
Enables native optimizations by default
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -2,8 +2,7 @@
 # Put here option for CPU selection and depending optimization
 choice
 	prompt "Processor family"
-	default M686 if X86_32
-	default GENERIC_CPU if X86_64
+	default MNATIVE
 	---help---
 	  This is the processor type of your CPU. This information is
 	  used for optimizing purposes. In order to compile a kernel

Enables alignments optimization
-fgraphite-identity -ftree-loop-distribution -floop-nest-optimize -fpredictive-commoning -ftree-vectorize -fgcse-las
+KBUILD_CFLAGS += -fno-builtin -fgraphite-identity -ftree-loop-distribution -floop-nest-optimize
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -101,11 +101,17 @@
         KBUILD_AFLAGS += -m64
         KBUILD_CFLAGS += -m64

-        # Align jump targets to 1 byte, not the default 16 bytes:
-        KBUILD_CFLAGS += $(call cc-option,-falign-jumps=1)
+        # Align jump targets to 16 bytes:
+        KBUILD_CFLAGS += $(call cc-option,-falign-jumps=16)

-        # Pack loops tightly as well:
-        KBUILD_CFLAGS += $(call cc-option,-falign-loops=1)
+        # Align loops as well:
+        KBUILD_CFLAGS += $(call cc-option,-falign-loops=16)
+
+        # Align functions as well:
+        KBUILD_CFLAGS += $(call cc-option,-falign-functions=16)
+
+        # Align labels as well:
+        KBUILD_CFLAGS += $(call cc-option,-falign-labels=16)

         # Don't autogenerate traditional x87 instructions
         KBUILD_CFLAGS += $(call cc-option,-mno-80387)
@@ -257,6 +263,8 @@

 # Speed up the build
 KBUILD_CFLAGS += -pipe
+# Graphite optimize
+KBUILD_CFLAGS += -fno-builtin -fgraphite-identity -ftree-loop-distribution -floop-nest-optimize -fpredictive-commoning -ftree-vectorize -fgcse-las
 # Workaround for a gcc prelease that unfortunately was shipped in a suse release
 KBUILD_CFLAGS += -Wno-sign-compare
 #

Enables gcc -O3 optimization
--- a/Makefile
+++ b/Makefile
@@ -639,6 +639,9 @@
 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-overflow)
 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)

+ifdef CONFIG_CC_OPTIMIZE_FOR_SPEED
+KBUILD_CFLAGS	+= -O3
+else
 ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 KBUILD_CFLAGS	+= $(call cc-option,-Oz,-Os)
 KBUILD_CFLAGS	+= $(call cc-disable-warning,maybe-uninitialized,)
@@ -649,6 +652,7 @@
 KBUILD_CFLAGS   += -O2
 endif
 endif
+endif

 KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
 			$(call cc-disable-warning,maybe-uninitialized,))

--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1054,6 +1054,12 @@
 	prompt "Compiler optimization level"
 	default CC_OPTIMIZE_FOR_PERFORMANCE

+config CC_OPTIMIZE_FOR_SPEED
+	bool "Optimize for speed"
+	help
+	  Enabling this option will pass "-O3" instead of "-O2"
+	  to your compiler resulting in a faster kernel.
+
 config CC_OPTIMIZE_FOR_PERFORMANCE
 	bool "Optimize for performance"
 	help

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

> по последним сведениям PDS уделывает MuQSS, так что твоё ядро отстой тормознойp

Сделал напрячь свою безошибочную фотографическую память.
Вспомнил, где видел PDS turbo - на конкурсе chique auto Zoete Grand Prix 2015.

https://i.imgur.com/l4i3wl8.jpg

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