zlacker

[parent] [thread] 5 comments
1. amoss+(OP)[view] [source] 2024-10-11 04:41:20
I'm slightly confused after reading about page alignment. Why would a 16k page be less aligned than a 4k page causing assumptions about pointers within those pages to break? The 4k pages on x86 are aligned on 4k boundaries, are the 16k pages on M1 aligned on <4k boundaries?
replies(1): >>y1n0+H1
2. y1n0+H1[view] [source] 2024-10-11 04:59:35
>>amoss+(OP)
There are more 4k boundaries than 16k boundaries. The issue is code compiled for 4k boundaries running on a 16k system.
replies(1): >>amoss+Y8
◧◩
3. amoss+Y8[view] [source] [discussion] 2024-10-11 06:22:42
>>y1n0+H1
I'm missing something here. Assuming there are pages at 0k, 16k, 32k etc - all of those pages are aligned on 4k boundaries as 4k > 16k. So code written with the assumption that its pages are 4k aligned should have that assumption met when running with 16k pages. It is still early here and I have only had one cup of coffee. Am I misunderstanding something really obvious?
replies(1): >>dezgeg+9c
◧◩◪
4. dezgeg+9c[view] [source] [discussion] 2024-10-11 06:54:49
>>amoss+Y8
x86 app might mmap 8kb, then munmap the second 4kb and expect that to work. But not possible on 16k pages.
replies(1): >>amoss+hf
◧◩◪◨
5. amoss+hf[view] [source] [discussion] 2024-10-11 07:28:59
>>dezgeg+9c
ah ok, so it would not be pointer alignment inside the pages but instead the assumption that page +4k is a page.
replies(1): >>MBCook+Tb1
◧◩◪◨⬒
6. MBCook+Tb1[view] [source] [discussion] 2024-10-11 16:14:37
>>amoss+hf
I was a little confused by that in the article as well. It being a granularity issue makes more sense to me.
[go to top]