On 2017/12/16 3:35, Matthew Wilcox wrote: >> It's going to be complicated to do, I don't think its worth the effort. > We can find a bit in struct page that we guarantee will only be set if > this is allocated as a pagetable. Bit 1 of the third union is currently > available (compound_head is a pointer if bit 0 is set, so nothing is > using bit 1). We can put a pointer to the mm_struct in the same word. > > Finding all the allocated pages will be the tricky bit. We could put a > list_head into struct page; perhaps in the same spot as page_deferred_list > for tail pages. Then we can link all the pagetables belonging to > this mm together and tear them all down if any of them get an error. > They'll repopulate on demand. It won't be quick or scalable, but when > the alternative is death, it looks relatively attractive. Thanks for the comments, I will check it in detailed and investigate whether it is worth to do for it. Thanks!
> > . >

