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 D86DEC6FD18 for ; Wed, 29 Mar 2023 00:22:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 567AC6B0072; Tue, 28 Mar 2023 20:22:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F0CE6B0074; Tue, 28 Mar 2023 20:22:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3917C6B0075; Tue, 28 Mar 2023 20:22:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 25B636B0072 for ; Tue, 28 Mar 2023 20:22:54 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E839E140A1D for ; Wed, 29 Mar 2023 00:22:53 +0000 (UTC) X-FDA: 80620035426.10.9C58895 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf30.hostedemail.com (Postfix) with ESMTP id 0D1EF80009 for ; Wed, 29 Mar 2023 00:22:51 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kohoHxDp; spf=pass (imf30.hostedemail.com: domain of chenhuacai@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chenhuacai@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680049372; 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=gvRM19O0+ENuKqUmsDi/B/LiIIqhUnSvjpgPO4O58bI=; b=upn8P4wgLx/Bp7ur7XgwyH3I8busCe2Ic31yP31iKv8hqsVLMBi7Ddoq+Eu68ff99Mmd31 frvFCojPF6OFl4xMp0QV0+clekFl6ozXBhx1Zr9RmpqDdSKfb5N9Vcj66eKaxd4c0FrtnH zLRNpw+5c0EavU6iHjbDXIl38kR8ePI= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kohoHxDp; spf=pass (imf30.hostedemail.com: domain of chenhuacai@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chenhuacai@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680049372; a=rsa-sha256; cv=none; b=Zx4usY8FadP4Oij82iu8vCrdF2Dy0bf66G728Au8FxfQEnc7z58MjHzTeZzI205i5eGngL /JiYcRljEppt31Bc/yj0i/Fo/ojmd3I5fZvI6F27eAm8QOUaXvQsZSHxpu8+oKUW4qoqMz WGWeP3ySyMgbwNa7rIhCfQw/VxIPCms= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 001B2619FD for ; Wed, 29 Mar 2023 00:22:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1B59C433AC for ; Wed, 29 Mar 2023 00:22:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1680049369; bh=LsCNXXpY1cFgoqXqOINeaOkusUqANiRdFYpk75Ep5Ko=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=kohoHxDpAa2IveHTr7jy9tKAbRaVBIuF6zCV3lP6pauXbsIULM4TR8vENRdV+sRxi s5iplqD8Kf9yZuUxFVFKtOP+MzK3P6mQ+plHNV3Pc1W+xW2+wDzKj3kn/InfhxPQsK qHF5hwPbzf6hYqCZkQ1qNCr6cCtoRhmaEbfCKecP408IxUMGZsGvYWXzz4Y1r4iFB1 9Xot0ltF4q/FhMB1xgQpe0vZApT+GQgGWH02F44s7TDcmGm8Vjo3ijDdx58KOHKl/9 OEFaINyEJDyfWI7phFuz82Mzxc6RoYHFMGbRoekUSjlXIBwyHNiIM0UvnH7TNu3E80 Jn7U1RHYAKRxg== Received: by mail-ed1-f47.google.com with SMTP id h8so56663692ede.8 for ; Tue, 28 Mar 2023 17:22:49 -0700 (PDT) X-Gm-Message-State: AAQBX9eUBBmI9weArh/EBwKtTEngF7NRE8QXvQ3dxRoiHcY15shPMgbB PWmkEBbrpuYmY7AZT2+2DvnA1AocJaQdvwoO8C0= X-Google-Smtp-Source: AKy350YShqqhafJiKivPvV3UEwHbIXvSZz7vIGbGfm68OD1wOOOEvCMQ8EQ72tLPfqXEpoJkur924JeuV1TKMI9pjxw= X-Received: by 2002:a50:a444:0:b0:4fc:6494:81c3 with SMTP id v4-20020a50a444000000b004fc649481c3mr8371871edb.1.1680049367907; Tue, 28 Mar 2023 17:22:47 -0700 (PDT) MIME-Version: 1.0 References: <20230328111714.2056-1-zhangqing@loongson.cn> <9817aaa043e9f0ed964bd523773447bd64f6e2c0.camel@xry111.site> <1c231587-3b70-22ab-d554-ebe3de407909@loongson.cn> In-Reply-To: <1c231587-3b70-22ab-d554-ebe3de407909@loongson.cn> From: Huacai Chen Date: Wed, 29 Mar 2023 08:22:37 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] LoongArch: Add kernel address sanitizer support To: Qing Zhang Cc: Xi Ruoyao , Andrey Ryabinin , Jonathan Corbet , Andrew Morton , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , WANG Xuerui , Jiaxun Yang , kasan-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-mm@kvack.org, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 0D1EF80009 X-Stat-Signature: 4w6tnqtmoowb1r4j3us65oxgqywcrfiw X-Rspam-User: X-HE-Tag: 1680049371-109499 X-HE-Meta: U2FsdGVkX1/8PABsb/kLbR8VXwH5G8tnmWgCh2/M1MCcUBwNb+fCVEOUIxESdeqbWrbh6YH8eDaL78EXOiEwP3T05S5MldsgtijbcoNQkCGOdBys1Igv8qPNYwUqeGSOilEHGISm5MP+t24TiWfAwYMY8rdmyaJh2ZUE5mvhHPgAE3vzetpEk6l3Iq3WocQjpLL5Hn2R+nRV+KNNXkGG17eEh6MR3NfC77b1l3gfbOV2vlE8rWjWawkC1av5Jsi68i1iyMAfg4WwqG4aA4Uq37+J8HGd4i7BfL7/MgOt6fMN2feb0rM4z0ufpzMnqmlPIqk5sgBOt48xK1jpi1nf5Ap160O9jnFVc0MIxsKPjjGQ4zYHrEjsXKYgkmIGxZ1FF7P/fUfyQx7eF4oCPYV4m7SWQ/wGcv3LxZ18qLA3FQ2W4Mou0SXZiQOyb8EtRsdK5GtPyMJVLCFxKkvRqUrlBe/dKUUT1rO2sITaMnQvpSlCMCN31tZT1TbdxKC1NFFIzSYDD/uutnONied+lLTGVbteaTK+2bp0Fl5VE56Zsz7ymD2eRpdK7p4B4xSYGQLGQXWX/xDkK46wIQJcNXBh2k+Ny6X770kMFm5gQrd01nH0Rc7Yj3YBI4hnvniCKWcyHbXH3W4PVFIVJq2OZ3XRiakbIE7BNydjGDoRKwhK5aNCQqtlMmSmFBxkLX/7BhmxfA0KKLdGmGsfJbGFESgowgz3jtSgMRTYlKPoyi21FhXVfpGRWkaOJir3V/pXdq9JuHx58C5vjMJu2doXpp09y2nuo5cN3zkQbUCPmIoT3aYnG0b/n6Cbyq6J6ytnJMHbfZWEgdi1exdyRFFYQv3c2R70ilg2EQgfUxK+7N2W1cpoVksEc77tw09rs3G86NrE+tjhfBB1geP+SsPfbYmvSFJ5OAbNi2ZsfJHvirh7wmd5DSnnUVHQecKMe0jaq7uXv57v6Zos2KJYaQcAwDy PrKezD7t 38f1wuADDHO9JNr/BY5QoA0g9/r7Il0vy0PVbtFEShgwpjEGzLSZq87WwOsdsyuxIiYMP3LYoYgxbf0dLqeWET59Bq+yZyerAlGHxTpb9qqtfLTsxAyUbxKgRHeUY0wlKTgMsJJw8xKVLLNegkfVegiJc4iWvsaSXOwqBlX2yAaEeRsTpwWJbvKzJnRLB3Hxl64xGbCM5yCGxcO8sgGZuELMEfeH8cOaFhkQ0MSN+fO0Pa8hvyQUD42TiGNDWMvgQ8I265/VH2ZbGzgCnKa+2fv40uKjPN+FRXI4qEsJJtlQh/vOD91uppgg4qfBCk//z7lzGO11dtpOBX8wMX3xFHJhUU5pJO9u3SbqPAwgW57DXJt1ePm6RvP7pgXYW+5MrAKiFdFnJHbqKDdGpRtDiv9NVig== 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: On Tue, Mar 28, 2023 at 8:15=E2=80=AFPM Qing Zhang = wrote: > > Hi, Ruoyao > > On 2023/3/28 =E4=B8=8B=E5=8D=887:39, Xi Ruoyao wrote: > > On Tue, 2023-03-28 at 19:17 +0800, Qing Zhang wrote: > > > > /* snip */ > > > > > >> -void * __init relocate_kernel(void) > >> +unsigned long __init relocate_kernel(void) > > > > Why we must modify relocate_kernel for KASAN? > > When the CONFIG_RANDOMIZE_BASE is enabled, the kernel will be updated to > a random new address. > Kasan needs to call kasan_early_init before start_kernel. > There are two situations: > 1> After enabling CONFIG_RELOCATABLE, call kasan_early_init. > 2> After CONFIG_RELOCATABLE is not enabled, call kasan_early_init. > > In order to prevent code redundancy and semantic problems caused by > calling kasan_early_init (before jr a0) at the old PC. In my opinion, you can call kasan_early_init before relocate_kernel in head.S, then no redundancy. Huacai > > Thanks, > -Qing > > > >> { > >> unsigned long kernel_length; > >> unsigned long random_offset =3D 0; > >> void *location_new =3D _text; /* Default to original kernel s= tart */ > >> - void *kernel_entry =3D start_kernel; /* Default to original ke= rnel entry point */ > >> char *cmdline =3D early_ioremap(fw_arg1, COMMAND_LINE_SIZE); = /* Boot command line is passed in fw_arg1 */ > >> > >> strscpy(boot_command_line, cmdline, COMMAND_LINE_SIZE); > >> @@ -190,9 +189,6 @@ void * __init relocate_kernel(void) > >> > >> reloc_offset +=3D random_offset; > >> > >> - /* Return the new kernel's entry point */ > >> - kernel_entry =3D RELOCATED_KASLR(start_kernel); > >> - > >> /* The current thread is now within the relocated ker= nel */ > >> __current_thread_info =3D RELOCATED_KASLR(__current_t= hread_info); > >> > >> @@ -204,7 +200,7 @@ void * __init relocate_kernel(void) > >> > >> relocate_absolute(random_offset); > >> > >> - return kernel_entry; > >> + return random_offset; > > >