We can still do the simple sorted list of lists thing (I have preliminary
non-functional code). But I don't see that it's really worth the overhead
in the common case to fix a corner case that has already been fixed in a
different way.
/*
* s = address_space, r = address_range, v = vma
*
* s - r - r - r - r - r
* | | | | |
* v v v v v
* | | |
* v v v
* |
* v
*/
struct address_range {
unsigned long start;
unsigned long end;
struct list_head ranges;
struct list_head vmas;
};
where the list of address_ranges is sorted by start address. This is
intended to make use of the real-world case that many things (like shared
libs) map the same exact address ranges over and over again (ie something
like 3 ranges, but hundreds or thousands of mappings).
M.
-
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/