Re: subobj-rmap

Martin J. Bligh
2003-04-06T22:03:03Z

>> Supposing we keep a list of areas (hung from the address_space) that
>> describes independant linear ranges of memory that have the same set
>> of vma's mapping them (call those subobjects). Each subobject has a
>> chain of vma's from it that are mapping that subobject.
>>
>> address_space ---> subobject ---> subobject ---> subobject ---> subobject
>> | | | |
>> v v v v
>> vma vma vma vma
>> | | |
>> v v v
>> vma vma vma
>> | |
>> v v
>> vma vma
>
> OK, lets say we have a file of 1000 pages, or
> offsets 0 to 999, with the following mappings:
>
> VMA A: 0-999
> VMA B: 0-200
> VMA C: 150-400
> VMA D: 300-500
> VMA E: 300-500
> VMA F: 0-999
>
> How would you describe these with independant regions ?

Good question to illustrate with.
Extra spacing added just for ease of reading:

0-150 -> 150-200 -> 200-300 -> 300-400 -> 400-500 -> 500-999
A A A A A A
B B
C C C
D D
E E
F F F F F F

> For VMAs D & E and A & F it's a no-brainer,
> but for Oracle shared memory you shouldn't
> assume that you have any similar mappings

We can always leave the sys_remap_file_pages stuff using pte_chains,
and should certainly do that at first. But doing it for normal stuff
should be less controversial, I think.

M.