Print this page
patch vm-cleanup

*** 1174,1228 **** return (0); } static void - zulu_hat_swapout(struct xhat *xhat) - { - struct zulu_hat *zhat = (struct zulu_hat *)xhat; - struct zulu_hat_blk *zblk; - struct zulu_hat_blk *free_list = NULL; - int i; - int nblks = 0; - - TNF_PROBE_1(zulu_hat_swapout, "zulu_hat", /* CSTYLED */, - tnf_int, zulu_ctx, zhat->zulu_ctx); - - mutex_enter(&zhat->lock); - - /* - * real swapout calls are rare so we don't do anything in - * particular to optimize them. - * - * Just loop over all buckets in the hash table and free each - * zblk. - */ - for (i = 0; i < ZULU_HASH_TBL_NUM; i++) { - struct zulu_hat_blk *next; - for (zblk = zhat->hash_tbl[i]; zblk != NULL; zblk = next) { - next = zblk->zulu_hash_next; - zulu_hat_remove_map(zhat, zblk); - add_to_free_list(&free_list, zblk); - nblks++; - } - } - - /* - * remove all mappings for this context from zulu hardware. - */ - zulu_hat_demap_ctx(zhat->zdev, zhat->zulu_ctx); - - mutex_exit(&zhat->lock); - - free_zblks(free_list); - - TNF_PROBE_1(zulu_hat_swapout_done, "zulu_hat", /* CSTYLED */, - tnf_int, nblks, nblks); - } - - - static void zulu_hat_unshare(struct xhat *xhat, caddr_t vaddr, size_t size) { TNF_PROBE_0(zulu_hat_unshare, "zulu_hat", /* CSTYLED */); zulu_hat_unload(xhat, vaddr, size, 0); --- 1174,1183 ----
*** 1310,1321 **** zulu_hat_alloc, /* xhat_alloc */ zulu_hat_free, /* xhat_free */ zulu_hat_free_start, /* xhat_free_start */ NULL, /* xhat_free_end */ NULL, /* xhat_dup */ - NULL, /* xhat_swapin */ - zulu_hat_swapout, /* xhat_swapout */ zulu_hat_memload, /* xhat_memload */ zulu_hat_memload_array, /* xhat_memload_array */ zulu_hat_devload, /* xhat_devload */ zulu_hat_unload, /* xhat_unload */ zulu_hat_unload_callback, /* xhat_unload_callback */ --- 1265,1274 ----