On Tue, Sep 19, 2017 at 08:50:20AM -0500, Brijesh Singh wrote:
"..shared_aligned" section does not start and end with page-size alignment.
Nowhere in the code there's a comment saying: "This percpu section really must
be page-size aligned because <reasons>." You need to be more verbose
with requirements like that.
Also, you're ending up needing a whole page per-CPU for those variables.
And now with the alignment before and after, you have worst-case two
pages fragmentation of percpu memory and percpu memory is a rather
limited resource AFAIR.
If only there were a alloc_percpu_page()...
Since the C-bit works on PAGE_SIZE alignment hence the "..unencrypted" section
Btw, call that section "..decrypted" and everywhere do
starts and ends with page-size alignment. The closest I can find is
"..page_aligned" but again it does not end with page-size alignment.
Additionally, since we clear the C-bit from unencrypted section hence we
should avoid overloading the existing section -- we don't want to expose more
than we wish.
Add that to the comment too.