[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: design for new VM
On Thu, Aug 03, 2000 at 11:05:47AM -0700, Linus Torvalds wrote:
> As far as I can tell, the only advantage of multiple lists compared to the
> current one is to avoid overhead in walking extra pages, no?
[...]
> As far as I can tell, the above is _exactly_ equivalent to having one
> single list, and multiple "scan-points" on that list.
[...]
3 keywords:
- reordering of the list breaks _all_ scanpoints
- wraparound inside the scanner breaks ordering or it should
store it's starting point globally
- state transistions _require_ reordering, which will affect
all scanners
conclusions:
- scanners can only run exclusive (spinlock()ed) one at a
point, if they can ever reorder the list, until the reach
their temporally success or wrap point
- scanners, that don't reorder the list have to be run under
the guarantee, that the list will _never_ change until they
reach their wrap point or succeed for now
Isn't this really bad for performance? It would imply a lot of
waiting, but I haven't measured this ;-)
With the multiple list approach we can skip pages easily and
avoid contention and stuck scanners (waiting for the list_lock to
become free).
Even your headache with the "purpose" of the lists might get
adressed, if you consider adding a queue in between for the
special state you need (like "dirty_but_not_really_list" ;-)).
The only wish _I_ have is having portal functions for _all_ state
transitions, which can be used as entry point for future
extensions which should continue adding portal functions for
their own transistions.
Practical example: *Nobody* was able to tell me, where we stop
accessing a swapped out page (so it can be encrypted) and
where we start accessing a swapped in page (so it has to be
decrypted).
Would be no problem (nor a question ;-)) with portal functions
for this important state transition.
PS: Maybe I didn't get your point with the "scan-points"
approach.
Regards
Ingo Oeser
--
Feel the power of the penguin - run linux@your.pc
<esc>:x
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/