#endif /* INDIRECT_CORE */
if (process_avail > swap_table.avail)
process_avail = swap_table.avail;
- //printf("process_avail %d\n", process_avail);
+ printf("process_avail %d\n", process_avail);
lru_head.prev = &lru_head;
lru_head.next = &lru_head;
blocks = victim_core_blocks;
#endif /* INDIRECT_SWAP */
#endif /* INDIRECT_CORE */
- //printf("existing victim %d, swap out %d of %d\n", (int)(victim - processes), blocks, victim_core_blocks);
+ printf("existing victim %d, swap out %d of %d\n", (int)(victim - processes), blocks, victim_core_blocks);
// increase swap allocation
goto loop_entry;
if (blocks > victim_core_blocks)
blocks = victim_core_blocks;
#endif /* INDIRECT_SWAP */
- //printf("new victim %d, swap out %d of %d\n", (int)(victim - processes), blocks, victim_core_blocks);
+ printf("new victim %d, swap out %d of %d\n", (int)(victim - processes), blocks, victim_core_blocks);
// add to swap pool
victim_swap_blocks = 0;
// transfer data to swap
#ifndef INDIRECT_CORE
#ifndef INDIRECT_SWAP
- //printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
+ printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
core_to_swap_copy(
(long)core_base << BLOCK_SHIFT,
(long)swap_base << BLOCK_SHIFT,
#endif /* INDIRECT_SWAP */
);
#ifdef INDIRECT_SWAP
- //printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
+ printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
j = (int)(size >> BLOCK_SHIFT);
- //printf("blocks");
+ printf("blocks");
for (i = 0; i < j; ++i) {
core_block = core_base + i;
swap_block = swap_base + i;
swap_block = swap_table_mem[swap_block];
- //printf(" %d", swap_block);
+ printf(" %d", swap_block);
core_to_swap_copy(
(long)core_block << BLOCK_SHIFT,
(long)swap_block << BLOCK_SHIFT,
core_block = core_base + i;
swap_block = swap_base + i;
swap_block = swap_table_mem[swap_block];
- //printf(" %d", swap_block);
+ printf(" %d", swap_block);
//putchar('*');
core_to_swap_copy(
(long)core_block << BLOCK_SHIFT,
j
);
}
- //printf("\n");
+ printf("\n");
#endif /* INDIRECT_SWAP */
#else /* INDIRECT_CORE */
#ifdef INDIRECT_SWAP
block_pool_alloc(&swap_block_pool, swap_table_mem + swap_base, blocks)
);
#endif /* INDIRECT_SWAP */
- //printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
+ printf("write core [%d,%d) to swap [%d,%d)\n", core_base, core_base + blocks, swap_base, swap_base + blocks);
j = (int)(size >> BLOCK_SHIFT);
- //printf("blocks");
+ printf("blocks");
for (i = 0; i < j; ++i) {
core_block = core_base + i;
core_block = core_table_mem[core_block];
- //printf(" %d", core_block);
+ printf(" %d", core_block);
swap_block = swap_base + i;
#ifdef INDIRECT_SWAP
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
#endif /* INDIRECT_SWAP */
core_to_swap_copy(
(long)core_block << BLOCK_SHIFT,
if (j) {
core_block = core_base + i;
core_block = core_table_mem[core_block];
- //printf(" %d", core_block);
+ printf(" %d", core_block);
swap_block = swap_base + i;
#ifdef INDIRECT_SWAP
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
#endif /* INDIRECT_SWAP */
//putchar('*');
core_to_swap_copy(
j
);
}
- //printf("\n");
+ printf("\n");
block_pool_free(&core_block_pool, core_table_mem + core_base, blocks);
#endif /* INDIRECT_CORE */
victim_swap_blocks += blocks;
// report whether aborted due to swap space or user request
return swap_out == blocks;
}
- //printf("victimized %d\n", (int)(victim - processes));
+ printf("victimized %d\n", (int)(victim - processes));
#ifndef INDIRECT_CORE
// remove from core pool
#ifdef INDIRECT_CORE
block_pool_alloc(&core_block_pool, core_table_mem + core_base, blocks);
#endif /* INDIRECT_CORE */
- //printf("read swap [%d,%d) to core [%d,%d)\n", swap_base, swap_base + blocks, core_base, core_base + blocks);
+ printf("read swap [%d,%d) to core [%d,%d)\n", swap_base, swap_base + blocks, core_base, core_base + blocks);
#ifndef INDIRECT_CORE
#ifndef INDIRECT_SWAP
swap_to_core_copy(
);
#else /* INDIRECT_SWAP */
j = (int)(size >> BLOCK_SHIFT);
- //printf("blocks");
+ printf("blocks");
for (i = 0; i < j; ++i) {
int core_block = core_base + i;
int swap_block = swap_base + i;
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
swap_to_core_copy(
(long)swap_block << BLOCK_SHIFT,
(long)core_block << BLOCK_SHIFT,
int core_block = core_base + i;
int swap_block = swap_base + i;
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
swap_to_core_copy(
(long)swap_block << BLOCK_SHIFT,
(long)core_block << BLOCK_SHIFT,
j
);
}
- //printf("\n");
+ printf("\n");
block_pool_free(&swap_block_pool, swap_table_mem + swap_base, blocks);
#endif /* INDIRECT_SWAP */
#else /* INDIRECT_CORE */
j = (int)(size >> BLOCK_SHIFT);
- //printf("blocks");
+ printf("blocks");
for (i = 0; i < j; ++i) {
int core_block = core_base + i;
core_block = core_table_mem[core_block];
- //printf(" %d", core_block);
+ printf(" %d", core_block);
int swap_block = swap_base + i;
#ifdef INDIRECT_SWAP
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
#endif /* INDIRECT_SWAP */
swap_to_core_copy(
(long)swap_block << BLOCK_SHIFT,
if (j) {
int core_block = core_base + i;
core_block = core_table_mem[core_block];
- //printf(" %d", core_block);
+ printf(" %d", core_block);
int swap_block = swap_base + i;
#ifdef INDIRECT_SWAP
swap_block = swap_table_mem[swap_block];
- //printf(",%d", swap_block);
+ printf(",%d", swap_block);
#endif /* INDIRECT_SWAP */
swap_to_core_copy(
(long)swap_block << BLOCK_SHIFT,
j
);
}
- //printf("\n");
+ printf("\n");
#ifdef INDIRECT_SWAP
block_pool_free(&swap_block_pool, swap_table_mem + swap_base, blocks);
#endif /* INDIRECT_SWAP */
long i, addr;
long long hash;
- //printf("core_hash_init %d %ld(%d) %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT), offset, (int)(offset >> BLOCK_SHIFT));
+ printf("core_hash_init %d %ld(%d) %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT), offset, (int)(offset >> BLOCK_SHIFT));
for (i = 0L; i < size; ++i) {
addr = base + i;
#ifdef INDIRECT_CORE
long i, addr;
long long hash;
- //printf("core_hash_verify %d %ld(%d) %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT), offset, (int)(offset >> BLOCK_SHIFT));
+ printf("core_hash_verify %d %ld(%d) %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT), offset, (int)(offset >> BLOCK_SHIFT));
for (i = 0L; i < size; ++i) {
addr = base + i;
#ifdef INDIRECT_CORE
long i, addr;
long long hash;
- //printf("swap_hash_verify %d %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("swap_hash_verify %d %ld(%d) %ld(%d)\n", process, base, (int)(base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
for (i = 0L; i < size; ++i) {
addr = base + i;
#ifdef INDIRECT_SWAP
void core_copy(long src_base, long dest_base, long size) {
long i;
- //printf("core_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("core_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
for (i = 0L; i < size; ++i) {
core_block_mem[dest_base + i] = core_block_mem[src_base + i];
core_block_mem[src_base + i] = 0xaa;
void core_copy_up(long src_limit, long dest_limit, long size) {
long i;
- //printf("core_copy_up %ld(%d) %ld(%d) %ld(%d)\n", src_limit, (int)(src_limit >> BLOCK_SHIFT), dest_limit, (int)(dest_limit >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("core_copy_up %ld(%d) %ld(%d) %ld(%d)\n", src_limit, (int)(src_limit >> BLOCK_SHIFT), dest_limit, (int)(dest_limit >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
size = -size;
for (i = -1L; i >= size; --i) {
core_block_mem[dest_limit + i] = core_block_mem[src_limit + i];
void swap_copy(long src_base, long dest_base, long size) {
long i;
- //printf("swap_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("swap_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
for (i = 0; i < size; ++i) {
swap_block_mem[dest_base + i] = swap_block_mem[src_base + i];
swap_block_mem[src_base + i] = 0xaa;
void swap_copy_up(long src_limit, long dest_limit, long size) {
long i;
- //printf("swap_copy_up %ld(%d) %ld(%d) %ld(%d)\n", src_limit, (int)(src_limit >> BLOCK_SHIFT), dest_limit, (int)(dest_limit >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("swap_copy_up %ld(%d) %ld(%d) %ld(%d)\n", src_limit, (int)(src_limit >> BLOCK_SHIFT), dest_limit, (int)(dest_limit >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
size = -size;
for (i = -1; i >= size; --i) {
swap_block_mem[dest_limit + i] = swap_block_mem[src_limit + i];
void core_to_swap_copy(long src_base, long dest_base, long size) {
long i;
- //printf("core_to_swap_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("core_to_swap_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
for (i = 0; i < size; ++i)
rassert(swap_block_mem[dest_base + i] == 0xaa);
memcpy(swap_block_mem + dest_base, core_block_mem + src_base, size);
void swap_to_core_copy(long src_base, long dest_base, long size) {
long i;
- //printf("swap_to_core_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
+ printf("swap_to_core_copy %ld(%d) %ld(%d) %ld(%d)\n", src_base, (int)(src_base >> BLOCK_SHIFT), dest_base, (int)(dest_base >> BLOCK_SHIFT), size, (int)((size + (BLOCK_SIZE - 1)) >> BLOCK_SHIFT));
for (i = 0; i < size; ++i)
rassert(core_block_mem[dest_base + i] == 0xaa);
memcpy(core_block_mem + dest_base, swap_block_mem + src_base, size);
processes[test.process].core_item.limit ==
core_base + blocks
);
- //printf("new core [%d,%d)\n", core_base, core_base + blocks);
+ printf("new core [%d,%d)\n", core_base, core_base + blocks);
core_hash_init(
test.process,
(long)core_base << BLOCK_SHIFT,
test.size,
0L
);
- //printf("new swap [%d,%d)\n", processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
+ printf("new swap [%d,%d)\n", processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
}
}
break;
);
rassert(actual_old_blocks <= old_blocks);
}
- //printf("old core [%d,%d) swap [%d,%d)\n", core_base, core_base + actual_old_blocks, processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
+ printf("old core [%d,%d) swap [%d,%d)\n", core_base, core_base + actual_old_blocks, processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
core_hash_verify(
test.process,
((long)core_base << BLOCK_SHIFT) + test.size,
processes[test.process].core_item.limit ==
core_base + blocks
);
- //printf("new core [%d,%d) swap [%d,%d)\n", core_base, core_base + blocks, processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
+ printf("new core [%d,%d) swap [%d,%d)\n", core_base, core_base + blocks, processes[test.process].swap_item.base, processes[test.process].swap_item.limit);
core_hash_init(
test.process,
((long)core_base << BLOCK_SHIFT) + actual_old_size,
}
}
rassert(core_blocks + swap_blocks == actual_old_blocks);
- //printf("old core [%d,%d) swap [%d,%d)\n", core_base, core_base + core_blocks, swap_base, swap_base + swap_blocks);
+ printf("old core [%d,%d) swap [%d,%d)\n", core_base, core_base + core_blocks, swap_base, swap_base + swap_blocks);
fflush(stdout);
core_hash_verify(
test.process,