lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8618859b-06f9-39a7-80a9-af36cf9faf9f@redhat.com>
Date:   Wed, 25 Apr 2018 08:47:34 -0700
From:   Laura Abbott <labbott@...hat.com>
To:     vjitta@...eaurora.org, sumit.semwal@...aro.org
Cc:     gregkh@...uxfoundation.org, arve@...roid.com, tkjos@...roid.com,
        maco@...roid.com, devel@...verdev.osuosl.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ion: Consider ion pool pages as indirectly reclaimable

On 04/24/2018 08:43 PM, vjitta@...eaurora.org wrote:
> From: Vijayanand Jitta <vjitta@...eaurora.org>
> 
> An issue is observed where mallocs are failing due to overcommit failure.
> The failure happens when there is high ION page pool since ION page
> pool is not considered reclaimable by the overcommit calculation code.
> This change considers ion pool pages as indirectly reclaimable and thus
> accounted as available memory in the overcommit calculation.
> 
> Signed-off-by: Vijayanand Jitta <vjitta@...eaurora.org>
> ---
>   drivers/staging/android/ion/ion_page_pool.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/staging/android/ion/ion_page_pool.c b/drivers/staging/android/ion/ion_page_pool.c
> index db8f614..9bc56eb 100644
> --- a/drivers/staging/android/ion/ion_page_pool.c
> +++ b/drivers/staging/android/ion/ion_page_pool.c
> @@ -32,6 +32,9 @@ static void ion_page_pool_add(struct ion_page_pool *pool, struct page *page)
>   		list_add_tail(&page->lru, &pool->low_items);
>   		pool->low_count++;
>   	}
> +
> +	mod_node_page_state(page_pgdat(page), NR_INDIRECTLY_RECLAIMABLE_BYTES,
> +			    (1 << (PAGE_SHIFT + pool->order)));
>   	mutex_unlock(&pool->mutex);
>   }
>   
> @@ -50,6 +53,8 @@ static struct page *ion_page_pool_remove(struct ion_page_pool *pool, bool high)
>   	}
>   
>   	list_del(&page->lru);
> +	mod_node_page_state(page_pgdat(page), NR_INDIRECTLY_RECLAIMABLE_BYTES,
> +			    -(1 << (PAGE_SHIFT + pool->order)));
>   	return page;
>   }
>   
> 

I'm sure this fixes the problem but I don't think we want to
start throwing page adjustments into Ion. Why isn't this
memory already considered reclaimable by existing calculations?

Thanks,
Laura

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ