Size: a a a

WebAssembly — русскоговорящее сообщество

2019 September 08

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
такие guard page в аллокаторах стали появляться где-то с 2010-х, но у них больше security назначение было
Ну да, техника не нова, просто здесь это используется и для того что бы не делать атомарную защиту на каждую операцию чтения и записи
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
а вообще, кстати, на Windows (>= XP) так стек расширяется
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
т.е. изначально у процесса замаплены не все страницы стека, а только, например, 1 Мб из 8, и в конце находится guard page. А когда происходит push за замапленный 1Мб, то система генерит исключение и мапится ещё память для стека.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
ну так так еще мой дед делал
Это врядли, так эта техника требует 64-битоового адрессного пространства)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ну это я метафорически выразился
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
)
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Это врядли, так эта техника требует 64-битоового адрессного пространства)
хм, а зачем?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
хм, а зачем?
Из соображений эффективности я думаю, но на 32-битных системах это отключено
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
ну на 32-битных её тоже можно сделать, только там памяти меньше, поэтому не всегда рационально часть под guard page отдавать
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
ну на 32-битных её тоже можно сделать, только там памяти меньше, поэтому не всегда рационально часть под guard page отдавать
проблема в том что у тебя модуль может сьесть до 4GB. Это на секундочку всю адресное пространство. Даже если выделить абсолютно все адрессное пространство под васм инстанс, то там например будет ждать еще одна проблема: суммирование адреса по умолчанию приведет к wrap around и выдаст легальный адрес
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
offset и base должны иметь семантику с бесконечной точностью. а это будет значит что каждый load/store будет требовать доп арифметику
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
что уж проще сделать bounds check
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
lil pep
проблема в том что у тебя модуль может сьесть до 4GB. Это на секундочку всю адресное пространство. Даже если выделить абсолютно все адрессное пространство под васм инстанс, то там например будет ждать еще одна проблема: суммирование адреса по умолчанию приведет к wrap around и выдаст легальный адрес
да, в этом плане ты прав, я имел в виду, что просто guard page возможен.
Но, теоретически, всё равно можно сделать на x86 через переключение в amd64 (всё равно сейчас же практически все процессоры общего назначения этой архитектуры), только это, конечно больший overhead чем проверка на переполнение
источник

k

kolay` in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
да, в этом плане ты прав, я имел в виду, что просто guard page возможен.
Но, теоретически, всё равно можно сделать на x86 через переключение в amd64 (всё равно сейчас же практически все процессоры общего назначения этой архитектуры), только это, конечно больший overhead чем проверка на переполнение
Arm догоняет x86
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
в смысле по популярности?
источник

AB

Aleksandr Borgardt in WebAssembly — русскоговорящее сообщество
Вопрос не совсем в тему zone/arean allocator в целом хорошоя мысел для req/res ? В web server ?
источник

K🔥

Kirill 🔥 Cherkashin in WebAssembly — русскоговорящее сообщество
А есть либы на JS чтобы парсить/генерировать ват?
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
Kirill 🔥 Cherkashin
А есть либы на JS чтобы парсить/генерировать ват?
источник

K🔥

Kirill 🔥 Cherkashin in WebAssembly — русскоговорящее сообщество
О, огонь, смотрю
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Aleksandr Borgardt
Вопрос не совсем в тему zone/arean allocator в целом хорошоя мысел для req/res ? В web server ?
недостаточно информации для ответа, например, что ты подразумеваешь под arena allocator?
источник