keystone-enclave / linux-keystone-driver

Loadable Module for Keystone Enclave
Other
18 stars 17 forks source link

why untrusted shared memory must be from the buddy allocator? #40

Open Peng-Hu opened 3 years ago

Peng-Hu commented 3 years ago

hello,we want to know why untrusted shared memory must be from the buddy allocator, which results in that the data transmitted at one time must be less than or equal to 4MB, and the large-size data that needs to be processed by the eapp must be split for multiple transmission without any sdk support. Thank you! hupeng

Peng-Hu commented 3 years ago

When setting the untrusted size, there is no check on the upper limit of the size(4MB) in sdk/host/param.h or in driver/utm_init, which causes the driver crash when a large size is allocated for untrusted shared buffer.

dayeol commented 3 years ago

Thank you for the question. I think we may need an SDK lib for chunking large data. The reason for using the buddy allocator was because we didn't think that it would be necessary, but we might be able to also support CMA-allocated untrusted buffer by changing the security monitor to be aware of it.

Peng-Hu commented 3 years ago

What changes does SM need to do to support it if we allocate large-size untrusted shared buffer from CMA? We increase the size of malloc_region to 20MB in app.lds to support malloc large size memory in eapp, as a result, the size of EPM is larger than 4MB, which must be allocated from CMA. But we don't see that SM needs to make additional changes to support EPM in CMA?