커널에 netfilter 소스를 분석하고 있는데..이해가 가지 않는
부분이 있습니다.
(1)
newinfo = vmalloc(sizeof(struct ip6t_table_info)
+ SMP_ALIGN(table->table->size) * smp_num_cpus);
(1)에서 vmalloc 함수로 메모리를 할당 받고 리턴된 선형 주소를
다른 함수로 통해 전달되어 그림 (2)와 같이 offset 을 계산하게
됩니다. 여기서 e는 vmalloc으로 메모리를 할당한 newinfo struct
에 다른 element 입니다. 제 생각으로는 (2)에서 memery alignment
때문에 계산을 하는것 같긴 한데...정확한 이유를 잘 모르겠습니다.