<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/staging/android/ion, branch v3.16.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>staging: ion: shrink highmem pages on kswapd</title>
<updated>2014-05-29T20:40:46+00:00</updated>
<author>
<name>Heesub Shin</name>
<email>heesub.shin@samsung.com</email>
</author>
<published>2014-05-28T06:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0cd2dc4db3ba23ff8ab38b8ae81b126626f795d5'/>
<id>0cd2dc4db3ba23ff8ab38b8ae81b126626f795d5</id>
<content type='text'>
ION system heap keeps pages in its pool for better performance. When the
system is under memory pressure, slab shrinker calls the callback
registered and then the pages pooled get freed.

When the shrinker is called, it checks gfp_mask and determines whether
the pages from highmem need to be freed or the pages from lowmem.
Usually, slab shrinker is invoked on kswapd context which gfp_mask is
always GFP_KERNEL, so only lowmem pages are released on kswapd context.
This means that highmem pages in the pool are never reclaimed until
direct reclaim occurs. This can be problematic when the page pool holds
excessive amounts of highmem.

For now, the shrinker callback cannot know exactly which zone should be
targeted for reclamation, as enough information are not passed to. Thus,
it makes sense to shrink both lowmem and highmem zone on kswapd context.

Reported-by: Wonseo Choi &lt;wonseo.choi@samsung.com&gt;
Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ION system heap keeps pages in its pool for better performance. When the
system is under memory pressure, slab shrinker calls the callback
registered and then the pages pooled get freed.

When the shrinker is called, it checks gfp_mask and determines whether
the pages from highmem need to be freed or the pages from lowmem.
Usually, slab shrinker is invoked on kswapd context which gfp_mask is
always GFP_KERNEL, so only lowmem pages are released on kswapd context.
This means that highmem pages in the pool are never reclaimed until
direct reclaim occurs. This can be problematic when the page pool holds
excessive amounts of highmem.

For now, the shrinker callback cannot know exactly which zone should be
targeted for reclamation, as enough information are not passed to. Thus,
it makes sense to shrink both lowmem and highmem zone on kswapd context.

Reported-by: Wonseo Choi &lt;wonseo.choi@samsung.com&gt;
Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: ion: use compound pages on high order pages for system heap</title>
<updated>2014-05-29T20:40:33+00:00</updated>
<author>
<name>Heesub Shin</name>
<email>heesub.shin@samsung.com</email>
</author>
<published>2014-05-28T06:52:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bdeb9f1c4276864e97a725c8c0a8bc9a8686edfe'/>
<id>bdeb9f1c4276864e97a725c8c0a8bc9a8686edfe</id>
<content type='text'>
Using compound pages relieves burden on tracking the meta information
which are currently stored in page_info.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using compound pages relieves burden on tracking the meta information
which are currently stored in page_info.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: ion: remove struct ion_page_pool_item</title>
<updated>2014-05-29T20:40:33+00:00</updated>
<author>
<name>Heesub Shin</name>
<email>heesub.shin@samsung.com</email>
</author>
<published>2014-05-28T06:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=38c003b113ceab37f80d020999d3ec2cbf784da3'/>
<id>38c003b113ceab37f80d020999d3ec2cbf784da3</id>
<content type='text'>
The page pool uses an internal data structure, ion_page_pool_item, for
wrapping pooled pages and constructing a list. As the struct page
already provides ways for doing exactly the same thing, we do not need
to reinvent the wheel. This commit removes the data structure and slab
allocations for it.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The page pool uses an internal data structure, ion_page_pool_item, for
wrapping pooled pages and constructing a list. As the struct page
already provides ways for doing exactly the same thing, we do not need
to reinvent the wheel. This commit removes the data structure and slab
allocations for it.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: ion: simplify ion_page_pool_total()</title>
<updated>2014-05-29T20:40:33+00:00</updated>
<author>
<name>Heesub Shin</name>
<email>heesub.shin@samsung.com</email>
</author>
<published>2014-05-28T06:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=80cb77dc6310a72002f6cb8255316c5aaea78807'/>
<id>80cb77dc6310a72002f6cb8255316c5aaea78807</id>
<content type='text'>
ion_page_pool_total() returns the total number of pages in the pool.
Depending on the argument passed, it counts highmem pages in or not.
This commit simplifies the code lines for better readability.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ion_page_pool_total() returns the total number of pages in the pool.
Depending on the argument passed, it counts highmem pages in or not.
This commit simplifies the code lines for better readability.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: ion: tidy up a bit</title>
<updated>2014-05-29T20:40:33+00:00</updated>
<author>
<name>Heesub Shin</name>
<email>heesub.shin@samsung.com</email>
</author>
<published>2014-05-28T06:52:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=792407484a09b455064722c5190b45e1e1f2cecd'/>
<id>792407484a09b455064722c5190b45e1e1f2cecd</id>
<content type='text'>
For aesthetics and readability, rename goto labels, remove
useless code lines, and clarify function return type.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For aesthetics and readability, rename goto labels, remove
useless code lines, and clarify function return type.

Signed-off-by: Heesub Shin &lt;heesub.shin@samsung.com&gt;
Reviewed-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Tested-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: ion: WARN when the handle kmap_cnt is going to wrap around</title>
<updated>2014-05-23T22:23:15+00:00</updated>
<author>
<name>Mitchel Humpherys</name>
<email>mitchelh@codeaurora.org</email>
</author>
<published>2014-05-23T20:01:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=22f6b9789aef2e0b0b409b1d7708cc653540248c'/>
<id>22f6b9789aef2e0b0b409b1d7708cc653540248c</id>
<content type='text'>
There are certain client bugs (double unmap, for example) that can cause
the handle-&gt;kmap_cnt (an unsigned int) to wrap around from zero. This
causes problems when the handle is destroyed because we have:

        while (handle-&gt;kmap_cnt)
                ion_handle_kmap_put(handle);

which takes a long time to complete when kmap_cnt starts at ~0 and can
result in a watchdog timeout.

WARN and bail when kmap_cnt is about to wrap around from zero.

Signed-off-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Acked-by: Colin Cross &lt;ccross@android.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are certain client bugs (double unmap, for example) that can cause
the handle-&gt;kmap_cnt (an unsigned int) to wrap around from zero. This
causes problems when the handle is destroyed because we have:

        while (handle-&gt;kmap_cnt)
                ion_handle_kmap_put(handle);

which takes a long time to complete when kmap_cnt starts at ~0 and can
result in a watchdog timeout.

WARN and bail when kmap_cnt is about to wrap around from zero.

Signed-off-by: Mitchel Humpherys &lt;mitchelh@codeaurora.org&gt;
Acked-by: Colin Cross &lt;ccross@android.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: android: fix missing a blank line after declarations</title>
<updated>2014-05-03T23:46:30+00:00</updated>
<author>
<name>Seunghun Lee</name>
<email>waydi1@gmail.com</email>
</author>
<published>2014-04-30T16:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=10f62861b4a2f22cbd6412b3c42c76f0bdfbd648'/>
<id>10f62861b4a2f22cbd6412b3c42c76f0bdfbd648</id>
<content type='text'>
This patch fixes "Missing a blank line after declarations" warnings.

Signed-off-by: Seunghun Lee &lt;waydi1@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes "Missing a blank line after declarations" warnings.

Signed-off-by: Seunghun Lee &lt;waydi1@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Staging: android: ion: duplicated clearing of sg_table</title>
<updated>2014-04-25T22:17:31+00:00</updated>
<author>
<name>Gioh Kim</name>
<email>gioh.kim@lge.com</email>
</author>
<published>2014-04-24T23:24:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b6152016003b2cc2370899558bf2e7de4ebd0b09'/>
<id>b6152016003b2cc2370899558bf2e7de4ebd0b09</id>
<content type='text'>
Because sg_table is cleared in sg_alloc_table via memset we don't need to use
kzalloc to allocate sg_table.

Signed-off-by: Gioh Kim &lt;gioh.kim@lge.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because sg_table is cleared in sg_alloc_table via memset we don't need to use
kzalloc to allocate sg_table.

Signed-off-by: Gioh Kim &lt;gioh.kim@lge.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: android: ion: Use ERR_CAST instead of ERR_PTR</title>
<updated>2014-03-13T23:34:02+00:00</updated>
<author>
<name>Iulia Manda</name>
<email>iulia.manda21@gmail.com</email>
</author>
<published>2014-03-11T18:14:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=464a5028eadef63e4b84e834eaeb782b537bf513'/>
<id>464a5028eadef63e4b84e834eaeb782b537bf513</id>
<content type='text'>
Fix the following coccinelle warnings in ion.c:
drivers/staging/android/ion/ion.c:511:9-16: WARNING: ERR_CAST can be used with buffer
drivers/staging/android/ion/ion.c:218:9-16: WARNING: ERR_CAST can be used with table
drivers/staging/android/ion/ion.c:1150:9-16: WARNING: ERR_CAST can be used with dmabuf

Signed-off-by: Iulia Manda &lt;iulia.manda21@gmail.com&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Peter P Waskiewicz Jr &lt;peter.p.waskiewicz.jr@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the following coccinelle warnings in ion.c:
drivers/staging/android/ion/ion.c:511:9-16: WARNING: ERR_CAST can be used with buffer
drivers/staging/android/ion/ion.c:218:9-16: WARNING: ERR_CAST can be used with table
drivers/staging/android/ion/ion.c:1150:9-16: WARNING: ERR_CAST can be used with dmabuf

Signed-off-by: Iulia Manda &lt;iulia.manda21@gmail.com&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Peter P Waskiewicz Jr &lt;peter.p.waskiewicz.jr@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: android: ion: Replace seq_printf with seq_puts</title>
<updated>2014-03-13T23:33:54+00:00</updated>
<author>
<name>Iulia Manda</name>
<email>iulia.manda21@gmail.com</email>
</author>
<published>2014-03-11T18:12:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=164ad86d3382de1095db97e5f566e0182d9fec4c'/>
<id>164ad86d3382de1095db97e5f566e0182d9fec4c</id>
<content type='text'>
It is preferred to use seq_puts instead of seq_printf here, as it suffices string printing.

Signed-off-by: Iulia Manda &lt;iulia.manda21@gmail.com&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Peter P Waskiewicz Jr &lt;peter.p.waskiewicz.jr@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is preferred to use seq_puts instead of seq_printf here, as it suffices string printing.

Signed-off-by: Iulia Manda &lt;iulia.manda21@gmail.com&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Peter P Waskiewicz Jr &lt;peter.p.waskiewicz.jr@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
