On 2018/1/17 17:16, Vlastimil Babka wrote: > On 12/29/2017 09:58 AM, Xishi Qiu wrote: >> When calling vfree(), it calls unmap_vmap_area() to clear page table, >> but do not free the memory of page table, why? just for performance? > > I guess it's expected that the free virtual range and associated page > tables it might be reused later. >
Hi Vlastimil, If use vmalloc/vfree different size, then there will be some hols during VMALLOC_START to VMALLOC_END, and this holes takes page table memory, right? >> If a driver use vmalloc() and vfree() frequently, we will lost much >> page table memory, maybe oom later. > > If it's reused, then not really. > > Did you notice an actual issue, or is this just theoretical concern. > Yes, we have this problem on our production line. I find the page table memory takes 200-300M. Thanks, Xishi Qiu >> Thanks, >> Xishi Qiu >> > > > . >