From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753722AbcEWNx1 (ORCPT ); Mon, 23 May 2016 09:53:27 -0400 Received: from mail-am1on0128.outbound.protection.outlook.com ([157.56.112.128]:5164 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753270AbcEWNxZ (ORCPT ); Mon, 23 May 2016 09:53:25 -0400 Authentication-Results: linux-foundation.org; dkim=none (message not signed) header.d=none;linux-foundation.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Davydov To: Andrew Morton CC: Johannes Weiner , Michal Hocko , , Subject: [PATCH 0/8] More stuff to charge to kmemcg Date: Mon, 23 May 2016 13:20:21 +0300 Message-ID: X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: DB5PR06CA0038.eurprd06.prod.outlook.com (2a01:111:e400:52c2::48) To AM3PR08MB0579.eurprd08.prod.outlook.com (2a01:111:e400:c408::13) X-MS-Office365-Filtering-Correlation-Id: 0815cacc-7038-4f1a-9380-08d382f3e201 X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0579;2:GXFikDEDNSvxQky8MJN0RiAloPrQm65pfNMCbv+iGvRYJ+Z1sl7w/boNBoHUtpfY0xpJC/VMPTaxF7geZVe8/KVNzhFKQUH8+3GrjnDD0PeVFZqz+sUg2sc2SAdgI7OWrrE5u+dGOJHY+bfkF+JCw7/MFEF5myPfmkeo8GWLRXR7KwcTPwBN5iHCJfOxcZwa;3:0qLs9rNpxqWMp6X4cgFGR4M9UXihA+/OCwm3mcyy1taq8/NobxbLGJ43jkCHYTvhadY1BcxuMcfytmajffOnk4d5WzpwTIdf2Gb3NmkR1eQ030F4l+ekncQcoJicpOI+ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM3PR08MB0579; X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0579;25:JQzrT/TxkrPe3yrmu8Y6WvC16SN0TxI7IiZ+BqICUKSTcxkHQMyX1+UFI1dvgqFu+P+nXT2GfQq5LGbW3fuJvlTblghrxul+Nf5W2Iz7+F9D/lDx+L+uX3M4Bi62GusktgUeXqA/ILX/wxxkAb5ffrbZ2wqg/y1GxOoihZbeRpBoNQWBHUOayziVYqrgNIZB/sp7SsG0mP/IchObtQrpXftKC+EZM2kOcgOtnuBlvprbo7byalADDK1lbyVFbf8N5qizNqLrLtiLKPzj2OBUy2Gfgxa8/oR5N+J0Xf1vRQ64SY6eFtMIuvU66ukN0TEt7R0O0YW47eylYYlo/e+MxETNShd69RkuI/UbTTKe3XgBcR2AOZJrrwVXYtMeTsCE7pxq/8GFckMd7+ywGX6BrVnE5nCdmdzWkB0qwdu6YEAXfcEK+9YJs5/CCr6nGdwWLULqwSVF69fC6I9kSJi8w27mmS5gnOIrWuEUxC1ub6yd4QDzZqmTNq6Zh1YPaeSjZaWGk8QGySQxiQTVEsM6IbXTehRuTdyOhGyi9luB6PgCZZVHXiSAeNjgWU2na1UOSzpCS0Wwz8z1mtzwrCKiNhMwUtk6AlwYu3xGnm/AOjd4bOkSRrIb+cgfwU78AjOCUELYV9aIVPu1gRR/9suWtg== 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:AM3PR08MB0579;BCL:0;PCL:0;RULEID:;SRVR:AM3PR08MB0579; X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0579;4:LZUAL3mrAZoweADlseiCdd0E4jrO8AwlelYPHIr9e05zPpzmMSS2fXFpZ+NL/GmlnaFWj08D9sn6nf98RszMW3XpIDNEnZaY6TbXRlX6ywY+aBlhwJtwsGIbAciZykGZCjO9m1e+BCx6tV344E1JnPuxkXwA4oRwEdvZbG+0egaZgi5PZMUr7MuWK3pKuPt//4Cspa1F++a885N/n7rHEDvBiDNOp9p+AcDdcagobwJXtw6jQa781ayrA662sIEFiuoPtL6IOAJP4gsC4oI6SgfDdNqoLs03bi+N4uW0+19y8uCenPOy71nAkrBM3yeURHz3VJ/di5brwKWb12k7klw+KQLuSdd1Vu/zAZ8Q0nrgMNkcGX0BYQ4JsNBwHHgGOcPoGGbm2P/tDboxs23VJZ10vFFifk7fybydRGpshQs= X-Forefront-PRVS: 0951AB0A30 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6116002)(3846002)(19580405001)(8676002)(19580395003)(586003)(80792005)(36756003)(42186005)(92566002)(86362001)(50226002)(110136002)(189998001)(4326007)(2906002)(81166006)(5008740100001)(33646002)(66066001)(229853001)(47776003)(15975445007)(50986999)(48376002)(5003940100001)(5004730100002)(50466002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM3PR08MB0579;H:virtuozzo.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0579;23:UmMqtG34Akg01ucdTvxDkN0ylsMIbwSgm8KyE6RnW0yjfQfZTZ6iAar/Rq1KB2ceAycC7lYaA84Wt5W/ispWDjEEGlXFwQLOArHAYpneFgBd8qm2zqxXCNM3Nc5+GGEvdaILRngUR/ZPpkuoDZii12JdjPU8YPTgCA9xF4LmeRzZgEX6YNyhwi+Bc4bi8qGVrS4TtfwFIhDceAUUDBb0UjOmT8ZdrQpikzjQGnA/Co8IUVkAlo00PBXfBePyjoX9xT/2KWc6MALbTq++vlbZtahZjrgxFO6fUDybStMERBJmeHyXWMSSWceE/YrNP6QOBBwM9amiH+5SvCI8vKcmT3fmjdKzJXIEHxIEF7DIR6UKO+erSyyVX8dOcENcjrqMbTKninMUVEbGfZZPyEbVa4yi7dTNAqInlzSHuzMmen/hFOcu7s92wc0N0A4u94MMxRIDw5yfvh5wE22FDsLSoIojygOzOwaRijTN6BSyEUuONb/itwjpZQv+QSblj3R8CMu6s8LvNEMzWtG2EBeRZhI89rZ8PpxC8UHWQia4srFItepxByF+VMTyYp0S7ir+WOIPfNLbiXrIafTASn+53V/2Qt7FrP5MTWsbdqttTZrUpL7T9InN7T+EyBaPB0M0bg8TNcmAaTsHiPKJK2C99U6kMNJErt8NszVOn28fSHuAMtseV8UJYxY0aBqPb9WX2iErpgK9aYfcLh0bzN976fP8+DArAP7YhtkGF7BNq5cDWeUUTLZiTRPL5s1mexuUmWFBkFTyXbM6BrDR95dNkYIBkbL2RDkuRFKBUXi7nueJ9uDkiLFheT5gyKlWQmfGIcH0FoRk5E1VqHjLw04CW4ZLBPccH3g3RjNQ+WX6MlE= X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0579;5:hZ++EtMzDvAywBxu8z3SRxIzvlrpYTMlxSQe45CVvF2qBF340tqh9Pwgchu23GJa2OOhzRzipaOQF2oqvTcvamtq5qK1lEVjQJ27iLhwxyYyQMZzeJ0MP9ZOOlqXSFftj2FIkP0FcrhiJphAvK9pLA==;24:8IudavfqtX3a5PY6PdETtPEkh75Ib3/X+YJmzDP2fw4WHUBlhX6WguvQ5h4QUEHco35mSroPmYOyOtkhD5MkJtWov32y+jBlgD8V/0uYb2g=;7:DT0/AM+Zxbw1gibOgYqozvKApWVUsFOcH/RqBsetORCAIunfXtIVkRDGhTF4k3TnDpIjG8payL0k6SjzUOUUsSVuVjoiB4/REujuf1MpJm3F/W+Gr/dqM5fP+me1Ws5X4Jfxf8FrA9iVLod7GD+9d2gjXdpDOycNRkLLFTg0jWv3Uxzh6cJleq6ulKJn5iXW;20:FBDUSvsyN8v6Bhqy2kTa6iZcXoZO2CMjTvX0ABxL0x997GYBGb8o8yXgQh37FxX1VVHlTHfoCeEnTrNxRUunkjEE4FCsNGd7T5SuQxJds7c8mbLz3cvpo7/U9w7UeWfV8PaFG0mMDT1wkZqmOB4GBldZ+UNDGRiadZeHIeSB07A= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2016 10:20:36.2758 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0579 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This patch implements per kmemcg accounting of page tables (x86-only), pipe buffers, and unix socket buffers. Basically, this is v2 of my earlier attempt [1], addressing comments by Andrew, namely: lack of comments to non-standard _mapcount usage, extra overhead even when kmemcg is unused, wrong handling of stolen pipe buffer pages. Patches 1-3 are just cleanups that are not supposed to introduce any functional changes. Patches 4 and 5 move charge/uncharge to generic page allocator paths for the sake of accounting pipe and unix socket buffers. Patches 5-7 make x86 page tables, pipe buffers, and unix socket buffers accountable. [1] http://lkml.kernel.org/r/%3Ccover.1443262808.git.vdavydov@parallels.com%3E Thanks, Vladimir Davydov (8): mm: remove pointless struct in struct page definition mm: clean up non-standard page->_mapcount users mm: memcontrol: cleanup kmem charge functions mm: charge/uncharge kmemcg from generic page allocator paths mm: memcontrol: teach uncharge_list to deal with kmem pages arch: x86: charge page tables to kmemcg pipe: account to kmemcg af_unix: charge buffers to kmemcg arch/x86/include/asm/pgalloc.h | 12 ++++- arch/x86/mm/pgtable.c | 11 ++-- fs/pipe.c | 27 ++++++++-- include/linux/gfp.h | 10 +--- include/linux/memcontrol.h | 103 +++--------------------------------- include/linux/mm_types.h | 73 ++++++++++++------------- include/linux/page-flags.h | 78 +++++++++++++-------------- kernel/fork.c | 6 +-- mm/memcontrol.c | 117 ++++++++++++++++++++++++++++------------- mm/page_alloc.c | 63 +++++----------------- mm/slab.h | 16 ++++-- mm/slab_common.c | 2 +- mm/slub.c | 6 +-- mm/vmalloc.c | 6 +-- net/unix/af_unix.c | 1 + scripts/tags.sh | 3 ++ 16 files changed, 241 insertions(+), 293 deletions(-) -- 2.1.4