Thread (36 messages) 36 messages, 3 authors, 2012-02-07
STALE5234d

[PATCH 4/7] Store huge page linux pte in mm_struct

From: Russell King - ARM Linux <hidden>
Date: 2012-01-31 10:01:54

On Mon, Jan 30, 2012 at 03:57:15PM +0800, bill4carson at gmail.com wrote:
From: Bill Carson <redacted>

One easy way to store huge page linux pte is mm_struct instead of thread_info
that's because when parent task with huge page VMA calls fork, parent huge page
pagetable entries are copied into child pagetable. This is done in

int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src,
			    struct vm_area_struct *vma)

We cannot derive child's thread_info just using struct mm_struct *dst.
if we have struct mm_struct **dst, then it's easy to find the corresponding
task_struct as well as thread_info, but we only get struct mm_struct *dst.
It's possible to find the desired task_struct by iterating the global task list
by comparing task_struct->mm with dst.
So mm_struct is used for huge page linux pte for faster lookup and efficient.
I really do not understand this description, and it doesn't seem to tie
up with the code.  What problem are you trying to solve here?

Note that a mm_struct can be shared between multiple task_structs, so
if your thinking is that something in the mm_struct or page table needs
to know about a task_struct, you're ideas are wrong.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help