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  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]
Date:   Fri, 27 Apr 2018 14:59:31 +0530
From:   vjitta@...eaurora.org
To:     Laura Abbott <labbott@...hat.com>
Cc:     sumit.semwal@...aro.org, gregkh@...uxfoundation.org,
        arve@...roid.com, tkjos@...roid.com, maco@...roid.com,
        devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org,
        linux-kernel-owner@...r.kernel.org
Subject: Re: [PATCH] ion: Consider ion pool pages as indirectly reclaimable

On 2018-04-27 10:40, vjitta@...eaurora.org wrote:
> On 2018-04-25 21:17, Laura Abbott wrote:
>> 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
> 
> You can refer to discussion here https://lkml.org/lkml/2018/3/5/361 
> introducing
> NR_INDIRECTLY_RECLAIMABLE_BYTES for the memory which is not currently 
> considered
> as reclaimable
> 
> Thanks,
> Vijay

There was also discussion specific to ion in that thread you can find it 
here
https://lkml.org/lkml/2018/4/25/642

Thanks,
Vijay

Powered by blists - more mailing lists