
Roman
11.10.2018
20:27:53
вот и я не хочу тут велосипед, благо всё кроме кривой у нас есть
Угу. Потому что попытки генерализации приводят к мострам типа crypto api.
Где ты создаёшь сокет, через setsockopt конфигурируешь и потом начинается цирк.
Например, если там хеши, то пишем в сокет сырые данные, а чтение возвращает digest.
А потом начинается боль с aio, zero copy и o_nonblock.
В итоге, нормально использовать очень неудобно.

Andrey
11.10.2018
21:09:38
ОЙ... #ZFS
OpenZFS Feature Matrix
https://docs.google.com/spreadsheets/d/1CFapSYxA5QRFYy5k6ge3FutU7zbAWbaeGN2nKVXgxCI/edit#gid=0
https://www.youtube.com/watch?v=2Bi0ZicXEz0

MK
11.10.2018
21:15:44
Это типа в Linux ZFS в лучшем состоянии чем у нас?

Andrey
11.10.2018
21:29:21
ну... пилило бы его у нас не три калеки, а три отдела, чего бы ему не быть лучше :)

Google

MK
11.10.2018
21:29:45
угу

Andrey
11.10.2018
21:31:07
с другой стороны, там во всю работает подлянка солнышка, да и то что оно как лоскутное одеяло, не способствует, пакеты, там где есть обычно страх и ужас, а руками, ну... то такое

Rushan
11.10.2018
21:31:38
а какие-нибудь крупные фирмы имеют прогеров, которые контрибутят в FreeBSD?
У Линукса вроде бы такие работники есть

MK
11.10.2018
21:32:26
ясное дело. да и врождённые дефекты в наличии.

ThePanaceya
11.10.2018
21:42:42
У juniper фря :). Еще забыл nintendo

Andrey
11.10.2018
21:43:16
и шо толку с той нинтенды?

A
11.10.2018
23:29:09

Lev
12.10.2018
08:49:01
Так. А SSE и прочий AVX у нас в ядре нельзя, да?

Andrey
12.10.2018
08:55:48
вроде в make же оптимизации врубаются, но в ядре да вроде код максимально общий

Lev
12.10.2018
08:57:33

Vadim
12.10.2018
08:57:42
в ядре нельзя FPU

Lev
12.10.2018
08:58:00

Google

Vadim
12.10.2018
08:58:14
я не знаю точно, SSE и пр. относится к FPU номинально или нет

Lev
12.10.2018
08:58:46
А есть планы что бы было можно? Linux как-то справляется.
Это, наверное, на hackers@ надо идти
Так. А что у нас вместо rcu? epoch(9)?

Andrey
12.10.2018
09:07:43
@dmitryluhtionov если склероз не изменяет, тоже по чему то такому ядерному страдал, сори если ошибся :)

Lev
12.10.2018
09:14:38
А кто у нас сейчас за Intel? В MAINTAINERS указан erj@ но очень давно туда вписан.

Andrey
12.10.2018
11:36:20
их толпа, а толку мало
а есть тут кто-то, у кого болит от того что в stateful ipfw стейты грохаются при удалении правил?

Yaroslav
12.10.2018
11:54:33
звучит как предложение по улучшению :-)

Andrey
12.10.2018
11:59:21
Ну я вроде бы реализовал возможность хранить такие стейты пока они сами не заэкспайрятся. Надо тестировать.

Dmitry
12.10.2018
12:30:19
А никто с такой странностью не сталкивался: uwsgi за nginx, всё хорошо, но если uwsgi отвечает больше чем за ~1.2 секунды откуда-то берется дополнительная задержка до 2 секунд

Lev
12.10.2018
13:02:21
А как бы мне в out of tree модуле (который, однако, использует .include <bsd.kmod.mk>) сослаться на файл в ${SYSDIR}? Если просто его добавить в SRCS то make пытается и объектник создать прямо там, в ${SYSDIR}, на что у него, конечно, нет прав.

Andrey
12.10.2018
13:09:29
.PATH

Lev
12.10.2018
13:42:03
.PATH
Чо-та я не то с ним делаю, похоже. Не ищет :-\
И make -V .PATH добавленное не показывает!
Хотя казалось бы, ну где там можно ошибиться — .PATH: <path>

Vadim
12.10.2018
13:43:12

Lev
12.10.2018
13:43:50
Хм. А добавление .PATH: /mnt работает

Artem
12.10.2018
13:45:09
ну, двоеточие потерял?)

Lev
12.10.2018
13:45:20

Google

Artem
12.10.2018
13:45:38
И make -V .PATH добавленное не показывает!
разве?)

Lev
12.10.2018
13:45:39
Такое впечатление, что SYSDIR выставляется ПОСЛЕ отработки .PATH
Т.е. что в момент выполнения .PATH: путь невалидный и он скипается
Ага
Если выписать /usr/src/sys вместо ${SYSPATH} то работает
SYSPATH в bsd.kmod.mk определяется слишком поздно. :-\
И поддериктории make всё равно сам не создаёт :-(

Anton
12.10.2018
15:15:11

Dmitry
12.10.2018
15:16:13
я хотел это добавить в лог но обломался, он не знает такой переменной. как я понял, это только к upstream относится, а у меня uwsgi

Andrey
12.10.2018
15:16:30

Artem
12.10.2018
15:17:11

Dmitry
12.10.2018
15:17:50
если по http отвечать будет?

Artem
12.10.2018
15:18:30
да, либо nginx -> nginx <-> uwsgi.sock
если эти nginx <-> uwsgi.sock много

Dmitry
12.10.2018
15:20:06
чето это городить ради лога неохота. сейчас руки дойдут, соберу стенд локально, убежусь что повторяется, попробую в других конфигурация и ktrace посмотрю
а есть какой-нибудь cli uwsgi клиент?

Lev
12.10.2018
15:21:39
А как вместе живут очереди и пакетов и CK в ядре? Что-то mbufq ниифнга не потокобезопасен, как я посмотрю.
Как нынче правильно работать с очередями mbuf'ов в многопоточной ситуации?
@bu7cher ?

Artem
12.10.2018
15:22:07
склонить код, http-socket включить

Google

Andrey
12.10.2018
15:24:12

Lev
12.10.2018
15:24:29
придумай
Ну то есть, общепринятого паттерна нет?
Я именно потому и спрашиваю — что если есть какой-то общепринятый метод, что бы велосипед не изобретать. Так-то я возьму CK'шную реализацию queue.h, кажется должно работать.

Dmitry
12.10.2018
15:25:18

Artem
12.10.2018
15:25:27
опасный ты ?

Anton
12.10.2018
15:25:40

Admin
ERROR: S client not available

Dmitry
12.10.2018
15:26:25
во-во

Andrey
12.10.2018
15:27:05
CKшная реализация queue не гарантирует тебе ничего в многопоточном окружении, она только позволяет некоторые вещи сделать lockless, но это тоже ещё нужно придумать

Lev
12.10.2018
15:28:52

Anton
12.10.2018
15:31:53
@AMDmi3 можно попробовать отдельно upstream определить в конфигурации: The ngx_http_upstream_module module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass
тогда может переменные $upstream_ будут доступны.

Andrey
12.10.2018
15:32:20
но ты должен сам реализовать алгоритм, в котором ты не будешь обращаться к уже освобождённой памяти, SPMC тебе этого не даёт на блюдечке

Dmitry
12.10.2018
15:32:24
а-а, можно

Lev
12.10.2018
15:34:07
А, блин, там нет операции dequeue. Ну что за жизнь
Что, во всём ядре нигде нет очереди пакетов что бы с минимумом локов, подсмотреть негде?
Главное, ну написать-то такую очередь я могу (в очередной раз), но я не верю, что этот велосипед надо изобретать

Andrey
12.10.2018
15:52:07
драйверы обычно используют кольцевые буферы
buf_ring, mp_ring

Lev
12.10.2018
15:52:30

Google

Lev
12.10.2018
15:52:47
Ага, посмотрю на них.

Dmitry
12.10.2018
16:13:50
локально что-то пока не повторяется

Anton
12.10.2018
16:15:46
можно еще $request_time туда же логгировать - время в течение которого клиент общался с nginx и за одно $tcpinfo_rtt (оно пишется в микросекундах) чтобы видеть насколько медленная у клиента сеть

Dmitry
12.10.2018
16:18:57
не, ничего про лишнюю секунду там нет. интересно что даже в логе запись на сервере появляется через 1.2 секунды, а клиенту ответ приходит через 2

Anton
12.10.2018
16:44:11
клиенту т. е. браузеру? А если curl-ом wget-ом потестировать? И нет ли там по дороге прозрачного прокси.

Dmitry
12.10.2018
17:01:20
клиенту т.е. и браузеру и курлу и чему угодно. я повторил это запустив ещё один nginx на той же машине. что-то там не так с kevent
вот такой интересный график

Terminator
12.10.2018
17:20:10
Vova Okhrimenko будет жить. Поприветствуем!

Alexander
12.10.2018
19:01:53
Это офигенно. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231402
Ещё пара аналогичных PR, везде получается, что qt5-network ломается при наличии vlan-интерфейсов

Lev
12.10.2018
19:12:16
QT для меня большая загадка. Он занимает места больше чем свежая установка винды. ЧТО ОН ТАКОЕ?!

Andrey
12.10.2018
19:15:04
да что нынче не занимает, тут как возьмешь собирать, то gtk2 какая то хрень по пол года компиляется, то шланг, то ещё какая разжиревшая хрень и ведь почти каждый раз, и это при том что оно надо то для одного двух пакетов

Alexander
12.10.2018
19:15:47
гтк не меньше небось. И вообще он марсианский какой-то. Есть мнение, что хорошую вещь "г" не назовут

Andrey
12.10.2018
19:16:14
у них есть там какая то хрень, очень толстая и долго компиляемая

Alexander
12.10.2018
19:24:32
Началась вся эта потеха, по-моему, с qt5-5.11. Можно, конечно, откатить qt5-порты до 5.10 и portmaster -a. Но это больно и не хочется. Попробовать, что ли, qt5-* в jail запихнуть...
Хотя слабо себе представляю, как потом из jail'а тот же telegram-desktop в хост-иксы запускать. Не ssh-туннелем же :(