Try to modify storeSwapOutAble. :-)

From: <>
Date: Sat, 27 Apr 2002 13:03:04 +0800 (CST)

Hi, pals!

In storeSwapOutAble, we will do the following checks,

    if (e->mem_obj->swapout.sio != NULL)
        return 1;
    if (e->mem_obj->inmem_lo > 0)
        return 0;

I think if swapout.sio is not NUll, then the object is able to
swap out. inmem_lo > 0 means the head of the object is missing.
I think missing has two cases.

1. The head of object maybe just simply purged from memory and will not swapped out simply to save memory space.
2. The head of object has been swapped out. And the rest part of object
is still in memory.

Am I correct on the two cases?

I also think whether we can change the check sequence, as the following
    if (e->mem_obj->inmem_lo > 0)
        return 0;
    if (e->mem_obj->swapout.sio != NULL)
        return 1;

I think we can not do this, because inmem_lo > 0 sometimes indicates the header part of the object is swapping out and surely the rest part can be swapped out. But return 0 means the object can not be swapped out. So there is a conflict. So we can not change the check order.

Am I correct?

Best regards,
George Ma
Received on Fri Apr 26 2002 - 23:03:10 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:15:22 MST