Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp441017imm; Fri, 3 Aug 2018 06:05:27 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfotfw9TsFHuAl9QJm64nhMB2Beo5YU0dFAWf3y++beYUfkqTiRBjVT4SCIqpmM6Fa6nzSc X-Received: by 2002:a65:58c8:: with SMTP id e8-v6mr3688664pgu.96.1533301526996; Fri, 03 Aug 2018 06:05:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533301526; cv=none; d=google.com; s=arc-20160816; b=M3JokBptxW8/B0DXkoyvdGX5+jzAElmZIob/6fs2ZD4yCVyNyMjozu+Yu9zyg1gbMC +7c/oLUvCThhHX2wpdIty54hCwOZYvVxEqy+NaqH2ZDldScKdV4eF8gCJoN/nKfolp7q 9TkQ5TLRcVPLNB6gQeTDZ1t+JxzSixtjQPALWDz9Y15W27eFs7x7b+L4UETCNgWS4Gk8 t930hyjeq0b5CDLQmwxCTW1lA6QJX3WZwQvxec49tZY+Z/M7VUu9IbSK6sF4ZV12CZg1 dA/TED8zGvnXPFlQSUcZywZNE2f61INkCsju/PFV470tpa1cIdOBgP/UJKkfa7dPo12w SzqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=Ln+F+gCjwUvkHKo8dPb5CFuv5zd2Q2hJXkquNAZrNoc=; b=hYiYK1v7e0AHGlfGcek7+5QbISyV7m5mbuxN9AePR0Swcezy0r76cI7DZk9Ru9KMFC W+ES5usY6mhbAvTBO6CATLwGjgwPRTjfQ2i0oqMZ6JZ/510lGGydj1V7QSxRIX6rFl0C Jz1ot1Ty+QFsCFrhW5IGSMth0e0M5dyhiyhpP7vwQO/S73Jzj5LcFqCRySA5GIo2DtMd qG9aIsdz9i3gO0Y4hcGKv4Twcajwwh26y0C/WRGzYhSZ1gfzC3Fb+EVAvpmE66KzhlML XVSEOT+dv7ZU88NeXtiGdNyND6SoUXEE+dxD6Ys+Q5dD4LU/QldHxOaoEH9CFahy93+Q i3mg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g34-v6si3672266pld.244.2018.08.03.06.05.12; Fri, 03 Aug 2018 06:05:26 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732036AbeHCO7A convert rfc822-to-8bit (ORCPT + 99 others); Fri, 3 Aug 2018 10:59:00 -0400 Received: from eu-smtp-delivery-211.mimecast.com ([207.82.80.211]:53711 "EHLO eu-smtp-delivery-211.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729603AbeHCO7A (ORCPT ); Fri, 3 Aug 2018 10:59:00 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-86-iQ0XAXqOMCieZfrFr4_VAA-1; Fri, 03 Aug 2018 14:02:43 +0100 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Fri, 3 Aug 2018 14:04:22 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Fri, 3 Aug 2018 14:04:22 +0100 From: David Laight To: 'Mikulas Patocka' CC: 'Ard Biesheuvel' , Ramana Radhakrishnan , Florian Weimer , "Thomas Petazzoni" , GNU C Library , Andrew Pinski , "Catalin Marinas" , Will Deacon , "Russell King" , LKML , linux-arm-kernel Subject: RE: framebuffer corruption due to overlapping stp instructions on arm64 Thread-Topic: framebuffer corruption due to overlapping stp instructions on arm64 Thread-Index: AQHUKwzKyzS7gP0u+Em6lFS72D3AkaSt4YCg///76QCAACCeQA== Date: Fri, 3 Aug 2018 13:04:22 +0000 Message-ID: References: <9acdacdb-3bd5-b71a-3003-e48132ee1371@redhat.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.33] MIME-Version: 1.0 X-MC-Unique: iQ0XAXqOMCieZfrFr4_VAA-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mikulas Patocka > Sent: 03 August 2018 13:05 ... > > Even on x86 using memcpy() on PCIe memory (maybe mmap()ed into userspace) > > isn't a good idea. > > In the kernel memcpy_to/fromio() ought to be a better choice but that > > is just an alternate name for memcpy(). > > > > The problem on x86 is that memcpy() is likely to be implemented as > > 'rep movsb' on modern cpu - relying on the cpu hardware to perform > > cache-line sized transfers (etc). > > Unfortunately on uncached locations it has to revert to byte copies. > > So PCIe transfers (especially reads) are very slow. > > > > The transfers need to use the largest size register available. > > > > David > > On x86, the framebuffer is mapped as write-combining memory type, so "rep > movsb" could merge the byte writes to larger chunks. I don't have a cpu > with the ERMS feature - could anyone try it if rep movsb works worse or > better than explicit writes to the framebuffer? I don't think 'write combining' can help reads, and memcpy_to/fromio() are likely to be used for normal memory mapped io areas. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)