Messages in this thread | | | From | KOSAKI Motohiro <> | Date | Sun, 23 Mar 2014 17:01:29 -0700 | Subject | Re: [PATCH 4/5] vrange: Set affected pages referenced when marking volatile |
| |
On Fri, Mar 21, 2014 at 2:17 PM, John Stultz <john.stultz@linaro.org> wrote: > One issue that some potential users were concerned about, was that > they wanted to ensure that all the pages from one volatile range > were purged before we purge pages from a different volatile range. > This would prevent the case where they have 4 large objects, and > the system purges one page from each object, casuing all of the > objects to have to be re-created. > > The counter-point to this case, is when an application is using the > SIGBUS semantics to continue to access pages after they have been > marked volatile. In that case, the desire was that the most recently > touched pages be purged last, and only the "cold" pages be purged > from the specified range. > > Instead of adding option flags for the various usage model (at least > initially), one way of getting a solutoin for both uses would be to > have the act of marking pages as volatile in effect mark the pages > as accessed. Since all of the pages in the range would be marked > together, they would be of the same "age" and would (approximately) > be purged together. Further, if any pages in the range were accessed > after being marked volatile, they would be moved to the end of the > lru and be purged later.
If you run after two hares, you will catch neither. I suspect this patch doesn't make happy any user. I suggest to aim former case (object level caching) and aim latter by another patch-kit.
| |