Intel SGX HeapMaxSize и подкачка страниц EPC

Файлы .edl содержат запись HeapMaxSize. В руководстве пользователя SDK указано, что это связано с тем, что

Память анклава — ограниченный ресурс. Максимальный размер кучи устанавливается при создании анклава.

Но разве спецификация SGX не разрешает подкачку страниц EPC (EPA, EBLOCK, ETRACK, EWB)?

Или в более практическом смысле: есть ли недостаток в установке HeapMaxSize=2^64 байт?

Возможно, подкачка страниц EPC еще не поддерживается SDK, или, может быть, доверенный код анклава должен вручную инициировать такую ​​подкачку?

Редактировать Как указывает ab., в SGXv1 все страницы EPC должны быть EADDed перед выполнением анклава. Поддерживает ли SDK на данный момент только инструкции SGXv1?


person Freddy    schedule 19.01.2016    source источник


Ответы (1)


Я не знаком с SGX SDK, но обратите внимание, что инструкции по пейджингу SGXv1 (EWB/ELDU и др.) по-прежнему требуют, чтобы вы в первую очередь EADD удалили все страницы и хранили их зашифрованное содержимое где-то на случай, если они использовал. Даже если бы SDK поддерживал это, запуск вашего анклава занял бы намного больше времени, и он потребовал бы тонны дискового пространства где-то во время работы для всех выгружаемых страниц.

SGXv2 решает эту проблему с помощью EAUG/EACCEPT.

person ab.    schedule 20.01.2016
comment
Спасибо, это имеет смысл. Казалось бы, SDK на данный момент поддерживает только спецификацию SGXv1. - person Freddy; 20.01.2016
comment
Пока еще нет реализации SGXv2, так что это почти наверняка правда — негде будет запустить вашу программу! - person ab.; 20.01.2016
comment
Я думаю, что вполне допустимо удалить страницу перед другими страницами EADD, не так ли? Производительность, безусловно, вызывает беспокойство, но если отложить это в сторону, я не вижу причин, почему бы и нет. - person qweruiop; 23.03.2016
comment
Да, вы можете удалять страницы сразу после EADD. Все, что я сказал, по-прежнему верно: это медленно, и вам нужно держать все выселенные страницы. - person ab.; 24.03.2016