On Sat, Jan 18, 2020 at 03:36:06PM -0800, David Rientjes wrote: >On Sat, 18 Jan 2020, Andrew Morton wrote: > >> On Sat, 18 Jan 2020 07:38:36 +0800 Wei Yang <richardw.yang@xxxxxxxxxxxxxxx> wrote: >> >> > If compound is true, this means it is a PMD mapped THP. Which implies >> > the page is not linked to any defer list. So the first code chunk will >> > not be executed. >> > >> > Also with this reason, it would not be proper to add this page to a >> > defer list. So the second code chunk is not correct. >> > >> > Based on this, we should remove the defer list related code. >> > >> > Fixes: 87eaceb3faa5 ("mm: thp: make deferred split shrinker memcg aware") >> > >> > Signed-off-by: Wei Yang <richardw.yang@xxxxxxxxxxxxxxx> >> > Suggested-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> >> > Cc: <stable@xxxxxxxxxxxxxxx> [5.4+] >> >> This patch is identical to "mm: thp: grab the lock before manipulating >> defer list", which is rather confusing. Please let people know when >> this sort of thing is done. >> >> The earlier changelog mentioned a possible race condition. This >> changelog does not. In fact this changelog fails to provide any >> description of any userspace-visible runtime effects of the bug. >> Please send along such a description for inclusion, as always. >> > >The locking concern that Wei was originally looking at is no longer an >issue because we determined that the code in question could simply be >removed. > >I think the following can be added to the changelog: > >----->o----- > >When migrating memcg charges of thp memory, there are two possibilities: > > (1) The underlying compound page is mapped by a pmd and thus does is not > on a deferred split queue (it's mapped), or > > (2) The compound page is not mapped by a pmd and is awaiting split on a > deferred split queue. > >The current charge migration implementation does *not* migrate charges for >thp memory on the deferred split queue, it only migrates charges for pages >that are mapped by a pmd. > >Thus, to migrate charges, the underlying compound page cannot be on a >deferred split queue; no list manipulation needs to be done in >mem_cgroup_move_account(). > >With the current code, the underlying compound page is moved to the >deferred split queue of the memcg its memory is not charged to, so >susbequent reclaim will consider these pages for the wrong memcg. Remove >the deferred split queue handling in mem_cgroup_move_account() entirely. > >----->o----- > >Acked-by: David Rientjes <rientjes@xxxxxxxxxx> Hi David, The changlog looks awesome to me. Thanks ~ Hi Andrew I see you queue this in you tree, do I need to rewrite a patch with better changelog? -- Wei Yang Help you, Help me