Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1999135imu; Sat, 22 Dec 2018 09:49:38 -0800 (PST) X-Google-Smtp-Source: AFSGD/V3OpPTL0y6RpxlGqAYXQaxeWTYN9mWHF1NOsKq5VPCGozqnGEQHUtv/yhibm50l9c71L1J X-Received: by 2002:a62:be0c:: with SMTP id l12mr7089426pff.51.1545500978482; Sat, 22 Dec 2018 09:49:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545500978; cv=none; d=google.com; s=arc-20160816; b=f7oGg/VAqjaiKyfVLzoWrj/pmI9B3+hvxJ7Psm2+yNxlEbNVNjOt5zinp2FygELTK+ CCgjN7mqfIrAfNzRNIwItq7DBS91ArEYLkrzno7urQ9nsltWKCfx49Rexzn/wJMZAxkd BQd5a6TZznDsUqF7kYeawulUn6bPQ7ATi/M6G19MzUWl9KSC+ei2VR4OpPgG22S2zx8g IADHRIoxdgSoJZTQ4/n65vvMXAv/cujTBucfgovT7X322Bx/koFf/TAv7yJbdCpje3th tSUEDbR9A4OIm7MCBGzhpPD8T54XpiYsmWe/sd7aHFcagiEG7Ov1ceguUV1yPdexdtg9 Up9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=YzTkR9BNBWUqZdu1WinO1y3fXqqcn1E1mNHboe8f5k8=; b=rdGMs2qcNFnitFQfmJLbH/M7Xm5F1jV1sdHqnSHtQzXL7My2C9Rf9hjLj9idwYgqml dq9nXQbtHSv0hHue0RRaSqrDZYzY6gDWVr2W4AheIZPR6YVolux6F2yKmNxxYh5cIPtH GxMMYixrkW0nzZvTd55xqNzhG3JFtTKxDmH4DFhDuJCA1y+Eq9o4N5zZm37kf+FvB5Jk YXK/5YS1PD+7wRG+vRSit/xfhk355QYkZMq/Iq7Ck9t0I5TQ9TLB+dWBC6G03v9ptB2I /RTfwBW0AOIFB1O5sIez8S5tkiW4KxPZy1IL1r0+3pfioFsaUFUWngDSxzFSfFKS63Kh rYwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LUgMfWoo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c12si2297770pgh.257.2018.12.22.09.49.23; Sat, 22 Dec 2018 09:49:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LUgMfWoo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390523AbeLUUqU (ORCPT + 99 others); Fri, 21 Dec 2018 15:46:20 -0500 Received: from mail-lf1-f67.google.com ([209.85.167.67]:38486 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731379AbeLUUqT (ORCPT ); Fri, 21 Dec 2018 15:46:19 -0500 Received: by mail-lf1-f67.google.com with SMTP id p86so4782463lfg.5; Fri, 21 Dec 2018 12:46:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=YzTkR9BNBWUqZdu1WinO1y3fXqqcn1E1mNHboe8f5k8=; b=LUgMfWoopRUJkkXVRKrbYqfGi36+6m+5oCCltcop5jljtrlLowda6OVtJVgQVYLk6g GqLjVmcwMgnqhvaamDWjFtZJZzDofZspFTdoONQj7shqokI74QUAEIA9NG7kIcijwLBw RvfqeZIAM3ZhOhtZGHqO3ECOTsBglNldroT1tyhDH7ux/sJFHasYxd1D/MVkTQjzqDRl /kJZqJwwe3OoN7nxZ2znvmuwrw9wj9T1Zp2Mvsoi36dZOetesAP4GRBA3hbHgPy0MlKe /L61Qpp0rqjoDcSaIs7HaiYueL0is6lhArzs33mjnQ8X/rEu8whvQIqdw6WKz5gvHx4b wsVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=YzTkR9BNBWUqZdu1WinO1y3fXqqcn1E1mNHboe8f5k8=; b=RAe7iUPhP56ZHXCWi0ZD15VGE/vcmL6xugYQCnz8+I64zzxIU/zK9EB6PUKzHpKnez nDce3Gdy9YOEmg2EiSlRntgEJ+p4I5dAvjwLluw3TY1Y/LuijPqhkiO2nWzqSeiSXYaz XDSO67rfcmuZWIP/IjpzGYFdOp6d/7N+gWkKln6KSgqgFFCMeCROKKhXoJAI8ncw+py9 TsZCt1IItWqxoN9LkZy+cR7vR4KLskH8PVP/YiQxuo5A2MGQvbuf9f5pmW9lOrtznFD+ IVtyhvS2i8TWR1tGlcq4KRrGxW6ADF8wBXvUg0snPBHrmN7hUtuLM1xThFMPjNZjIPU2 UDIg== X-Gm-Message-State: AA+aEWYflkxS02xJO6EGcglXEmgJ1r0ZElS9EIdDxdFOz9BvQtI6/vTy cpCIMIa0J1fcpgHiOPW5+ZQ= X-Received: by 2002:a19:8d01:: with SMTP id p1mr2112654lfd.149.1545425177149; Fri, 21 Dec 2018 12:46:17 -0800 (PST) Received: from uranus.localdomain ([5.18.103.226]) by smtp.gmail.com with ESMTPSA id p91sm5155852lfg.4.2018.12.21.12.46.16 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Dec 2018 12:46:16 -0800 (PST) Received: by uranus.localdomain (Postfix, from userid 1000) id 22E2A460769; Fri, 21 Dec 2018 23:46:16 +0300 (MSK) Date: Fri, 21 Dec 2018 23:46:16 +0300 From: Cyrill Gorcunov To: Matthew Wilcox Cc: Igor Stoppa , Andy Lutomirski , Peter Zijlstra , Dave Hansen , Mimi Zohar , Thiago Jung Bauermann , igor.stoppa@huawei.com, Nadav Amit , Kees Cook , Ahmed Soliman , linux-integrity@vger.kernel.org, kernel-hardening@lists.openwall.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 01/12] x86_64: memset_user() Message-ID: <20181221204616.GC8441@uranus> References: <20181221181423.20455-1-igor.stoppa@huawei.com> <20181221181423.20455-2-igor.stoppa@huawei.com> <20181221182515.GF10600@bombadil.infradead.org> <20181221200546.GA8441@uranus> <20181221202946.GJ10600@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181221202946.GJ10600@bombadil.infradead.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 21, 2018 at 12:29:46PM -0800, Matthew Wilcox wrote: > > > > > > That's inefficient. > > > > > > pattern = (unsigned char)c; > > > pattern |= pattern << 8; > > > pattern |= pattern << 16; > > > pattern |= pattern << 32; > > > > Won't > > > > pattern = 0x0101010101010101 * c; > > > > do the same but faster? > > Depends on your CPU. Some yes, some no. > > (Also you need to cast 'c' to unsigned char to avoid someone passing in > 0x1234 and getting 0x4646464646464634 instead of 0x3434343434343434) Cast to unsigned char is needed in any case. And as far as I remember we've been using this multiplication trick for a really long time in x86 land. I'm out of sources right now but it should be somewhere in assembly libs.