Messages in this thread | | | Date | Mon, 5 Apr 1999 13:57:45 +0100 (BST) | From | Mark Hemment <> | Subject | Re: SwapCache bug? |
| |
Hi,
> > Also in do_wp_page(), what happens to a swap-cached page whose reference > > count is greater than 2? There looks like a missing default case which > > does a swap_free(). > > No, that is very much deliberate: there may well be other processes > around which still refer to the copy on disk, so we want to do a COW and > keep the swap cache copy present. (This catches the case of a > partially-swapped-out process which keeps forking: if one child swaps a > page in, then we do a COW and the next child to access that page will > find its copy already in cache.)
I agree there maybe other processes around which refer to the disk copy, but isn't there a need to decrement the reference count for this disk copy on a COW? ie. do a swap_free() when the page ref count is greater than 2 - not to free the disk-copy, but to keep the swap_map counter correct.
Mark
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |