From: Matthew Wilcox <willy@infradead.org>
To: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Igor Stoppa <igor.stoppa@gmail.com>,
Andy Lutomirski <luto@amacapital.net>,
Peter Zijlstra <peterz@infradead.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Mimi Zohar <zohar@linux.vnet.ibm.com>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>,
igor.stoppa@huawei.com, Nadav Amit <nadav.amit@gmail.com>,
Kees Cook <keescook@chromium.org>,
Ahmed Soliman <ahmedsoliman@mena.vt.edu>,
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()
Date: Fri, 21 Dec 2018 12:29:46 -0800 [thread overview]
Message-ID: <20181221202946.GJ10600@bombadil.infradead.org> (raw)
In-Reply-To: <20181221200546.GA8441@uranus>
On Fri, Dec 21, 2018 at 11:05:46PM +0300, Cyrill Gorcunov wrote:
> On Fri, Dec 21, 2018 at 10:25:16AM -0800, Matthew Wilcox wrote:
> > On Fri, Dec 21, 2018 at 08:14:12PM +0200, Igor Stoppa wrote:
> > > +unsigned long __memset_user(void __user *addr, int c, unsigned long size)
> > > +{
> > > + long __d0;
> > > + unsigned long pattern = 0;
> > > + int i;
> > > +
> > > + for (i = 0; i < 8; i++)
> > > + pattern = (pattern << 8) | (0xFF & c);
> >
> > 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)
next prev parent reply other threads:[~2018-12-21 20:30 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20181221181423.20455-1-igor.stoppa@huawei.com>
2018-12-21 18:14 ` Igor Stoppa
2018-12-21 18:25 ` Matthew Wilcox
2018-12-21 18:46 ` Igor Stoppa
2018-12-21 20:05 ` Cyrill Gorcunov
2018-12-21 20:29 ` Matthew Wilcox [this message]
2018-12-21 20:46 ` Cyrill Gorcunov
2018-12-21 21:07 ` Matthew Wilcox
2018-12-21 21:17 ` Cyrill Gorcunov
2018-12-21 18:14 ` [PATCH 02/12] __wr_after_init: linker section and label Igor Stoppa
2018-12-21 18:14 ` [PATCH 03/12] __wr_after_init: generic functionality Igor Stoppa
2018-12-21 18:41 ` Matthew Wilcox
2018-12-21 19:07 ` Igor Stoppa
2018-12-21 19:43 ` Matthew Wilcox
2018-12-21 21:54 ` Igor Stoppa
2018-12-21 18:14 ` [PATCH 04/12] __wr_after_init: debug writes Igor Stoppa
2018-12-21 18:14 ` [PATCH 05/12] __wr_after_init: x86_64: __wr_op Igor Stoppa
2018-12-21 18:14 ` [PATCH 06/12] __wr_after_init: Documentation: self-protection Igor Stoppa
2018-12-21 18:14 ` [PATCH 07/12] __wr_after_init: lkdtm test Igor Stoppa
2018-12-21 18:14 ` [PATCH 08/12] rodata_test: refactor tests Igor Stoppa
2018-12-21 18:14 ` [PATCH 09/12] rodata_test: add verification for __wr_after_init Igor Stoppa
2018-12-21 18:14 ` [PATCH 10/12] __wr_after_init: test write rare functionality Igor Stoppa
2018-12-21 18:14 ` [PATCH 11/12] IMA: turn ima_policy_flags into __wr_after_init Igor Stoppa
2018-12-21 18:14 ` [PATCH 12/12] x86_64: __clear_user as case of __memset_user Igor Stoppa
2018-12-19 21:33 [RFC v2 PATCH 0/12] hardening: statically allocated protected memory Igor Stoppa
2018-12-19 21:33 ` [PATCH 01/12] x86_64: memset_user() Igor Stoppa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181221202946.GJ10600@bombadil.infradead.org \
--to=willy@infradead.org \
--cc=ahmedsoliman@mena.vt.edu \
--cc=bauerman@linux.ibm.com \
--cc=dave.hansen@linux.intel.com \
--cc=gorcunov@gmail.com \
--cc=igor.stoppa@gmail.com \
--cc=igor.stoppa@huawei.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@amacapital.net \
--cc=nadav.amit@gmail.com \
--cc=peterz@infradead.org \
--cc=zohar@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox