From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-f198.google.com (mail-io0-f198.google.com [209.85.223.198]) by kanga.kvack.org (Postfix) with ESMTP id 4E0A66B0253 for ; Mon, 8 Aug 2016 14:38:04 -0400 (EDT) Received: by mail-io0-f198.google.com with SMTP id f14so251979558ioj.2 for ; Mon, 08 Aug 2016 11:38:04 -0700 (PDT) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10090.outbound.protection.outlook.com. [40.107.1.90]) by mx.google.com with ESMTPS id d130si15135523oif.127.2016.08.08.11.38.03 for (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 08 Aug 2016 11:38:03 -0700 (PDT) Date: Mon, 8 Aug 2016 21:37:54 +0300 From: Vladimir Davydov Subject: Re: [BUG] Bad page states Message-ID: <20160808183754.GE1983@esperanza> References: <1470417220.13693.55.camel@edumazet-glaptop3.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org List-ID: To: Linus Torvalds Cc: Eric Dumazet , linux-mm , Andrew Morton , linux-kernel , Minchan Kim , Johannes Weiner , Michal Hocko On Mon, Aug 08, 2016 at 10:48:45AM -0700, Linus Torvalds wrote: ... > > [ 43.477693] BUG: Bad page state in process S05containers pfn:1ff02a3 > > [ 43.484417] page:ffffea007fc0a8c0 count:0 mapcount:-511 mapping: (null) index:0x0 > > [ 43.492737] flags: 0x1000000000000000() > > [ 43.496602] page dumped because: nonzero mapcount > > Hmm. The _mapcount field is a union with other fields, but that number > doesn't make sense for any of the other fields. > > So it's almost certainly related to "PAGE_KMEMCG_MAPCOUNT_VALUE". So Yes, it is - my bad. The thing is I set/clear PAGE_KMEMCG_MAPCOUNT_VALUE for pages allocated with __GFP_ACCOUNT iff memcg_kmem_enabled() is true (see __alloc_pages_nodemask and free_pages_prepare), while the latter gets disabled when the last cgroup gets destroyed. So if you do mkdir /sys/fs/cgroup/memory/test # run something in the root cgroup that allocates pages with # __GFP_ACCOUNT, e.g. a program using pipe rmdir /sys/fs/cgroup/memory/test Then, if there are no other memory cgroups, you'll see the bug. Sorry about that :-( Obviously, the PageKmemcg flag should only be set for pages that are actually accounted to a non-root kmemcg and hence pin memcg_kmem_enabled static key. I'll fix that. Thanks, Vladimir -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752452AbcHHSiG (ORCPT ); Mon, 8 Aug 2016 14:38:06 -0400 Received: from mail-db5eur01on0090.outbound.protection.outlook.com ([104.47.2.90]:52672 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752214AbcHHSiE (ORCPT ); Mon, 8 Aug 2016 14:38:04 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=VDavydov@virtuozzo.com; Date: Mon, 8 Aug 2016 21:37:54 +0300 From: Vladimir Davydov To: Linus Torvalds CC: Eric Dumazet , linux-mm , Andrew Morton , linux-kernel , Minchan Kim , Johannes Weiner , Michal Hocko Subject: Re: [BUG] Bad page states Message-ID: <20160808183754.GE1983@esperanza> References: <1470417220.13693.55.camel@edumazet-glaptop3.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-Originating-IP: [81.5.99.64] X-ClientProxiedBy: AM2PR03CA0034.eurprd03.prod.outlook.com (10.160.207.44) To HE1PR0801MB1865.eurprd08.prod.outlook.com (10.168.94.8) X-MS-Office365-Filtering-Correlation-Id: 82d2090e-1df8-49e1-5257-08d3bfbb1f6e X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1865;2:wJAYs34rVxFssXsV1gTPLrZxELivL9O5c/yp20lgv8/xTcxf/Qm62gNb8tNYDtl1WLnaWk9r0QN/4qvZFBGPJ3CqcAfpq+BHMCqUlxWABGNGkjisxrfd/hx3SNYnDWN6K6w4WQgcNrbTvCNUSbpXHjzIJDZQqhJKlfwo9drCV7r7Dx6wPhHHqjAWiGRLpD4s;3:TTWBl5xKQcJ0TpLSqp5Q9NwWqSqQ+fcE5ywqqlBu6j4uwbt+8ai+JeuKcr/gfy7H4i9vZAah1YBg04DJgf19vbIFlyHEi25B+pXK4W8bkK66SjIv0fCQ2QAUQSt7hxx/ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1865; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1865;25:s8MUFvUdXb8dhJb4qQ2FLszgHd3bta9WRYCvVTXaxJSLta4Yc29zsgTG2W2tw/2dz/74hum6VsxO5RnZjxynK61meD9OIuoA+Oi+6tLeHrSlN1dxaWhEyLEq6s7HLjpgbsEzCAM/hfNbAXVF2QmVGwXOIPcVk6t412zMVt6bEjxgvDo3f695SYFHyGWXCRYGqS6Rq09mdd87iqsLtdZ1nUFgstwyLW2czMSX8RUQ60JKUCryD+8Wf4PhraYttNTuy0ivG5WFbqSYHMuHBi8wIidvvt076z35iDtdH7d1kwIKmmnFodR8wPaujlAecZc1JTIZsFSW8Vv6XXhwwTIq15NnJw8DlYeuFEVSH5SLww1PmUsgZocnnV0SjTKytEZg1Wx4q1+qGSgqSE5B0CZd5pmlp1/mSvdi2dmS5Gt3RpE8KIHraORcDzbwoXjgREcy6vCpEfbCoSKkgfpxvn2yw1gqQ7BS3DaqelaJoOqo2gpDIuj06SXToQTMikB7+HHwOjZsU5tXrZDgOQF05A6qiuExFLtPV9wl6ltF2g4lPyX9ERdGYyhfsGqoHhRFLbqHVSXrO6tkUoI4/fAvxJxbEk+OhvRknF3mpci/8lorf93qXKVN/g6D7WKWeRcQpWOrsjbiXhuECLXnpMiBzbIWj0VHcEzSCEQOYF6auOiIE/hkAHxNnALr3oekxmDBV3zd49HZFcig1WFNJIu1QBnVfg3ahxxwPSDVXlUH/mwoF5Y= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1865;31:S1UCNLyemrQHaQxuMn2vg3NVOze43ZVb1n/s2BJscCrPddmAdLwZRTPHdtYOVAh0j5+tEzh/f/hQTnaDah0OMzo4J+DWDbSoZOM9z0aP7mIibZL+JgRfdn7EtxiQTPyhq76r+HMk4nEFJVcdS37oNlAstq5FwqZg2WkPYEVzEEaow4HUCeQ7KXk6P+MLuldwM6Fby7Ta5TwrXpV297kQzYrpv9xhJ3tB8eylTgmz9sU=;4:PYvKeFgVKj3K6mzIpg91DWZgeWauMl4ZACziC47JgGSx1sODQp33cO8cH+k17QZpoMNDz0euTWvAOoqZDUXSuCPfodvDqokqCq1xb0FbtmLR/+EhaCr0Tu4DQOQ+nN371akoP+Vah55uYaulyZw8JUAi5rh6Alf+t801cvRg8jBUpLacHx2HKEybAIelGc+rkhTXzEXmkEWKGOku7S7VG8Nv56HoJIzX1ug3uPoex8w7KOfwIlfC4d5k+lS+ZFg9s6w+g2yS7SogivE33lm3os7CHlNJ3niN8DyBe6WxUIEZ+kXf+GfFtEfpmmXMwl4dFmIqjLME37cpA0iPCKdBzV6h4KfwisxWLo8g3O98JcF+jWd42/dd9Jpn3KAFpwsD7+GZwcucPgTniWWC6IFyMT6+1sbu/wi0+EMBJoA1qs0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:HE1PR0801MB1865;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1865; X-Forefront-PRVS: 00286C0CA6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(24454002)(199003)(105586002)(189998001)(106356001)(68736007)(575784001)(50986999)(42186005)(7846002)(86362001)(7736002)(54356999)(76176999)(2950100001)(50466002)(33716001)(101416001)(81166006)(4326007)(2906002)(586003)(305945005)(9686002)(46406003)(97756001)(6116002)(77096005)(3846002)(33656002)(92566002)(81156014)(23726003)(47776003)(66066001)(110136002)(97736004)(8676002)(1076002)(80792005);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1865;H:esperanza;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0801MB1865;23:Sg4rQ8UDnSxTA7AdPq5Bm3mL8dJYNjMzikkszPq?= =?us-ascii?Q?cc/65aZ5Z2ieHYPf3doj3gpXj49a3d0pXPjA6QgsFlB9eTO5oTaHh9YKaVUP?= =?us-ascii?Q?zqZ6LAB+VM7oborZEF126IBSv5uSpb+9PvnumnbliHtguFgAYS3gSEkjoZ2g?= =?us-ascii?Q?kABFIHEyE7DKJUHKkiv5y4wyUfhdgz3cltfmAnHGBC+mRd+rIMbjl4Snhox/?= =?us-ascii?Q?ANnJu7o5ueZ9D5nws20fnB6NOQuGS+YLZNLIdksb0axdre+/MclXOLOnMvo0?= =?us-ascii?Q?Ru58T2rIM+CRTG21j+dfK7WzYekUv8yDfY+zuXxYvwv01CoivCvb1ACGW6cP?= =?us-ascii?Q?bQc8Q6vxET9x5YyUa9S/2RsigGmGJ+4OoYSopQrHS3oCmyVWEJGmWfPGV4B3?= =?us-ascii?Q?kHNzLMlTq5lJZhNSlIiRiQ5/Y5+CAzGtkBBXks2bW8S2mmP5ijG031QybfQU?= =?us-ascii?Q?kWzt+6WeoUP7Gb4ZyqfdOfuUEdh6flPJMQraXBkX+aHqkDtZH/pKnQD+BU5k?= =?us-ascii?Q?CL7Q/hYmtb6TP9Li07oI7IbJ/pTPqkO2rgM7YiiIWBX2bxnHt6a934QEDE+H?= =?us-ascii?Q?KFyLDs1SZECg7uVzMaqfgQoV4iHeoDi98YR1WakBb50w0TXDZwbCHv7HK7s4?= =?us-ascii?Q?PEQexjFPS6gRRwC3kT2ifUM6lp3kTVVidd4/P/8lIqQd3kcBJtF1c2Qy0RJa?= =?us-ascii?Q?ieVx8n9JEKpoMsE2Opn/8MijVyleSyayjQ3aba1eELnm8ZGCMWU0HYNG+8KX?= =?us-ascii?Q?8PgUwbG5gdZ5ZqlbXn3B96VeSvm4f/s0/3OSdZQ1XDmnsti9gO6gdmg7roD+?= =?us-ascii?Q?FyihyrLpveIBo0anF9afgRbK4uf2Ww6O+utyn3xaMHohZfrYyI5qA++sFCTs?= =?us-ascii?Q?3XA0VeKA+dxBjBab/0OxSOq1H/+FJwHwsQNf4uYqsEMhbuFGmgJtdpee7kqV?= =?us-ascii?Q?2r0C+ASj8uB1Dr6gN1rGoJjhOn6bsO0SVuXG4wdZqn5c87G6w18RkrKwq9tk?= =?us-ascii?Q?NHxc2g560v9TK1pC/Jvwdz1Q5eMJtPJhmnIkMbCBl04lSw2XoCgSmwBuTVlw?= =?us-ascii?Q?9YfletY8kfpCqiILzXNMPj7HlI1r4+zy0mabDyCfXqzsw3u35qQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1865;6:X62ok5jw3VbB9unVYBOfcVMlLk23bWjbiK0V46FnyMhdTEz++WH4u4Fhg6nwkncJnnmmtrQTZCiqXvo4up0FddEMSZySktQhSlS1dp3ggpOsgzXIxnHheSy2fleMSM2DCffbf+RpvaqfSjGDu5KN7NwKtesqhG8+2Uggmjump95SHN3j9Rr3gL6ZtyzebZdUr64zzj8F4MXV2dRYTRo/VRnCeBPYJz7QzgU+65GXn/bn87/NMPuhb6MG4HwNGD2PFSGx7cT2whhwoKfoOvXsTDgpB/JNZwn6tuOzpskSVlrJ84KtmeyTZOVjdcVEooMX;5:F0rr/NMoUcOlW3RahwuLiRiYbhoKqOdS+cqOz1NWZwYoPSXT9v1qiTIJ714cQD8b2QJFc/0PUHNHtHNCuo+QR27fvMx/siGC0JgzKu0AuQRGasoauDsmwxAoeZBKbkXIMA3en20RqOHjVYYlKPL21Q==;24:qncYTWDZICepZhDHcoA2gdLQD98G+M8jD7kmXxEeqdESgL09NdxF34VVZfHI8kNw6lvNDYUTltXuflw01xIavi7fa2x6xOhYkmS0X6InvAM=;7:8cnsjB7xyzELz+dzAFtLLe0ch7haoNPl+kaGaOB8hwPfLNoxdjGhJsuz+N6/owrjSQGRi2JMEio3tSvKgh6ndU3n1rTmAsBFNamBtpdnWHxB8NQKjmvqhupeBr/I+QTDjs8f0XF8AmjpPkcFjDPS9u7aiwQOdcrVoy9qJNfe4YUU/qcihP+PMuXLvLDzceeYvOoyTlwEmUGDL8aESbAjW7OP6nWt/d0U6pYh0hJHFat73kxF3Kcz6vqlDPBWzkRP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1865;20:4/2qprijmaN5ip2M+3k8TPxQDjPfo8iBtLmdJCiKGqrhy28LFE18zGJ8XyrTAV1V5p1SiAMMvTcOpQqUnV2gfF9ss56DQSd6apAyKK8BGiOY0FrHxlw5CQ7hubQrE+SD/CHmzLxwbUIy0lxc1gGRYHzA8CKz6+Uy9y4NYHq2Lfc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2016 18:37:58.8268 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1865 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 08, 2016 at 10:48:45AM -0700, Linus Torvalds wrote: ... > > [ 43.477693] BUG: Bad page state in process S05containers pfn:1ff02a3 > > [ 43.484417] page:ffffea007fc0a8c0 count:0 mapcount:-511 mapping: (null) index:0x0 > > [ 43.492737] flags: 0x1000000000000000() > > [ 43.496602] page dumped because: nonzero mapcount > > Hmm. The _mapcount field is a union with other fields, but that number > doesn't make sense for any of the other fields. > > So it's almost certainly related to "PAGE_KMEMCG_MAPCOUNT_VALUE". So Yes, it is - my bad. The thing is I set/clear PAGE_KMEMCG_MAPCOUNT_VALUE for pages allocated with __GFP_ACCOUNT iff memcg_kmem_enabled() is true (see __alloc_pages_nodemask and free_pages_prepare), while the latter gets disabled when the last cgroup gets destroyed. So if you do mkdir /sys/fs/cgroup/memory/test # run something in the root cgroup that allocates pages with # __GFP_ACCOUNT, e.g. a program using pipe rmdir /sys/fs/cgroup/memory/test Then, if there are no other memory cgroups, you'll see the bug. Sorry about that :-( Obviously, the PageKmemcg flag should only be set for pages that are actually accounted to a non-root kmemcg and hence pin memcg_kmem_enabled static key. I'll fix that. Thanks, Vladimir