The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск проприетарного драйвера NVIDIA 470.74"
Отправлено pavlinux, 04-Окт-21 18:56 
Вася Пупкин из бабруйска залез в ядро, насрал, подумал что это хорошо и рассказал всем! )))


Какое отношение имеет эта шняга к играм?

- add sysctl to disallow unprivileged CLONE_NEWUSER by default
- reduce wakeups for PME checks
- default 500 if HZ_500 ... default 750 if HZ_750

Это што? Геймеры перешли на Infiniband?


diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 3a98439bba83..6efc4f907f58 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -820,6 +820,7 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
    union {
        struct sockaddr_in  _sockaddr_in;
        struct sockaddr_in6 _sockaddr_in6;
+        struct sockaddr_ib  _sockaddr_ib;
    } sgid_addr, dgid_addr;
    int ret;


https://github.com/Frogging-Family/linux-tkg/blob/e2b5820b26...

Чо за детский говнокод?

1. После 1000 смысл пропадает?
2. Почему 1000, а не 2000, или 500 или HZ или 2*HZ..?
3. cpu_relax() на x86 это две инструкции asm volatile("rep; nop")"
   Вася Пупкин в курсе, что 1000 раз по "if (++i < 1000)" - это в 5000 раз больше инструкций,
   если дико оптимизировано, как минимум: inc; cmp; jne; ret  ? :D  

4. rep; nop = инструкции pause; Её (их) пихают в циклы работающие под спинлоками, для увеличения производительности.

> Improves the performance of spin-wait loops. When executing a “spin-wait loop,” a Pentium 4
> or Intel Xeon processor suffers a severe performance penalty when exiting the loop because it
> detects a possible memory order violation. The PAUSE instruction provides a hint to the
> processor that the code sequence is a spin-wait loop. The processor uses this hint to avoid
> the memory order violation in most situations, which greatly improves processor performance.
> For this reason, it is recommended that a PAUSE instruction be placed in all spin-wait loops.

(Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2B: Instruction Set Reference, M-U)


index f11b9bd..1bbfcc1 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -717,6 +717,7 @@ rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable)
    struct task_struct *new, *owner;
    unsigned long flags, new_flags;
    enum owner_state state;
+    int i = 0;

    owner = rwsem_owner_flags(sem, &flags);
    state = rwsem_owner_state(owner, flags, nonspinnable);
@@ -750,7 +751,8 @@ rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable)
            break;
        }

-        cpu_relax();
+        if (i++ > 1000)
+            cpu_relax();
    }
    rcu_read_unlock();

--


 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру