From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 489C3C7EE22 for ; Thu, 11 May 2023 14:55:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8FB8F6B0075; Thu, 11 May 2023 10:55:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8AB6D6B0078; Thu, 11 May 2023 10:55:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7241E6B007B; Thu, 11 May 2023 10:55:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5BF366B0075 for ; Thu, 11 May 2023 10:55:25 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 14A22A0514 for ; Thu, 11 May 2023 14:55:25 +0000 (UTC) X-FDA: 80778272610.22.0BD7E0A Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by imf29.hostedemail.com (Postfix) with ESMTP id 11D13120017 for ; Thu, 11 May 2023 14:55:19 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=iK1omloF; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf29.hostedemail.com: domain of aleksander.lobakin@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=aleksander.lobakin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1683816920; a=rsa-sha256; cv=fail; b=OMjQyB3ajF9Fu9Y62S1EhszEh2WeRfn4dcrZa5CfLg9M5VC3XdkHb838uw8JW9DyXci2HJ ig+6mUon7WPAV0QB8INKz9pAmE4gE9UZxPSNapYaWuq1m4TZg7LB9Y3ikkT7ZtmCGc/j/F XeKc6nRHixOPx3y2xazBtl+dYy+d6ek= ARC-Authentication-Results: i=2; imf29.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=iK1omloF; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf29.hostedemail.com: domain of aleksander.lobakin@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=aleksander.lobakin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683816920; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Bak51/4RAowOJ93drTJqftvUYgcifJc+2PviNDDR8tg=; b=XVCbA0KxDecP9hagysuyS/IXuV7mBYSKe2p1ukUe+MJJwINl7vUDYA38KH1u/ug12R+98a FUL8ayXkhhLbpAcwQHlgqvSojdK0ZdHXCHHqQsZBOiSvs6VEFKUJIU7DPNAh5krV0/IQsk V0IAxtJLou3qXZNH8dVGGskw/G+MtYI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683816920; x=1715352920; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=Dip2pqa/33hLTECW7ldfgQ723XDqbZyzA+LmTwZrnjI=; b=iK1omloFXmHFuibiSxr7geqc9ypFxiwXZL7FZSaTtJlGykLiJT4L5XuK smSETmI7DvMYHY+dIDkQ6TnBe7CQtkKek8RAqQcvcCi4ZayU/9jNfYExs C4H0lSW0/+mJNmbnpnunW+08mx+p+Ns6bvFGMHnAAFJvb5U7TkNAAVcOD BYnrLUjuEQiLbTk7tUC1T9nlzcMo4vSYw14c4UMfSIhqbs3dbDUE5nc8L kdZyXO3mVfHtYeee8PbIXy79VWQRYSB1M9SBtR9dC+w6ODsCRUz2+Fzfy 42m7+dsrxBTx0IYeu5mwlIAyEj56NpCr1NSlUsp0uFatjadzhLBavuMIi w==; X-IronPort-AV: E=McAfee;i="6600,9927,10707"; a="349359721" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="349359721" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2023 07:55:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10707"; a="843998589" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="843998589" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 11 May 2023 07:55:09 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 11 May 2023 07:55:08 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 11 May 2023 07:55:08 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 11 May 2023 07:55:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oRPuzpHWFq4oP56QBIl9cu5xutw/UHfhzPo32Jy/mBaHO0OY1Tsq2ra9qCWyKFFwfQQrCWsmRlg/h3L44hXjTm20cflaCjreWOGVjL+eaQFKQwgZPLY+ArEreLm0Lo9KuVfnDbyLYS9b4Gxw2RC/znsrs9w41ZZfQmUGZE9dgTmgthR3k1GhIr7WYcicxdnlXScHs+SMyVhTo9OW4rAD+qcRWtdA/KgyyMSdhRVl+g9hxELEp/P3owBEhvkxcMVRchvN9/G0XG0d5YowcgvGZqoeftQFWlmQcBZXiS10KiFsv3JUM8IWL6RcPe7vmoSGWN8lvIeBW6OJzCCMCJ1FHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bak51/4RAowOJ93drTJqftvUYgcifJc+2PviNDDR8tg=; b=TxOMcEMWj9CMIM+ZaSTdXHeDR+cBQo9HR/jt6Joo1NFZyWA/VRDGYJMR2sYMsumAqaazKxy56Eqo1RVB7mFf1UteqSBbezkspzICWzUQ79RhuY6tlS5QggsrpLWEmN70ztGXOBWroN7vlPT43tBfYbuJmYT/LGue3/r+zVPNDn04pEuaQWlC/bnXSXvzhfn/Kg7cbpb/X64iLA2B2Gh0tFoMS3LI1V2yTLEYjVzyjyz1SBapKmBOb1AVpMD3aLDJSuulwrRmbL94kKwRPR+5nVVhqdybGc0s607C/9R4Ks+3q3RsdvnsSA7e85J6NbvUj77ZpcfY5hnhrcpTKRgNKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) by SA0PR11MB4573.namprd11.prod.outlook.com (2603:10b6:806:98::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.19; Thu, 11 May 2023 14:55:06 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::64d9:76b5:5b43:1590]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::64d9:76b5:5b43:1590%2]) with mapi id 15.20.6387.020; Thu, 11 May 2023 14:55:06 +0000 Message-ID: <75179e0d-f62c-6d3c-9353-e97dd5c9d9ad@intel.com> Date: Thu, 11 May 2023 16:54:26 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH RFC v2] Randomized slab caches for kmalloc() Content-Language: en-US To: "GONG, Ruiqi" CC: , , , Hyeonggon Yoo <42.hyeyoo@gmail.com>, , Wang Weiyang , "Xiu Jianfeng" References: <20230508075507.1720950-1-gongruiqi1@huawei.com> From: Alexander Lobakin In-Reply-To: <20230508075507.1720950-1-gongruiqi1@huawei.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: JNAP275CA0017.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::22) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR11MB3625:EE_|SA0PR11MB4573:EE_ X-MS-Office365-Filtering-Correlation-Id: d7203700-0068-4f34-f379-08db522fb513 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: E9MXEcacRhxUDBWOCG9F/JQUK6f5Q8THZePQtJ7d3rRuTD1pviqK1zbg3xum3ZmS2fX6GnHRZQhH0RfNZaZ4nto7KkWGEoGFn30l4zMHI3mjA0PT/PWDk4WbRdTclUijER/iR0+1oHCA1Ch+dXHSGYyj/EaML8PqR9x4/Pfn3LR9nqUWxh5OIny63qN1U9jabmPRc1O7CJzewU82T00cj7OkirHKfE3nhTU4E+EMbece9//xmMd29AB5+XisG6ZkPCz71rPGFt5mR0tkKZxZzplcXi0+d3qIFQVYUNdwcWXNOuZsX3jTfVnRyfiIm6nGZWcz3IUQUi3KCn14+MCqv6Qd4MKmcmO2UrobjSIrkazYsRKT8Mj7arQOHg/+Rh8w0BFy6404k45CY1ZdLJlLbV/UNn2QsAkyfuRRpF/yRV5vGRCykThqWFSUMozh5RkR4ECD077cHSBaDi+B3Ha27PMr3r6G9iK0QyN+fq9693zIX4Ja4IqQx+sVFNIuCKhK8mgHLmC9zetzjL0yCVcb1sNygNsJzpHy0MsB6YHWoXqtBLla8agA/0+5ypiBBIfpsjoZC7Ta960QvWWGevP9yyf2Cz2urdmEbA7ETW4b5T71uDnMpCTaqbei09dU8KLf4W/8P69bE3LYlvvQyAdiDw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3625.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(39860400002)(396003)(136003)(346002)(366004)(451199021)(41300700001)(2906002)(478600001)(83380400001)(6512007)(6916009)(66556008)(2616005)(6486002)(66476007)(4326008)(6666004)(186003)(66946007)(54906003)(316002)(26005)(5660300002)(6506007)(8676002)(8936002)(38100700002)(31696002)(82960400001)(36756003)(86362001)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L1JzUjVOdGs4dHB1UlRJeGRxZW5LSEhXQVBGVDVuQzcxQjltdVpKOGZuMEVy?= =?utf-8?B?b0M4c1p1MWFqendnc1lqdmdxdEgrdFB6S1Vta1ZSM0ZWY1VaQnRRSEdNQnlR?= =?utf-8?B?SEJsTDNHRzZJcW5PeEF5TWp0bWJURlRPK3R1Yk1nY2Q3NTBxT0xLR1lZdW1r?= =?utf-8?B?c01iY003b2VGZlU1b3hNZ1ZaMkI3NWYxbzIzMnZULzlUZGU3ZHRadU51ZXNz?= =?utf-8?B?OThCZlArMkR2SWJzY0hTUjBuMG1XUWtCY3ZRc1Vpb1pMTEF1dHk3ZExHeVd4?= =?utf-8?B?U2lBT0ZxVUZoZHduK25ETzVBTzNhYWl3T1MvVlRjTS81TUNBQWxwUlllN2hZ?= =?utf-8?B?UzRpWEtOclBxVVpmMVlCbDdKaGp1K3dmK0RjWkpOVlhjaDZrd0FhbHJqaHlI?= =?utf-8?B?L3VEcVpuS3Y0bXpGZmdRY1RzQno2eDgzWTc2UmR4eTdvNXBpbkZvWXVVR0lr?= =?utf-8?B?RVBWVHpleGJkTkkvSU8rZ1R3dEN1aTc2VUk5Y1pGdDYzYmdYOFBmaTlpMjNU?= =?utf-8?B?VStseUVLRlRZMTlKYlZ2bDdPSjlnbjlXcmg1b0JoNXhZUkNOMTRmd2ZxUEFH?= =?utf-8?B?UFlBSmFSdHc4SEFRRkl1bXBGMXRFK3ZYN202TldDWXFiWk5ZalJEakVEYUhD?= =?utf-8?B?b1o5NWxIcE9uNDI5dXBEMlFPNW5MUmIvNGM1dW1VSXFXcXg2eFkwWmN2bmJu?= =?utf-8?B?VEFkNi9NcWZPci8rTVE5RVAwZlI0Y2RQNWl6aDBlTmpwa290N1R3QUY2d0F0?= =?utf-8?B?R1FiWnErODJGd1ZaVkRaTzZCWUtqSFR5OGk0LzFtdGQ0QlhXc1plM2JuZDkx?= =?utf-8?B?bkJNZU56NVQ5ZHB6UnRXU21Qa0lQbE1XQWNBTjhqMUpIb1Y1eThJVjBzQ29P?= =?utf-8?B?bHRGQTVNRVorR2dpOWJWR2JxTWZITXZjT3ZIMXBSVEFma1Q0Zm04a3FLQjJR?= =?utf-8?B?OXVKdlZodE84SjFQVnUyaERPRk1BWW4xMDZJQjB2Q3ZqaHJUZE1lVm94eU5J?= =?utf-8?B?MzNPQk41Z0x4QzF1cWVQZEZySlV5T1BGV0xHeGRxWUJSRmFhQmlPMk9YbEYz?= =?utf-8?B?b2ZCT29RbnVncVNhS2xMeHR1cGVFZW16K3l1NHdZMkpDbm9Dd1p1RzM3d3I0?= =?utf-8?B?a1FXVzEzOFpmckVZS25JMmVZcDdxRHZvRlpJZi80TWZDUHdITWNyZnNsNWpo?= =?utf-8?B?Zi9aQ2xkMzRnWUQ0SVcybUJzSVA4YUpNUFFNSEdOTnJaYjN4UHB3NGhQQk9h?= =?utf-8?B?V0Y0cDd1cEgxT2lOcStjTVhTS3p3QUlTSFRQTDBaZm5LZ1RqZU9jSk4wR2My?= =?utf-8?B?ZW1lODZjNCs3ZUdWcWJoWUR0VEhzMTBrL2dPUnBMR0xSZ3dIRlVIL1JybFlD?= =?utf-8?B?STZKczlNanJzWXQ3bUdXTmVmRFZHZE9yQW1BblN5M3IvQ3dsNzhqamR1Um1j?= =?utf-8?B?cTdiamh5d1RoQk9MakdOcWZmSTROMGNoYzhscGFWSEVNamd5WDljVGN3Vno3?= =?utf-8?B?c1VyVFBUMDY0ZS9UdjB4SEFPTkxLTjhoRFZmTkpQTXdDelVlMjZsWUdHdjB1?= =?utf-8?B?ZWpzV2NzdjdsYjlmVWJ5aU41S1ExOTd1c0tWeFpOTWc1WUo0WklCU1hRaW5r?= =?utf-8?B?aklBTG5yL1BDSlJoc2JaRjBydk9SY0JaQXJyRUhXSDByR01mc3dCV1NHNEhP?= =?utf-8?B?L01DZ1REdmgyb2VscGFPb1BKWU9zOHNvQ1h5VUlnSkNmRW1IRUErSTV3MklS?= =?utf-8?B?VmY4WjZQc1BjM2xBVUJWeUlBVU5lcnBaV0FSZWErcEpUVHJIemxGdDNRcWFs?= =?utf-8?B?SGFrcGJXSjlyTldyblNJODh4Z3Z6N3doazAzSk9oOXlrV2hKVmNWNlJoOHVu?= =?utf-8?B?UStBZE5uNWFSTjRadW1WaWFMQUFPSTJERHZORkt2MzRsRDFmdnBHNGhSWXJq?= =?utf-8?B?Q1FYN2N6cHM0cTN0VHFQNEtUblVhWWo3c0haeCtOZ2ljbjNGeWw1L3lhTjJk?= =?utf-8?B?aUNQVGtsRHpBUHpjWEVmaFRqYlJjdEtWRzFLdEdlblBjVWdLeFl2V1d4RXN2?= =?utf-8?B?SXB6VnB2Q3pUMEtOeGFPbG13cWw4UFJ2L1R6ai9EL0tEakE3TVY1VlBRdFhM?= =?utf-8?B?dmQzbTE0ajI3cEFLT3FkWmhPSU5obHlvR255ZGJxeXc3UlB1MVlHNm0wRXJq?= =?utf-8?B?Smc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: d7203700-0068-4f34-f379-08db522fb513 X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3625.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2023 14:55:06.2269 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7QkvnENllz/Gto05Vqmz5Me6HgNnBJswzckfHFw1LH7ODlEbsJ18KjLmxT00EvS12KYAgKZWPX+0PqvNcylJVvlX+zPa3tEyYUl7hViuDlE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4573 X-OriginatorOrg: intel.com X-Rspam-User: X-Stat-Signature: eea6neuwxokxu6s6uckpdey1rpjsa8ft X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 11D13120017 X-HE-Tag: 1683816919-265254 X-HE-Meta: U2FsdGVkX19FGdQIwa1WuRbb24rZ6j0OE9LDhm1Un3qKXd8bKTmUUn2PHtezZfqkt2ZMI/Kd2tTa3ObCUF5Gv4cuohAXtD9mwo01P5TN+ruAyNuHl5Y2jhiX/7GvOV+EhXB1fGsO19NpNj5f9kZrFK/SV2CYY+y+OIpx0Ik0reKnMMMS0nZHA6+fLDWlHA3zzqFFvjX9jgq0bhL0LXI6bJuJohHnyWe6sSCU2UNFHJ/lbXwlAiTKISnlBG69gp0vfmbKhzaW2HfH5h5THCGIoCHjlTJXK+/CSggYNWekeXl3O9XR/e3vig7lxYtwaHbCjs8tqc+qs+4SPTwBfIr7tvBTb7LEEc5dIb7HJE1oqxNRWwBvv1SBS1a1zvazi4vJI8Ej3W5E5xKEifEanHuVhM25+uedNfRy1o2xgIioxSkSPhQNTumw03hQPJ7dShV670qokuJk6uube4K/+3y/mX8hjfbjRfP2nFm0R2gBpJS47rZtkNou3AoDceuEl+fjuKqVtNzSa1HnsNm7stLvM9v+eH51dyHg4G8lgILfwz1Z45y8lmVwr1J49xyauiJU3LS2vfuO6bJTPEJIkJjWNBv6DtK2Enw2QUEIOni4FaXJ3J63PKlMuH821iIAKLjHHZguJXkxvuDtwJ4hRW2mW9mGFzBNZGjZZbnvcpmvM8srcsGwwrUdB9zHwRNR7tqdJ+45V69mHYxeFX4qifmFs/5kIo0KjdpWnfKoa2pY3OgMT+S1n9coVohyvKwxvePepaK8wraLmzm53NivkGbZW7UUpGpaPz9ylHIUwjJ9ZF955LDDrMFUEQtIp7gpciBEWIcOX5+yJaWeiwmaBh6vwPuguuqVNklkm+1uSSs63g6GNFJpw0wHOfLM6FZgsZy6FQpGnH7nensnQGm+VMDWgR2zNLJ5OFmQI7vu/+ULyDv50rdwNcP9bgZWlgjSOHp7DKLooHTP8KVFtLAnosl LhM3aRe4 kMIBR5M35a2hqhiQvLA3L0Bycy0td7/3xzXC3Uq+Mfyl/c1ZCtJjuGRDq9sLiGbpORKiLDTCcPNcsC+cgWo32E8p4YmpZ0zs2s/kJ+kJ1pevkKiTUOjI4bi/bsopYwWmvfgwZICSsbtr8tAIcyA5clvHgT6uacmlCPvHxtC7BHVEOHUVQj/VsUedXkwnaMrbGtp45l6nvFVTHeOmlREWqlyaHaSMAJ7XYEr5pUTsJQB+1CgxIU/WQGVWnoW6SzaCUBT/96zMwiVmrzqsfBl2U+rs61hlY7xOTY3LdMPX+oEXbb+fQmQ42+LXhInE9kYEz85LEIwtg1eqSnpmCB5OunXZKAPcLbPl+T8wqPKsabuFZpNg90hSgEH7RyQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Gong, Ruiqi Date: Mon, 8 May 2023 15:55:07 +0800 > When exploiting memory vulnerabilities, "heap spraying" is a common > technique targeting those related to dynamic memory allocation (i.e. the > "heap"), and it plays an important role in a successful exploitation. > Basically, it is to overwrite the memory area of vulnerable object by > triggering allocation in other subsystems or modules and therefore > getting a reference to the targeted memory location. It's usable on > various types of vulnerablity including use after free (UAF), heap out- > of-bound write and etc. [...] > @@ -777,12 +783,44 @@ EXPORT_SYMBOL(kmalloc_size_roundup); > #define KMALLOC_RCL_NAME(sz) > #endif > > +#ifdef CONFIG_RANDOM_KMALLOC_CACHES > +#define __KMALLOC_RANDOM_CONCAT(a, b, c) a ## b ## c > +#define KMALLOC_RANDOM_NAME(N, sz) __KMALLOC_RANDOM_CONCAT(KMALLOC_RANDOM_, N, _NAME)(sz) > +#if CONFIG_RANDOM_KMALLOC_CACHES_BITS >= 1 > +#define KMALLOC_RANDOM_1_NAME(sz) .name[KMALLOC_RANDOM_START + 0] = "kmalloc-random-01-" #sz, > +#define KMALLOC_RANDOM_2_NAME(sz) KMALLOC_RANDOM_1_NAME(sz) .name[KMALLOC_RANDOM_START + 1] = "kmalloc-random-02-" #sz, > +#endif > +#if CONFIG_RANDOM_KMALLOC_CACHES_BITS >= 2 > +#define KMALLOC_RANDOM_3_NAME(sz) KMALLOC_RANDOM_2_NAME(sz) .name[KMALLOC_RANDOM_START + 2] = "kmalloc-random-03-" #sz, > +#define KMALLOC_RANDOM_4_NAME(sz) KMALLOC_RANDOM_3_NAME(sz) .name[KMALLOC_RANDOM_START + 3] = "kmalloc-random-04-" #sz, > +#endif > +#if CONFIG_RANDOM_KMALLOC_CACHES_BITS >= 3 > +#define KMALLOC_RANDOM_5_NAME(sz) KMALLOC_RANDOM_4_NAME(sz) .name[KMALLOC_RANDOM_START + 4] = "kmalloc-random-05-" #sz, > +#define KMALLOC_RANDOM_6_NAME(sz) KMALLOC_RANDOM_5_NAME(sz) .name[KMALLOC_RANDOM_START + 5] = "kmalloc-random-06-" #sz, > +#define KMALLOC_RANDOM_7_NAME(sz) KMALLOC_RANDOM_6_NAME(sz) .name[KMALLOC_RANDOM_START + 6] = "kmalloc-random-07-" #sz, > +#define KMALLOC_RANDOM_8_NAME(sz) KMALLOC_RANDOM_7_NAME(sz) .name[KMALLOC_RANDOM_START + 7] = "kmalloc-random-08-" #sz, > +#endif > +#if CONFIG_RANDOM_KMALLOC_CACHES_BITS >= 4 > +#define KMALLOC_RANDOM_9_NAME(sz) KMALLOC_RANDOM_8_NAME(sz) .name[KMALLOC_RANDOM_START + 8] = "kmalloc-random-09-" #sz, > +#define KMALLOC_RANDOM_10_NAME(sz) KMALLOC_RANDOM_9_NAME(sz) .name[KMALLOC_RANDOM_START + 9] = "kmalloc-random-10-" #sz, > +#define KMALLOC_RANDOM_11_NAME(sz) KMALLOC_RANDOM_10_NAME(sz) .name[KMALLOC_RANDOM_START + 10] = "kmalloc-random-11-" #sz, > +#define KMALLOC_RANDOM_12_NAME(sz) KMALLOC_RANDOM_11_NAME(sz) .name[KMALLOC_RANDOM_START + 11] = "kmalloc-random-12-" #sz, > +#define KMALLOC_RANDOM_13_NAME(sz) KMALLOC_RANDOM_12_NAME(sz) .name[KMALLOC_RANDOM_START + 12] = "kmalloc-random-13-" #sz, > +#define KMALLOC_RANDOM_14_NAME(sz) KMALLOC_RANDOM_13_NAME(sz) .name[KMALLOC_RANDOM_START + 13] = "kmalloc-random-14-" #sz, > +#define KMALLOC_RANDOM_15_NAME(sz) KMALLOC_RANDOM_14_NAME(sz) .name[KMALLOC_RANDOM_START + 14] = "kmalloc-random-15-" #sz, > +#define KMALLOC_RANDOM_16_NAME(sz) KMALLOC_RANDOM_15_NAME(sz) .name[KMALLOC_RANDOM_START + 15] = "kmalloc-random-16-" #sz, This all can be compressed. Only two things are variables here, so #define KMALLOC_RANDOM_N_NAME(cur, prev, sz) \ KMALLOC_RANDOM_##prev##_NAME(sz), \ .name[KMALLOC_RANDOM_START + prev] = \ "kmalloc-random-##cur##-" #sz #define KMALLOC_RANDOM_16_NAME(sz) KMALLOC_RANDOM_N_NAME(16, 15, sz) Also I'd rather not put commas ',' at the end of each macro, they're usually put outside where the macro is used. > +#endif > +#else // CONFIG_RANDOM_KMALLOC_CACHES > +#define KMALLOC_RANDOM_NAME(N, sz) > +#endif > + > #define INIT_KMALLOC_INFO(__size, __short_size) \ > { \ > .name[KMALLOC_NORMAL] = "kmalloc-" #__short_size, \ > KMALLOC_RCL_NAME(__short_size) \ > KMALLOC_CGROUP_NAME(__short_size) \ > KMALLOC_DMA_NAME(__short_size) \ > + KMALLOC_RANDOM_NAME(CONFIG_RANDOM_KMALLOC_CACHES_NR, __short_size) \ Can't those names be __initconst and here you'd just do one loop from 1 to KMALLOC_CACHES_NR, which would assign names? I'm not sure compilers will expand that one to a compile-time constant and assigning 69 different string pointers per one kmalloc size is a bit of a waste to me. > .size = __size, \ > } > > @@ -878,6 +916,11 @@ new_kmalloc_cache(int idx, enum kmalloc_cache_type type, slab_flags_t flags) > flags |= SLAB_CACHE_DMA; > } > > +#ifdef CONFIG_RANDOM_KMALLOC_CACHES > + if (type >= KMALLOC_RANDOM_START && type <= KMALLOC_RANDOM_END) > + flags |= SLAB_RANDOMSLAB; > +#endif > + > kmalloc_caches[type][idx] = create_kmalloc_cache( > kmalloc_info[idx].name[type], > kmalloc_info[idx].size, flags, 0, > @@ -904,7 +947,7 @@ void __init create_kmalloc_caches(slab_flags_t flags) > /* > * Including KMALLOC_CGROUP if CONFIG_MEMCG_KMEM defined > */ > - for (type = KMALLOC_NORMAL; type < NR_KMALLOC_TYPES; type++) { > + for (type = KMALLOC_RANDOM_START; type < NR_KMALLOC_TYPES; type++) { Can't we just define something like __KMALLOC_TYPE_START at the beginning of the enum to not search for all such places each time something new is added? > for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) { > if (!kmalloc_caches[type][i]) > new_kmalloc_cache(i, type, flags); > @@ -922,6 +965,9 @@ void __init create_kmalloc_caches(slab_flags_t flags) > new_kmalloc_cache(2, type, flags); > } > } > +#ifdef CONFIG_RANDOM_KMALLOC_CACHES > + random_kmalloc_seed = get_random_u64(); > +#endif > > /* Kmalloc array is now usable */ > slab_state = UP; > @@ -957,7 +1003,7 @@ void *__do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller > return ret; > } > > - s = kmalloc_slab(size, flags); > + s = kmalloc_slab(size, flags, caller); > > if (unlikely(ZERO_OR_NULL_PTR(s))) > return s; Thanks, Olek