> + * @lru:     The LRU from which pages are reclaimed.
> + * @nr_to_scan: Pointer to the target number of pages to scan, must be less
> than
> + *           SGX_NR_TO_SCAN.
> + * Return:   Number of pages reclaimed.
>   */
> -static void sgx_reclaim_pages(void)
> +unsigned int sgx_reclaim_pages(struct sgx_epc_lru_list *lru, unsigned
> +int *nr_to_scan)

Since the function is now returning the number of reclaimed pages, why do you 
need to make the @nr_to_scan as pointer?

Cannot the caller just adjust @nr_to_scan when calling this function based on 
how many pages have reclaimed?

I am not even sure whether you need @nr_to_scan at all because as we discussed 
I think it's just extremely rare you need to pass "< SGX_NR_TO_SCAN" to this 
function.

Even if you need, you can always choose to try to reclaim SGX_NR_TO_SCAN pages.

[...]

> 
> +static void sgx_reclaim_pages_global(void) {
> +     unsigned int nr_to_scan = SGX_NR_TO_SCAN;
> +
> +     sgx_reclaim_pages(&sgx_global_lru, &nr_to_scan); }
> +

I think this function doesn't look sane at all when you have @nr_to_scan being 
a pointer?

I am also not sure whether this function is needed -- if we don't add 
@nr_to_scan to sgx_reclaim_pages(), then this function is basically:

        sgx_reclaim_pages(&sgx_global_lru); 

Reply via email to