we need more than one serie, no way, or it can deadlock, the default
serie is for pages, the other series are for pagetables.
>
> 3. KM_SERIE_PAGETABLE2 kmap_pagetable2 pmd_page2 pte_offset2 all just
> for copy_page_range src? Why distinguished from KM_SERIE_PAGETABLE?
> Often it will already be KM_SERIE_PAGETABLE. I can imagine you might
> want an atomic at that point (holding spinlock), but I don't see what
> the PAGETABLE2 distinction gives you.
deadlock avoidance. It's the same reason as the mempool, you need tow
mempool if you need two objects from the same task or it can deadlock
(yes, it would be hard to deadlock it but possible).
in fork the pte_offset kmap could be an atomic one, but atomic are more
costly with the invlpg I believe, to do it in a raw the 2 variant with a
different serie should be faster for fork(2).
> 4. You've lifted the PAE restriction to LAST_PKMAP 512 in i386/highmem.h,
> and use pkmap_page_table as one long array in mm/highmem.c, but I
> don't see where you enforce the contiguity of page table pages in
> i386/mm/init.c. (I do already have a patch for lifting the 1024,512
> kmaps limit, simplifying i386/mm/init.c, we've been using for months:
> I can update that from 2.4.9 if you'd like it.)
correct, currently it works because the bootmem tends to return
physically contigous pages but it is not enforced and it may trigger
with a weird e820 layout. If you've a patch very feel free to post it!! :)
thanks for the review.
>
> 5. Shouldn't mm/vmscan.c be in the patch?
can you elaborate?
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/