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 X-Spam-Level: X-Spam-Status: No, score=-12.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25140C48BDF for ; Thu, 24 Jun 2021 08:26:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 031E8613E3 for ; Thu, 24 Jun 2021 08:26:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231917AbhFXI3K (ORCPT ); Thu, 24 Jun 2021 04:29:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:37580 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231936AbhFXI3J (ORCPT ); Thu, 24 Jun 2021 04:29:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 91EA260230; Thu, 24 Jun 2021 08:26:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624523210; bh=QsZCbmjyeZ6KeWiEMbwAM/b7482GJwwssD6Ntfd4XKA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=hLWYaLhoZTb3h6Ws/owmwtkcAX7qHWV9PyaKi0LrJlTMLkB3KwNIz32PeNNgy4NxW 3atG0LokhOF7K2OR0WK0thRGfrhYwfEYLEhL1GWNGyu+9ZqcX+ePeXdBB/eDr1mwEH 0mxDN7+leYYPk3i5nkzW2ND2Ae+Hcxyb5YC8EmHTpJw9BUMEcN8SGj+QJwxftnryLf DU1ndCP7hHL1zPwnwc+v5ez/PwqDG/SIYqZu6U2bMKShVkH1V7g/CoNFbmTqYmzfjX wTOqBfUsozVZRaR3nUrGU8BlbU3S/4SRw5t9YoWaDfLkfTvcidxJCIF8kWb5FPjB4R aZHJdZLZrgtyA== Date: Thu, 24 Jun 2021 09:26:46 +0100 From: Will Deacon To: wubian Cc: Greg KH , linux-kernel@vger.kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] uio: Fix bus error that access memory mapped by physical Message-ID: <20210624082645.GA1169@willie-the-truck> References: <20210623065214.4525-1-wubian@uniontech.com> <5a2737e1-2a77-98b0-eea7-eae04d7a9fba@uniontech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [FYI: this landed in my spam] On Wed, Jun 23, 2021 at 08:32:55PM +0800, wubian wrote: > On 2021/6/23 下午5:25, Greg KH wrote: > > On Wed, Jun 23, 2021 at 04:49:16PM +0800, wubian wrote: > > > I haven’t found this problem on the x86 platform. I only found it on arm64. > > > I used gdb to track memset and found that the bus error in > > > glibc/sysdeps/aarch64/memset.S: dc zva, dst; reference "Architecture > > > Reference ManualArmv8, for Armv8-A architecture profile" manual found that > > > the dc assembly instruction(performance optimization) is related to the > > > operation of the cache, that is to say, there is a bus error in the > > > operation of the cache, and then check the "ARM Cortex-A Series Programmer's > > > Guide for ARMv8-A " manual, found that the armv8 architecture cache has data > > > cache and write buffer, and there are two operation modes write-back and > > > write-through, write operations in these two modes, the data flow will pass > > > through the write buffer, and pgprot_noncached will prohibit data Cache and > > > write buffer, this causes the dc command in memset to fail (bus error), and > > > pgprot_writecombine does not prohibit write buffer, so the dc command in > > > memset is successfully operated when pgprot_writecombine is used. > > > > Are you sure this is not just a specific hardware platform issue? Are > > you sure this is going to be correct for _ALL_ arm64 systems? > > > > Perhaps get the arm64 developers to agree with what is happening here as > > this is the first time anyone has reported this problem. > > > > What specific platform are you using that this issue happens on? > > > I apologize for the kernel mail reply format problem, I will pay attention > to it in the future. > > I only found this problem on Huawei Kunpeng 920 cpu at present, and found > that some people > have raised similar problems on the Internet. > link:https://github.com/ikwzm/udmabuf/issues/31 > > @Catalin Marinas @Will Deacon Has anyone reported a similar problem on the > arm64 platform? The fundamental issue here (which seems related to [1]) is that you're mapping MMIO into userspace and then expecting to be able to use standard string routines such as memset and memcpy on them. This won't work, as the architecture (and likely the MMIO endpoint) has restrictions on things like unaligned accesses, access size and atomicity for MMIO that do not apply to normal memory. Returning non-cacheable rather than device mappings from UIO is likely to cause more problems than it solves, as it permits the CPU to make speculative accesses to the region. If the mapped device has side-effects, then this will end in disaster. So I don't think this patch is correct, and I think that if you're exposing MMIO to userspace then you need to be very careful about what you do with it rather than blindly pass MMIO pointers into standard routines that expect to operate on normal memory. There's a reason drivers usually live in the kernel :) Thanks, Will [1] https://lore.kernel.org/r/da9c2fa9-a545-0c48-4490-d6134cc31425@huawei.com 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 X-Spam-Level: X-Spam-Status: No, score=-10.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C97AAC48BDF for ; Thu, 24 Jun 2021 08:28:32 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8BBA2613F3 for ; Thu, 24 Jun 2021 08:28:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8BBA2613F3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FCsWcXC2R6fSUY3uaYdR9XiDqz+bbWoppNwVxSH/rRg=; b=MXYRU7XwbeLamb CxtEmpImhP2u/Ip4zfLjUN3bhnDk6/jtiHy06aVJlMezfMgZQTwVcCeZZnu996EQzjE7sKryuW92R iy+dYa8dar+laj4td1AeAOTX18maiNa6TbPJcVt8mKiTFkCS2i0RDdiBkJ3O5eshf6VHU35TbDABx +XeGSrL7tC9YVwo987apTi+A2RnHhXQk5p+YFn1X7nPVSgyDCA618B1wTCntzPdwWlwq4tq2A7InN HvdzIFA4P5w2ASa/sucG8v9fmsfL7SkSpb2Kz2EgStkF+KLYjVy8RAVxyHthXfC/PwFv/LMhCQi5G I7gzlijUvmyQxwyxEjHQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwKhK-00DPzc-4L; Thu, 24 Jun 2021 08:26:54 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwKhH-00DPzA-0Z for linux-arm-kernel@lists.infradead.org; Thu, 24 Jun 2021 08:26:52 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 91EA260230; Thu, 24 Jun 2021 08:26:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624523210; bh=QsZCbmjyeZ6KeWiEMbwAM/b7482GJwwssD6Ntfd4XKA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=hLWYaLhoZTb3h6Ws/owmwtkcAX7qHWV9PyaKi0LrJlTMLkB3KwNIz32PeNNgy4NxW 3atG0LokhOF7K2OR0WK0thRGfrhYwfEYLEhL1GWNGyu+9ZqcX+ePeXdBB/eDr1mwEH 0mxDN7+leYYPk3i5nkzW2ND2Ae+Hcxyb5YC8EmHTpJw9BUMEcN8SGj+QJwxftnryLf DU1ndCP7hHL1zPwnwc+v5ez/PwqDG/SIYqZu6U2bMKShVkH1V7g/CoNFbmTqYmzfjX wTOqBfUsozVZRaR3nUrGU8BlbU3S/4SRw5t9YoWaDfLkfTvcidxJCIF8kWb5FPjB4R aZHJdZLZrgtyA== Date: Thu, 24 Jun 2021 09:26:46 +0100 From: Will Deacon To: wubian Cc: Greg KH , linux-kernel@vger.kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] uio: Fix bus error that access memory mapped by physical Message-ID: <20210624082645.GA1169@willie-the-truck> References: <20210623065214.4525-1-wubian@uniontech.com> <5a2737e1-2a77-98b0-eea7-eae04d7a9fba@uniontech.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210624_012651_133801_31335657 X-CRM114-Status: GOOD ( 31.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org W0ZZSTogdGhpcyBsYW5kZWQgaW4gbXkgc3BhbV0KCk9uIFdlZCwgSnVuIDIzLCAyMDIxIGF0IDA4 OjMyOjU1UE0gKzA4MDAsIHd1YmlhbiB3cm90ZToKPiBPbiAyMDIxLzYvMjMg5LiL5Y2INToyNSwg R3JlZyBLSCB3cm90ZToKPiA+IE9uIFdlZCwgSnVuIDIzLCAyMDIxIGF0IDA0OjQ5OjE2UE0gKzA4 MDAsIHd1YmlhbiB3cm90ZToKPiA+ID4gSSBoYXZlbuKAmXQgZm91bmQgdGhpcyBwcm9ibGVtIG9u IHRoZSB4ODYgcGxhdGZvcm0uIEkgb25seSBmb3VuZCBpdCBvbiBhcm02NC4KPiA+ID4gSSB1c2Vk IGdkYiB0byB0cmFjayBtZW1zZXQgYW5kIGZvdW5kIHRoYXQgdGhlIGJ1cyBlcnJvciBpbgo+ID4g PiBnbGliYy9zeXNkZXBzL2FhcmNoNjQvbWVtc2V0LlM6IGRjIHp2YSwgZHN0OyByZWZlcmVuY2Ug IkFyY2hpdGVjdHVyZQo+ID4gPiBSZWZlcmVuY2UgTWFudWFsQXJtdjgsIGZvciBBcm12OC1BIGFy Y2hpdGVjdHVyZSBwcm9maWxlIiBtYW51YWwgZm91bmQgdGhhdAo+ID4gPiB0aGUgZGMgYXNzZW1i bHkgaW5zdHJ1Y3Rpb27vvIhwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb27vvIkgaXMgcmVsYXRlZCB0 byB0aGUKPiA+ID4gb3BlcmF0aW9uIG9mIHRoZSBjYWNoZSwgdGhhdCBpcyB0byBzYXksIHRoZXJl IGlzIGEgYnVzIGVycm9yIGluIHRoZQo+ID4gPiBvcGVyYXRpb24gb2YgdGhlIGNhY2hlLCBhbmQg dGhlbiBjaGVjayB0aGUgIkFSTSBDb3J0ZXgtQSBTZXJpZXMgUHJvZ3JhbW1lcidzCj4gPiA+IEd1 aWRlIGZvciBBUk12OC1BICIgbWFudWFsLCBmb3VuZCB0aGF0IHRoZSBhcm12OCBhcmNoaXRlY3R1 cmUgY2FjaGUgaGFzIGRhdGEKPiA+ID4gY2FjaGUgYW5kIHdyaXRlIGJ1ZmZlciwgYW5kIHRoZXJl IGFyZSB0d28gb3BlcmF0aW9uIG1vZGVzIHdyaXRlLWJhY2sgYW5kCj4gPiA+IHdyaXRlLXRocm91 Z2gsIHdyaXRlIG9wZXJhdGlvbnMgaW4gdGhlc2UgdHdvIG1vZGVzLCB0aGUgZGF0YSBmbG93IHdp bGwgcGFzcwo+ID4gPiB0aHJvdWdoIHRoZSB3cml0ZSBidWZmZXIsIGFuZCBwZ3Byb3Rfbm9uY2Fj aGVkIHdpbGwgcHJvaGliaXQgZGF0YSBDYWNoZSBhbmQKPiA+ID4gd3JpdGUgYnVmZmVyLCB0aGlz IGNhdXNlcyB0aGUgZGMgY29tbWFuZCBpbiBtZW1zZXQgdG8gZmFpbCAoYnVzIGVycm9yKSwgYW5k Cj4gPiA+IHBncHJvdF93cml0ZWNvbWJpbmUgZG9lcyBub3QgcHJvaGliaXQgd3JpdGUgYnVmZmVy LCBzbyB0aGUgZGMgY29tbWFuZCBpbgo+ID4gPiBtZW1zZXQgaXMgc3VjY2Vzc2Z1bGx5IG9wZXJh dGVkIHdoZW4gcGdwcm90X3dyaXRlY29tYmluZSBpcyB1c2VkLgo+ID4gCj4gPiBBcmUgeW91IHN1 cmUgdGhpcyBpcyBub3QganVzdCBhIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3JtIGlzc3VlPyAg QXJlCj4gPiB5b3Ugc3VyZSB0aGlzIGlzIGdvaW5nIHRvIGJlIGNvcnJlY3QgZm9yIF9BTExfIGFy bTY0IHN5c3RlbXM/Cj4gPiAKPiA+IFBlcmhhcHMgZ2V0IHRoZSBhcm02NCBkZXZlbG9wZXJzIHRv IGFncmVlIHdpdGggd2hhdCBpcyBoYXBwZW5pbmcgaGVyZSBhcwo+ID4gdGhpcyBpcyB0aGUgZmly c3QgdGltZSBhbnlvbmUgaGFzIHJlcG9ydGVkIHRoaXMgcHJvYmxlbS4KPiA+IAo+ID4gV2hhdCBz cGVjaWZpYyBwbGF0Zm9ybSBhcmUgeW91IHVzaW5nIHRoYXQgdGhpcyBpc3N1ZSBoYXBwZW5zIG9u Pwo+ID4gCj4gSSBhcG9sb2dpemUgZm9yIHRoZSBrZXJuZWwgbWFpbCByZXBseSBmb3JtYXQgcHJv YmxlbSwgSSB3aWxsIHBheSBhdHRlbnRpb24KPiB0byBpdCBpbiB0aGUgZnV0dXJlLgo+IAo+IEkg b25seSBmb3VuZCB0aGlzIHByb2JsZW0gb24gSHVhd2VpIEt1bnBlbmcgOTIwIGNwdSBhdCBwcmVz ZW50LCBhbmQgZm91bmQKPiB0aGF0IHNvbWUgcGVvcGxlCj4gaGF2ZSByYWlzZWQgc2ltaWxhciBw cm9ibGVtcyBvbiB0aGUgSW50ZXJuZXQuCj4gbGlua++8mmh0dHBzOi8vZ2l0aHViLmNvbS9pa3d6 bS91ZG1hYnVmL2lzc3Vlcy8zMQo+IAo+IEBDYXRhbGluIE1hcmluYXMgQFdpbGwgRGVhY29uIEhh cyBhbnlvbmUgcmVwb3J0ZWQgYSBzaW1pbGFyIHByb2JsZW0gb24gdGhlCj4gYXJtNjQgcGxhdGZv cm0/CgpUaGUgZnVuZGFtZW50YWwgaXNzdWUgaGVyZSAod2hpY2ggc2VlbXMgcmVsYXRlZCB0byBb MV0pIGlzIHRoYXQgeW91J3JlCm1hcHBpbmcgTU1JTyBpbnRvIHVzZXJzcGFjZSBhbmQgdGhlbiBl eHBlY3RpbmcgdG8gYmUgYWJsZSB0byB1c2Ugc3RhbmRhcmQKc3RyaW5nIHJvdXRpbmVzIHN1Y2gg YXMgbWVtc2V0IGFuZCBtZW1jcHkgb24gdGhlbS4gVGhpcyB3b24ndCB3b3JrLCBhcyB0aGUKYXJj aGl0ZWN0dXJlIChhbmQgbGlrZWx5IHRoZSBNTUlPIGVuZHBvaW50KSBoYXMgcmVzdHJpY3Rpb25z IG9uIHRoaW5ncyBsaWtlCnVuYWxpZ25lZCBhY2Nlc3NlcywgYWNjZXNzIHNpemUgYW5kIGF0b21p Y2l0eSBmb3IgTU1JTyB0aGF0IGRvIG5vdCBhcHBseSB0bwpub3JtYWwgbWVtb3J5LgoKUmV0dXJu aW5nIG5vbi1jYWNoZWFibGUgcmF0aGVyIHRoYW4gZGV2aWNlIG1hcHBpbmdzIGZyb20gVUlPIGlz IGxpa2VseSB0bwpjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gaXQgc29sdmVzLCBhcyBpdCBwZXJt aXRzIHRoZSBDUFUgdG8gbWFrZQpzcGVjdWxhdGl2ZSBhY2Nlc3NlcyB0byB0aGUgcmVnaW9uLiBJ ZiB0aGUgbWFwcGVkIGRldmljZSBoYXMgc2lkZS1lZmZlY3RzLAp0aGVuIHRoaXMgd2lsbCBlbmQg aW4gZGlzYXN0ZXIuCgpTbyBJIGRvbid0IHRoaW5rIHRoaXMgcGF0Y2ggaXMgY29ycmVjdCwgYW5k IEkgdGhpbmsgdGhhdCBpZiB5b3UncmUgZXhwb3NpbmcKTU1JTyB0byB1c2Vyc3BhY2UgdGhlbiB5 b3UgbmVlZCB0byBiZSB2ZXJ5IGNhcmVmdWwgYWJvdXQgd2hhdCB5b3UgZG8gd2l0aAppdCByYXRo ZXIgdGhhbiBibGluZGx5IHBhc3MgTU1JTyBwb2ludGVycyBpbnRvIHN0YW5kYXJkIHJvdXRpbmVz IHRoYXQgZXhwZWN0CnRvIG9wZXJhdGUgb24gbm9ybWFsIG1lbW9yeS4gVGhlcmUncyBhIHJlYXNv biBkcml2ZXJzIHVzdWFsbHkgbGl2ZSBpbiB0aGUKa2VybmVsIDopCgpUaGFua3MsCgpXaWxsCgpb MV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci9kYTljMmZhOS1hNTQ1LTBjNDgtNDQ5MC1kNjEz NGNjMzE0MjVAaHVhd2VpLmNvbQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=