From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751195AbdEaQaC (ORCPT ); Wed, 31 May 2017 12:30:02 -0400 Received: from mail-eopbgr40124.outbound.protection.outlook.com ([40.107.4.124]:21461 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751029AbdEaQaA (ORCPT ); Wed, 31 May 2017 12:30:00 -0400 Authentication-Results: lge.com; dkim=none (message not signed) header.d=none;lge.com; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH v1 00/11] mm/kasan: support per-page shadow memory to reduce memory consumption To: Joonsoo Kim References: <20170516062318.GC16015@js1304-desktop> <20170524074539.GA9697@js1304-desktop> <20170525004104.GA21336@js1304-desktop> <3a7664a9-e360-ab68-610a-1b697a4b00b5@virtuozzo.com> <20170531055047.GA21606@js1304-desktop> CC: Dmitry Vyukov , Andrew Morton , Alexander Potapenko , kasan-dev , "linux-mm@kvack.org" , LKML , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , From: Andrey Ryabinin Message-ID: <80f2f6f7-0a37-53dc-843e-1adbed4377fa@virtuozzo.com> Date: Wed, 31 May 2017 19:31:53 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170531055047.GA21606@js1304-desktop> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: VI1PR0501CA0021.eurprd05.prod.outlook.com (2603:10a6:800:92::31) To AM4PR0801MB2721.eurprd08.prod.outlook.com (2603:10a6:200:14::23) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PR0801MB2721: X-MS-Office365-Filtering-Correlation-Id: b42c1778-0cf1-4ba6-0b3a-08d4a8424679 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:AM4PR0801MB2721; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;3:QzabbDjKfhoqUr8Rvn6ORI2B/ANFMpqGBhllChta91vKP8wyDc+sb62oppsnQfxNVvk8G6mWoOZUq2tW0LjJQD4+w6uFeHofXJStDJk/kEh2heGOgfE349YhXxRsRXvXMM5D78yQdK7OVFi80xc6/VzFuF3VIiLMLnzwPV7621gxWivCbjcxKYpSv7KObSSbC3OkxuNjieGaZCPaTR2n1t+UIUeuUmUhL0QmXdNUpbN8RBGyshcmREkru4cAJsGHfS4GenZdMGN+yBMMa/bIefMjrScDPvHmnFIBEtubLkUPnlKDP064PKnMk2QtRSoKheOzgjKKyEqScV41v4NtpA==;25:1sxk9W1liEAf9BJD8sz4PV6+7HpXRqgpyBtN7w4I+9wQWGRZxqaLyvlorBA3u2PHtBVUai833EoN/prsbmKA7ZZsGQu2Wt1yMHH5LWifqEjISWSUIhmBY6Kz19yAZTMi6hSJfAFeFMDWRNX85fsfpBeOl36+J9NHHULWD9meH8F+1LGHnARcksAFTRsHTDMPB2ECpev7olVaj2LwGOOSnRWem5HepV97DKRrnYRJeym2gD2bAFO+wWOi0qq909Oh95NVIO4ypiiDl+HwKMWGCwvsQCg2EjeCp10fRRwvkomaIvhHTK6PyS55lp60KHYyzSz/OUvUXYyJU+GAn83Q807p3D301szNsqgdtnbTu5NhVjTXwO2ZxVFQXTHNQ9NA9ztyUEWGAhcjZAFlKom8IhZ+i/DVS4nF79P28wMR2RI4tS/IbXyvlp1R3lmG/CVxLrMVVqct6STom1Y+kmLRO2y5NDuNSIW8O5hOAZRdlcA= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;31:5r1bd5a5hAizaZdot/wRjyUzZ3bMcYjit0nbBw45bplAPsGR3sqjqkkLRdGlOEk+4RzL5+ZLy3f/mvQZzgWUWsa9tr4Pmyyr0WLmQrMYtpMH/GbE//s1/6HSdvHi0J93R+z4+sgEm0Bou+wKX3FixjnsPmNW6CjzSjD2IPsS4k/gDh58I7NMeFCfgEWQ16vlvEYjg3DGF8oeJZNgUNVSDm1Mze1tsOimarNhuH6zkHuemKR6uYUHOxMkI/7CvLJlE7cZAu6jCb+ScgHhbjOiHQ==;20:VZ3n5tViw70WlsGTtTmUKrvAc3UdB71DlTTUoqfBHolMps9Na1zV78GzFe6OJkmG1eCJFD67+0ZxdemkIcorZTgOe04xocUJsRqxG/qT41HAMMPN6iJ2XPLv2FgJziUBqrDehubXuop+3FIIPnYvcrIDzoWZgKm7hDlcT+0T2S3yZe37LsOS5JkQOg+6pHbG4O7uoFlmXU1dvMTqngwD8JB74ykyhpj7YFbdKcHHmAGnrA+1WcHqEKhYjuh1zFOjLmOPoZfzjmEyUeC2s4O36NS01rZoePgD4pJ1wW7003vnyQe8MyDuf9tHONrSvglRnOV+0lm+zYyYkKL05JzyCul5YMxxZAl/sfZv5lPYn4nVc1PW6GCKqAKzMcjs9LwS0SBRz5W8KjJPus9V9ZRH6aHjhUVIUuGzuTa5dmOcCy8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(228788266533470)(211936372134217); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123564025)(6072148);SRVR:AM4PR0801MB2721;BCL:0;PCL:0;RULEID:;SRVR:AM4PR0801MB2721; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;4:e+UVBr44H4SvSBThulumeGiqX9yOXkysNmWxhp6Mcb6Pg0q7WxzNbzkacnf+urL3lFCmkFeYPJA6F2Owa8KXJvvI+5s1STmFACKpez9IzSv1IZI/vIAzK9WtFosQ9wmq+c3Z9sus6dBb9CdE8vcbywQ9tQKX7btr+UfN2Gvjz1pv04EkeRlOpQ+B6hCuFQi7pkhhGn7WIUjfyCv5y934CAFqbBz6q9RGeypcdm+fhXJB0uGMg+Tsm4aQDODROTywnFv+QIf3VbTabocWXPv5uYA/+ong5fYh1zPbJopBRPBHCaToHqGTcro9gLYEIc52DiaOpAG8tTMzasrRLe6S5f3ZS4SNf8xXT0wi378shQLdS5T/QJVnP46J18E0BGPPKfw2QHU0ReflVUtM2kITaBzKEAzH+J7s3D3tnit7zwAeki9v3mfgxJUY/sFmBjhu74EkkAOUZthN7VAKhKW8MXO2ouTpiQe3xehsVqJjwQ+z0ZI0Tmv4sVYGCFAHrVL9wjHXHQErSIBGRy45Wzw90hlkHsID/yCrXjSXedlWoNdsb5AfyNcCEFe0EnPiVyxOpKcM77HJsBfff6Ir+e0Pvk6m4LReaMMfo5t7BfWYAb59SP4E3WD0mOzN2na7KlXRnkE/p7feREtid1VRKSxW2Tlt6P3hnlqwJhEqfIIbFURP+9onR2g1cj/LSHGmufVikksWA04Gk9HqFLJvdJb5VvUZHXpF0ZD0JFPoZZeCLVdMPzNFO9/U5vvya2UumFU0rvZFIxixBwbnyXxDFY3CmsZhnhvrbNlvtT9cz+JOj2bka+I2oqVkj1lNS2EMbf6THIbnmzzKF3NsgrNns4T78R00lLmBYpf6q68pkIs1npFc4YA60URlo6RspdC7haX93XcWK/uJOeTXA5wzhPIYEA== X-Forefront-PRVS: 0324C2C0E2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39450400003)(39840400002)(39410400002)(39400400002)(377454003)(76104003)(24454002)(230700001)(966005)(478600001)(5660300001)(7416002)(77096006)(1411001)(6306002)(229853002)(8676002)(6116002)(3846002)(23746002)(6486002)(47776003)(66066001)(83506001)(86362001)(31696002)(65956001)(54356999)(50466002)(33646002)(38730400002)(7736002)(54906002)(53936002)(76176999)(4326008)(6246003)(110136004)(50986999)(81166006)(31686004)(4001350100001)(189998001)(2950100002)(64126003)(42186005)(305945005)(53546009)(93886004)(36756003);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR0801MB2721;H:[172.16.25.12];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AM4PR0801MB2721;23:Q4DwbQd+DlgVdkNQjeg7RXuBtUl3X20ocNg?= =?Windows-1252?Q?Fw4AEy/GahsLM9oYEGcWVMbn7y9rMtC9f2rZ0D1kRGnEMRzp9gu3QqPZ?= =?Windows-1252?Q?tKzZY+sSyKPh21Z51AadxrZiMr3SvG8gGvvWqWJysNh/ATsBGx6DqaYx?= =?Windows-1252?Q?as88euwp51Q1gvsDdtzBzS4vScHwho7yjhw8OhBYIBNQSrzafA0UWu5k?= =?Windows-1252?Q?SK3/gp5/xpujbVXWXyjmuJpbHNAGgWx0dcbemrbiafFig2VU8GYkRi5M?= =?Windows-1252?Q?wa7g1R11hwqMt2C+0BvYZZJpfsjPx2lcnUGZC1SWy+4FnqQM3UvhOccX?= =?Windows-1252?Q?dCzHpzN929Y/CEAYe4yvOA//DhX3WvnV7QA92FyVLYOeL/9LbtYYsFvX?= =?Windows-1252?Q?ie+k9OYg3H9xY1zB8z3SWCwTki9xTzkQgsERGZOb+hpOCS5nYCBpzLqp?= =?Windows-1252?Q?GgqwRSN5+E+LuKRSwEPEZVDFNB/zWYNAWdN4SAmeFaeql3Glw1VhB4IC?= =?Windows-1252?Q?kb6Ol768iTGOCnUFrNItcXQ6JCYHiNFtEL/fhG0soN9aNBZswhP0RZH4?= =?Windows-1252?Q?nY8RoglYVbDuPt+qrBLPfbpxEnUh60nT0a17f+Vb+2yyWRe5YHvfep+8?= =?Windows-1252?Q?HOifRwaNzI4FvJwCMKcDBaolc2K4DJpRM964hlEGXAguhsCavIq7Gs4l?= =?Windows-1252?Q?JZYYCFNo8GeTEJxn70QqzQ49wsBJ+ZORq7OKpXevVbKJEEqLgMZM85hT?= =?Windows-1252?Q?VpAIu8oNS1sADarmdNL9e8vc8hNOr7Wi75T2gffCeHkQ3y+HfuTzZgRk?= =?Windows-1252?Q?hF2poC+XtJkPHaopAfDIbo6MLPlLHus789Zko8XfF0l/qJg9fX7o3VT5?= =?Windows-1252?Q?J4lV+xe+odNZVyKvObxi0oKYJSVf49u+rPIIJaS7G5HnjFlgHRbRl/K+?= =?Windows-1252?Q?RMIm9kGgNIDJhauo7qbV5+EefFt9h9+Lt5RKmg1TndPRF1FbqezcXDWM?= =?Windows-1252?Q?tolQOH/omzvoP9xzCIhTZtdBLC/gq7cPUe4K+uGjX6GRXsKOLwhNU1fV?= =?Windows-1252?Q?DJcNtVgF+E/+6WNry/ooawC3e17iWGOZ4033X34rq38hlKbwNkmXzXNG?= =?Windows-1252?Q?L+pSZ7yJj/Q0r5Yx/mlG686p1d6iVov57cWjapO1z6CBzYsNEwNmK2rf?= =?Windows-1252?Q?Pcmbdg94F7a2AJZJO67IF4ZAt5J0F5H1agX0wur/gWfvDIXbQrhKv4fp?= =?Windows-1252?Q?hvH2iOmvQnswDlHFApeXAd5BXaWfcs6zc3gDBzBp/EYKhnT69Q6YNNBY?= =?Windows-1252?Q?CDpnWFQlJl28DEUS7ojY9rJqy/vpAGavVE4wsl4X3ZUoSe8VPM4anbOA?= =?Windows-1252?Q?t6VnYwGb15UpgJz+LGatE+4U/PreDfnv9fg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;6:Nf148nC1w6Wx5BPE8iW/8FlR9MMJCBkK2MVxGehYTXCQyi2I4EFvj1hMSTNuwR2wiEB8DBSYU2hnuppd2J62pdSqc6IaJEUlBiwRSWASLAUWlnK2cHJpsk5aMJjsYCLGLLLQCexAVgFvThXkunJkzu3w7EroRWlZKHLtOqlkFdOuH2nXx/JHpNxpLk1uhNGHia8il9bjgZ4w7phL9kuK6zCM5XravF5qIHgXdWU/ztu2ModaNXHq0NUy3BCCajasxFV/y4dZdXQs64PctUmc0uZ5tv8aRV/Pkxd6L6zXq2tGaqXvptRRK+kGhm4r7TMV58JN4yoZe2/5/MjTHXLs+vifKxo5QMZ+b3drVzWhXT3vTSjDCi+oU4EJXz9tvtrBosX8ecgVEADFuHlVe6EaUzqXkllE5MdnkKllj7hivxWHrowhpey3/+tE0w9kOFGr1c8fnUyvPFr9oKYF9svDsIoVDKTvHHYSdBdHz9LjOSO2i4C60YluRlzlyzysghPYTC1FIF2Yi/sl2UswrN5i+g==;5:RQnSLzTQ6X8yqRy9tcy7RujKg9hyjj6MXocm+W7TSx0tYvGm+nXcg+o8MaOrty0B4qT3SnBc/Hy+BMH7glfJbYw4isk5xp5IPKNTMc+ncCFoAEkYbHnl7wUlbuba4eQDzQ1ABAh8NbqzqiY227o9rw==;24:VZw9x4oeRhjFMjCpp5b+7tmy9NfJQfVaxCi2oLbWBH4l/IisqgMfb1lGmBXgIGHVhGcXkFPDzfzG/c2wVxunUkJcjVoJauinY61WKTqHoSk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;7:k3SLj1NA7jND35+czD/HZC3GXz+2VCDVATzwopSXabKjpNWm0UwLFDbBM+h1T4Pe0hAHxBK8B6SmWYeOSelBHV4GLSyj8Y8KP35nJE16daSWnr7E2ru8TT1ODyfqxDRQQIK6BK/mPgYPCicUw4DnXrQCc3uTMP7WX6hfHuXUdMqoCK9m6qKy+SAx1BR5CfA5Gtu6h+wvy2g3IRtLAf1XMIEDoaNKz2VS/T6kFcgmqV0OICMFI7+8H63JFprz2CcUUnivY2Mh1MfOlg7MEBlOhUK18qJJuE5C7RexKg4ArxJiP/0bP2CGL9cvi/8zUQHLh1f7lC/Ua2w9wfKQCIT6lQ==;20:QzCI9ARi+ztO+JoKItygPLx+Isawvf6W+vQN5nJMs7LuRn8B5VzkMrTjlbbpFWiwKKtREjYxiBoSXSAL1fBrU1CVGuJ9m7JD9Qo8r74wDp/xlI+S+ekNbYtKmhs9K6uH6FfSAlZZrvdbSgYfMCGx2wPay2QzgfDRbyEEKxoe6lw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2017 16:29:55.8946 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0801MB2721 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/31/2017 08:50 AM, Joonsoo Kim wrote: >>> But the main win as I see it is that that's basically complete support >>> for 32-bit arches. People do ask about arm32 support: >>> https://groups.google.com/d/msg/kasan-dev/Sk6BsSPMRRc/Gqh4oD_wAAAJ >>> https://groups.google.com/d/msg/kasan-dev/B22vOFp-QWg/EVJPbrsgAgAJ >>> and probably mips32 is relevant as well. >> >> I don't see how above is relevant for 32-bit arches. Current design >> is perfectly fine for 32-bit arches. I did some POC arm32 port couple years >> ago - https://github.com/aryabinin/linux/commits/kasan/arm_v0_1 >> It has some ugly hacks and non-critical bugs. AFAIR it also super-slow because I (mistakenly) >> made shadow memory uncached. But otherwise it works. > > Could you explain that where is the code to map shadow memory uncached? > I don't find anything related to it. > I didn't set set any cache policy (L_PTE_MT_*) on shadow mapping (see set_pte_at() calls ) which means it's L_PTE_MT_UNCACHED >>> Such mode does not require a huge continuous address space range, has >>> minimal memory consumption and requires minimal arch-dependent code. >>> Works only with outline instrumentation, but I think that's a >>> reasonable compromise. >>> >>> What do you think? >> >> I don't understand why we trying to invent some hacky/complex schemes when we already have >> a simple one - scaling shadow to 1/32. It's easy to implement and should be more performant comparing >> to suggested schemes. > > My approach can co-exist with changing scaling approach. It has it's > own benefit. > > And, as Dmitry mentioned before, scaling shadow to 1/32 also has downsides, > expecially for inline instrumentation. And, it requires compiler > modification and user needs to update their compiler to newer version > which is not so simple in terms of the user's usability > > Thanks. >