Size: a a a

2020 June 07

CD

Constantine Drozdov in pro.cxx
Nikita Provotorov
фактически я это и написал в своем первом посте в дискуссии
не очень понимаю, что вас побудило это у меня спросить?
Ниасиливаю найти, точно тут?
источник

NP

Nikita Provotorov in pro.cxx
Nikita Provotorov
шоб вкатиться на 300к/наносек
this
источник

CD

Constantine Drozdov in pro.cxx
А, так тогда вопрос по адресу. Зачем вообще глупое человечество придумало остальные образовательные уровни :)
источник

VK

Valentin Kornienko in pro.cxx
Ruben
вот странная вещь, на ARM с которым я работаю нельзя юзать невыровненные объекты, то есть
uint8_t* buf;
.....
var = ((uint32_t*)(buf + 1))[0];

немедленно вызывает сегфолт. При этом, с packed структурами такого никогда не было.
Какое ядро? Невыровненный доступ не во всех армах есть
источник

NP

Nikita Provotorov in pro.cxx
Constantine Drozdov
А, так тогда вопрос по адресу. Зачем вообще глупое человечество придумало остальные образовательные уровни :)
так ведь швеи-масоны же
источник

R

Ruben in pro.cxx
Valentin Kornienko
Какое ядро? Невыровненный доступ не во всех армах есть
hisilicon 3518
источник

R

Ruben in pro.cxx
например
источник

NP

Nikita Provotorov in pro.cxx
но если кроме шуток, то в ВО куча компетенций типа проведение исследований, поиск информации, формулирование задач и т.п.
источник

VK

Valentin Kornienko in pro.cxx
Ruben
hisilicon 3518
Забавно. Это сок. Я только с Cortex-M работал:)
источник

IS

Iskander Saitbatalov in pro.cxx
Ребзи, офтфоп пошел) тут и так неэмало сообщений, а если поднять холивар об образовании...
источник

AZ

Alexander Zaitsev in pro.cxx
ща варнов раздадим и порядок будет
источник

CD

Constantine Drozdov in pro.cxx
да оффтоп кончился уже
источник

YB

Yarique Belgorodsky in pro.cxx
у gcc есть аналог -ax флага интеловского icpc?
источник

YB

Yarique Belgorodsky in pro.cxx
источник

YB

Yarique Belgorodsky in pro.cxx
чтобы была рантайм проверка поддержки процессором набора инструкций
источник

AF

Aidar Fattakhov in pro.cxx
Ruben
вот странная вещь, на ARM с которым я работаю нельзя юзать невыровненные объекты, то есть
uint8_t* buf;
.....
var = ((uint32_t*)(buf + 1))[0];

немедленно вызывает сегфолт. При этом, с packed структурами такого никогда не было.
а ты пробовал взять указатель на поле?
источник

R

Ruben in pro.cxx
что-то не пойму, как это работает.
static void rwticket_wrlock(rwticket *l)
{
 unsigned me = atomic_xadd(&l->u, (1<<16));
 unsigned char val = me >> 16;
 
 while (val != l->s.write) cpu_relax();
}

Сначала мы увеличиваем l->s.write с помощью атомарной функции atomic_xadd (побитовыми операциями добиваемся увеличения поля write). Результат увеличения сохраняем в me и получаем далее в val значение того самого write после атомарного инкретемента.
Далее в цикле ожидаем, пока val не станет равно текущему значению l->s.write.
Этот штука ничего не лочит, так как при любом исходном значении l->s.write условие в цикле не выполняется и мы покидаем lock()
источник

R

Ruben in pro.cxx
Aidar Fattakhov
а ты пробовал взять указатель на поле?
нет
источник

DF

Dollar Føølish in pro.cxx
Што такое cpu_relax() ?
источник

AF

Aidar Fattakhov in pro.cxx
что такое xadd?
источник