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 D9B9CC4167B for ; Fri, 8 Dec 2023 16:52:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B2946B009A; Fri, 8 Dec 2023 11:52:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 762696B009B; Fri, 8 Dec 2023 11:52:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 652006B009C; Fri, 8 Dec 2023 11:52:30 -0500 (EST) 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 538CA6B009A for ; Fri, 8 Dec 2023 11:52:30 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 25E5314016D for ; Fri, 8 Dec 2023 16:52:30 +0000 (UTC) X-FDA: 81544244460.24.A92631F Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf01.hostedemail.com (Postfix) with ESMTP id 5FD674001C for ; Fri, 8 Dec 2023 16:52:28 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gcCXj3om; spf=pass (imf01.hostedemail.com: domain of glider@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702054348; 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=TCwpDcUhOmDqjvrlR1SNfeF5wJTZtg8zSBwCC0FJlGs=; b=F+rt5RSx6SlDGIuCurNVR4wHMbp6t2v2sj1C8RovtVJOAqhT6eN44Ck4JXM4J+o5D3+/D+ YcwCDn2RZliQNl9kHFk2llv72CZRA34YI8dnJtU/EPbOQ+RKsV2App+MI5gQQEsAnZUIWB lzVCavdAzsxNzR2XqMdP2Kt3Sx4XBBU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702054348; a=rsa-sha256; cv=none; b=Kou2LKi8pZ4zeqFUlxRqQQoJJ/xXn7aT36v61fu362oPckbMWHpVBGoAtn+R4SnbhyLfvG liNh7+tSYqqi7Rpicpgzs/QUmmqeDCrQOl4Rqi/a059mWWtGdI7VJcJTOtbuquPVmn/E8E JTl0LtiM1FxioGSjHDJleiswVPtwcjA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gcCXj3om; spf=pass (imf01.hostedemail.com: domain of glider@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-42542b1ed5dso14713211cf.1 for ; Fri, 08 Dec 2023 08:52:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702054347; x=1702659147; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=TCwpDcUhOmDqjvrlR1SNfeF5wJTZtg8zSBwCC0FJlGs=; b=gcCXj3ome4AnKKFjnoqaJ05FW1Iq9INYyDTOhtawSP9EuLz+0pHvIIfN1bFOeRI55O A8CzYp+alXuM9YWFz9k6By018erGHSRM5bwmT2JSzu5fS7VcwOgUtgZSt3A4GfUcEEXZ Am0wdFAbhz+lSx2B3aX3p54QpIHRmcaDnae8h/QwqbdogXhxqEx+ff+tXm5vOfqDQYo0 MYwElN8VVLXARLPCFKfQ16U8NbMvmYLOHmzQICxn5ZWD44zvyTd7VWdN6g5fTub1Auos FflIJDOV2DeCA/ootvF40yF4qp4V1SvO/HLO+lhymnCfE7YgxmsN4eEWkY7q50JtiZnZ HHxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702054347; x=1702659147; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TCwpDcUhOmDqjvrlR1SNfeF5wJTZtg8zSBwCC0FJlGs=; b=oH8niAq2n3yzRaVht2UDbw9pvwXfnTRKKi76Ve6SLiJI17b4WhakqeVuy8HYVUts0i Obw8DiNVsjcgJHa5pPQDiO81GgKLBfgK7DHpY7hcQuN9nolYg502IPPSfI0vNPH47k8W ImShCQWTyYGFuXy9lvE1OLpKr1XIbbfZmcMw7lPRijQE4N3LxElLfkBJp3FN5qlvKJVL 840cmjjRU+Oi828nJ0qNS0zKdUumdwGM+9zbZEFVtdejlBqZpF6D9S7fGa1WS5eh2t4H iBT2M8c63WEf/dPYTXnG7b/sjF5ZQlt7bTUIUgyNWtzTjlSARTTio5ca5Rfdet8I3Riq //EA== X-Gm-Message-State: AOJu0YzdA7etS/HtZWihGhZfGlKYSMZMaFWF010mFTTmviMN5x7zNbG1 KTSLNksmdzt4KYrERITssXulpXdRZYOtv72aA1Ug2g== X-Google-Smtp-Source: AGHT+IG/Qa2CsBPsTo8laLu1WyqkZnjskF+ulvDFcaMMAjoQPlLNPVr7WYr7dMHEv6WOe9zUYJ/8giXe+mG6gU/3KR8= X-Received: by 2002:a05:6214:4013:b0:67a:ccb7:4fe0 with SMTP id kd19-20020a056214401300b0067accb74fe0mr319829qvb.82.1702054347432; Fri, 08 Dec 2023 08:52:27 -0800 (PST) MIME-Version: 1.0 References: <20231121220155.1217090-1-iii@linux.ibm.com> <20231121220155.1217090-10-iii@linux.ibm.com> In-Reply-To: <20231121220155.1217090-10-iii@linux.ibm.com> From: Alexander Potapenko Date: Fri, 8 Dec 2023 17:51:51 +0100 Message-ID: Subject: Re: [PATCH v2 09/33] kmsan: Introduce kmsan_memmove_metadata() To: Ilya Leoshkevich Cc: Alexander Gordeev , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik , Vlastimil Babka , Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5FD674001C X-Rspam-User: X-Stat-Signature: cij87j5c8azcyabuqnh68xzs94fbi5qd X-Rspamd-Server: rspam03 X-HE-Tag: 1702054348-239594 X-HE-Meta: U2FsdGVkX18ajvlRe3nZRxQvQThjmxjPcunC2CsHS0FWYg4EmtnCo6QHOpKUZrPWkVZIunkpy2fJJKgiiPAPwF6eQURsorScOzBcu9EIzBuQ0aaWTUT5FYbzq7UiQ5e7NlOoViIjWOodC0JZdoxXcqVEyUrddCkh3HfwDjgXjOg1QMLqKecICSJz9VVJucG4wOS3O6+XSxkG5HRnwfe3lW9ii33RrkVnY6T4FODCR7HeSHKkvNgihd/TC3XlliuA/38wPsWeqIas1VywPbphLuakp5hriTQiYcGGp8uAzffmQGBLIMQ177kvW6I8/GOUZiYOs8TFyEY0C8xUGHQOxq8CujV67iqL5A6X+nUy+FtpIBDJhOixomVis7Y3ytX4ZSYZLGAGc3RCIQ0fBRFCzNgLRgYiMNK+gVy3YpWF7KjU1QB7G/w5lWkmB97m7S/mffnf1BaI0ufhw+LBu15zl24iKaMs/N56NZS4l+2wEwtvS3r8i9BbtbO3Ne+DH/kPHejrmkjlTjUlFk2LmCKqe5IlcoOgdo1+5G3SJgrD06LA77JTIz56sZ0Vfq2Mvf2xUvd1XeK6JGpbohCFDga/26Jy11MnaMJkQG54reFfFyEACYRSKA1hVjw1CVNDzuyiXNzZm9SKhkFoJs9uA/L0UCDWfARgbCvWN0F0uTV3SBicAJSzF1wSoZ6KRVWWme/uJQ1FOjaq6PPlNVmdExvINQUFd0uP4JltzlRem843wJBcVfeFeO3SlBaA6Lf35j2znq0VTqw0Xb01sWtFzwxr5sRLoc+GYXGxkoGVXtUjZoU63pY+6Ud53JtaeyFAuqyaVgCwjxNGvJYeS7fSvroPqpSM8Tkkc3PVZ9s/y5ZLu61wUNhVEwjUmldbAmSUfKmRZz+OVCkhrdyCEhbhGAWHTEZKwa45YIOEZGrhjy06yNCKccaoUgiZZkU6t/Z11wkl7fDbzECj1F4jSPSD1p3 9xrqCmQI FJdb/mopgHp5dKBRMyMnLkyKno5bacqYizJgQZ3iJndLJParfQbf1TJMVqzamdEPICoxlFstOeZcG51JbKJi9B51FI/6LBht8LqMTay9ETA4CLVDFeJO8P+HKd+ZA7o0UuAWX9E9lRmFiEbE/nWA7hBkImZYX1kp1V6D1Dtz1bZD5oczILlCYY86LF5Ql5vX9Y+9QeJivNYn9Sg0qDzahwoZZpFLmIxIiKe/jJhn670SvfX1GIFosG6H846mcBhSyUK/8Ohw6MZIa+4J42PKH1f94y7EjsWxHg2baG2/9p/+htYr412q+32q5pIAoATf/moD3JBNlFtcmjbGmXj28PiHD0it7PP8tgX0vSlBfqh0SukFES92lKpclQw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.007877, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Nov 21, 2023 at 11:07=E2=80=AFPM Ilya Leoshkevich wrote: > > It is useful to manually copy metadata in order to describe the effects > of memmove()-like logic in uninstrumented code or inline asm. Introduce > kmsan_memmove_metadata() for this purpose. > > Signed-off-by: Ilya Leoshkevich > --- > include/linux/kmsan-checks.h | 14 ++++++++++++++ > mm/kmsan/hooks.c | 11 +++++++++++ > 2 files changed, 25 insertions(+) > > diff --git a/include/linux/kmsan-checks.h b/include/linux/kmsan-checks.h > index c4cae333deec..5218973f0ad0 100644 > --- a/include/linux/kmsan-checks.h > +++ b/include/linux/kmsan-checks.h > @@ -61,6 +61,17 @@ void kmsan_check_memory(const void *address, size_t si= ze); > void kmsan_copy_to_user(void __user *to, const void *from, size_t to_cop= y, > size_t left); > > +/** > + * kmsan_memmove_metadata() - Copy kernel memory range metadata. > + * @dst: start of the destination kernel memory range. > + * @src: start of the source kernel memory range. > + * @n: size of the memory ranges. > + * > + * KMSAN will treat the destination range as if its contents were memmov= e()d > + * from the source range. > + */ > +void kmsan_memmove_metadata(void *dst, const void *src, size_t n); As noted in patch 18/33, I am pretty sure we shouldn't need this function.