Re: [Question ]: Avoid kernel panic when killing an application if happen RAS page table error
From: gengdongjiu
Date: Sat Dec 16 2017 - 02:11:31 EST
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!
>
> .
>