Thread (14 messages) 14 messages, 4 authors, 2017-08-21

Re: kernel panic on null pointer on page->mem_cgroup

From: Michal Hocko <hidden>
Date: 2017-08-21 13:23:54
Also in: linux-mm, lkml

On Mon 21-08-17 09:02:18, Johannes Weiner wrote:
On Thu, Aug 10, 2017 at 01:56:05PM +0200, Michal Hocko wrote:
quoted
On Wed 09-08-17 14:38:25, Johannes Weiner wrote:
quoted
The issue is that writeback doesn't hold a page reference and the page
might get freed after PG_writeback is cleared (and the mapping is
unlocked) in test_clear_page_writeback(). The stat functions looking
up the page's node or zone are safe, as those attributes are static
across allocation and free cycles. But page->mem_cgroup is not, and it
will get cleared if we race with truncation or migration.
Is there anything that prevents us from holding a reference on a page
under writeback?
Hm, I'm hesitant to add redundant life-time management to the page
there just for memcg, which is not always configured in.

Pinning the memcg instead is slightly more complex, but IMO has the
complexity in a preferrable place.
If that is the single place that needs such a special handling and it is
very likely to stay that way then the additional complexity is probably
justified. I am just worried that this is really subtle and history
tells us that such a code usually kicks us back later.
 
Would you agree?
Well, I was not objecting to the patch. It seems correct I am just
worried a robust fix would be preferable. And a clear object life time
sounds like a more robust thing to do.
-- 
Michal Hocko
SUSE Labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help