On 31.12.2008 [07:26:38 -0800], mehul vora wrote: > Nishanth, > > Couple of doubts... > > 1) Can't text remapping cause any problem with the "code" being > executed ? I mean, from code (function - remap_segments() ) it looks > like "code remaps itself". If any tlb exception comes after "munmap" > then there is no valid pagetable entry for the code segment as > "munmap" removes page table reference ??
Right. That's why we resolve the mmap() symbol so that we don't need to rely on the PLT or anything when we try to run mmap() without a text segment. It's a real black hole there. If you take an exception, it will fail, you're right. We've not seen that happen on power, x86, x86_64, but is there something specific about MIPS that makes that a concern? I don't know much about the MIPS arch. requirements or VM. > 2) Why "prepare_segment" routine which copies passed segment's data in > to the hugepages is called from child process ? Can't parent do the > same ? prepare_segment() is called by each process to try and remap a given segment. I should say first, but that only matters in the case of sharing. In the non-sharing case, it doesn't, as there is no relation between parent and child segments in terms of hugetlbfs. Each process is independent, because we unlink the files (and thus hide the data from any other process). The only time you should consider parent/child relationships in libhugetlbfs' remapping code, I'd say, is with sharing of segments enabled. And then it's only for the text segment, and only because it's read-only. Thanks, Nish -- Nishanth Aravamudan <n...@us.ibm.com> IBM Linux Technology Center ------------------------------------------------------------------------------ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel