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.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, NICE_REPLY_A,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 1C51AC48BDF for ; Thu, 24 Jun 2021 09:48:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0564A613F7 for ; Thu, 24 Jun 2021 09:48:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232042AbhFXJuw (ORCPT ); Thu, 24 Jun 2021 05:50:52 -0400 Received: from lucky1.263xmail.com ([211.157.147.132]:60004 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229974AbhFXJut (ORCPT ); Thu, 24 Jun 2021 05:50:49 -0400 Received: from localhost (unknown [192.168.167.16]) by lucky1.263xmail.com (Postfix) with ESMTP id BDF14FAE32; Thu, 24 Jun 2021 17:48:20 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-SKE-CHECKED: 0 X-ANTISPAM-LEVEL: 2 X-ABS-CHECKED: 0 Received: from [10.4.23.82] (unknown [58.240.82.166]) by smtp.263.net (postfix) whith ESMTP id P12363T139709716100864S1624528101387286_; Thu, 24 Jun 2021 17:48:21 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <30bebb78a40b37b42fc888ec004cb697> X-RL-SENDER: wubian@uniontech.com X-SENDER: wubian@uniontech.com X-LOGIN-NAME: wubian@uniontech.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-RCPT-COUNT: 6 X-SENDER-IP: 58.240.82.166 X-ATTACHMENT-NUM: 0 X-System-Flag: 0 Subject: Re: [PATCH] uio: Fix bus error that access memory mapped by physical To: Will Deacon Cc: Greg KH , linux-kernel@vger.kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org References: <20210623065214.4525-1-wubian@uniontech.com> <5a2737e1-2a77-98b0-eea7-eae04d7a9fba@uniontech.com> <20210624082645.GA1169@willie-the-truck> From: wubian Message-ID: <2a57f130-315c-7180-faba-44507cc3817a@uniontech.com> Date: Thu, 24 Jun 2021 17:48:20 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: <20210624082645.GA1169@willie-the-truck> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021/6/24 下午4:26, Will Deacon wrote: > [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 > > Thank you very much for your reply,It gave me a deeper understanding of this problem. -- Best regards, wubian 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.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,NICE_REPLY_A,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 9D86BC48BDF for ; Thu, 24 Jun 2021 09:50:06 +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 351F66135C for ; Thu, 24 Jun 2021 09:50:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 351F66135C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=uniontech.com 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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6AWA2KaS7TlktY4Kd26srh7nTesXMiTwEyOdIkIBDNk=; b=gIsXdYwU8l9YwgqioD6EcLzoTP J6YtESdlsfmr3dYm0EgOcEzkTmL4wys8NqiFODbgHYKHTCgI+R/k3ZR0PUZmTC1AyrRy/sIOL5NkV jGBxwhv34tyU7y/ctoK6N8zeVzdP+97vKfbpTK8rZQDvJ279hqYDj2Vvmy/DlJu0ZTdbXMaTkyXFF JE5ttw7UneOMxtIrUuyMbulCMlolxqCW7ACf/V6sUc01pEBIzGwF7pBpXslnNYpn7j9vkZXk5Qo9A qYaN3llSSZ7+XCQNUiGhvJn2gJ24AuldQkxxmQZpq3BGKKhZG/JC1ifpVfioDXawiRAq5Z0G/DSVl VlACiy1Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwLyL-00DoHg-Ro; Thu, 24 Jun 2021 09:48:33 +0000 Received: from lucky1.263xmail.com ([211.157.147.132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwLyG-00DoFi-Ru for linux-arm-kernel@lists.infradead.org; Thu, 24 Jun 2021 09:48:31 +0000 Received: from localhost (unknown [192.168.167.16]) by lucky1.263xmail.com (Postfix) with ESMTP id BDF14FAE32; Thu, 24 Jun 2021 17:48:20 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-SKE-CHECKED: 0 X-ANTISPAM-LEVEL: 2 X-ABS-CHECKED: 0 Received: from [10.4.23.82] (unknown [58.240.82.166]) by smtp.263.net (postfix) whith ESMTP id P12363T139709716100864S1624528101387286_; Thu, 24 Jun 2021 17:48:21 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <30bebb78a40b37b42fc888ec004cb697> X-RL-SENDER: wubian@uniontech.com X-SENDER: wubian@uniontech.com X-LOGIN-NAME: wubian@uniontech.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-RCPT-COUNT: 6 X-SENDER-IP: 58.240.82.166 X-ATTACHMENT-NUM: 0 X-System-Flag: 0 Subject: Re: [PATCH] uio: Fix bus error that access memory mapped by physical To: Will Deacon Cc: Greg KH , linux-kernel@vger.kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org References: <20210623065214.4525-1-wubian@uniontech.com> <5a2737e1-2a77-98b0-eea7-eae04d7a9fba@uniontech.com> <20210624082645.GA1169@willie-the-truck> From: wubian Message-ID: <2a57f130-315c-7180-faba-44507cc3817a@uniontech.com> Date: Thu, 24 Jun 2021 17:48:20 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: <20210624082645.GA1169@willie-the-truck> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210624_024829_249843_638150EF X-CRM114-Status: GOOD ( 34.45 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAyMDIxLzYvMjQg5LiL5Y2INDoyNiwgV2lsbCBEZWFjb24gd3JvdGU6Cj4gW0ZZSTogdGhp cyBsYW5kZWQgaW4gbXkgc3BhbV0KPiAKPiBPbiBXZWQsIEp1biAyMywgMjAyMSBhdCAwODozMjo1 NVBNICswODAwLCB3dWJpYW4gd3JvdGU6Cj4+IE9uIDIwMjEvNi8yMyDkuIvljYg1OjI1LCBHcmVn IEtIIHdyb3RlOgo+Pj4gT24gV2VkLCBKdW4gMjMsIDIwMjEgYXQgMDQ6NDk6MTZQTSArMDgwMCwg d3ViaWFuIHdyb3RlOgo+Pj4+IEkgaGF2ZW7igJl0IGZvdW5kIHRoaXMgcHJvYmxlbSBvbiB0aGUg eDg2IHBsYXRmb3JtLiBJIG9ubHkgZm91bmQgaXQgb24gYXJtNjQuCj4+Pj4gSSB1c2VkIGdkYiB0 byB0cmFjayBtZW1zZXQgYW5kIGZvdW5kIHRoYXQgdGhlIGJ1cyBlcnJvciBpbgo+Pj4+IGdsaWJj L3N5c2RlcHMvYWFyY2g2NC9tZW1zZXQuUzogZGMgenZhLCBkc3Q7IHJlZmVyZW5jZSAiQXJjaGl0 ZWN0dXJlCj4+Pj4gUmVmZXJlbmNlIE1hbnVhbEFybXY4LCBmb3IgQXJtdjgtQSBhcmNoaXRlY3R1 cmUgcHJvZmlsZSIgbWFudWFsIGZvdW5kIHRoYXQKPj4+PiB0aGUgZGMgYXNzZW1ibHkgaW5zdHJ1 Y3Rpb27vvIhwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb27vvIkgaXMgcmVsYXRlZCB0byB0aGUKPj4+ PiBvcGVyYXRpb24gb2YgdGhlIGNhY2hlLCB0aGF0IGlzIHRvIHNheSwgdGhlcmUgaXMgYSBidXMg ZXJyb3IgaW4gdGhlCj4+Pj4gb3BlcmF0aW9uIG9mIHRoZSBjYWNoZSwgYW5kIHRoZW4gY2hlY2sg dGhlICJBUk0gQ29ydGV4LUEgU2VyaWVzIFByb2dyYW1tZXIncwo+Pj4+IEd1aWRlIGZvciBBUk12 OC1BICIgbWFudWFsLCBmb3VuZCB0aGF0IHRoZSBhcm12OCBhcmNoaXRlY3R1cmUgY2FjaGUgaGFz IGRhdGEKPj4+PiBjYWNoZSBhbmQgd3JpdGUgYnVmZmVyLCBhbmQgdGhlcmUgYXJlIHR3byBvcGVy YXRpb24gbW9kZXMgd3JpdGUtYmFjayBhbmQKPj4+PiB3cml0ZS10aHJvdWdoLCB3cml0ZSBvcGVy YXRpb25zIGluIHRoZXNlIHR3byBtb2RlcywgdGhlIGRhdGEgZmxvdyB3aWxsIHBhc3MKPj4+PiB0 aHJvdWdoIHRoZSB3cml0ZSBidWZmZXIsIGFuZCBwZ3Byb3Rfbm9uY2FjaGVkIHdpbGwgcHJvaGli aXQgZGF0YSBDYWNoZSBhbmQKPj4+PiB3cml0ZSBidWZmZXIsIHRoaXMgY2F1c2VzIHRoZSBkYyBj b21tYW5kIGluIG1lbXNldCB0byBmYWlsIChidXMgZXJyb3IpLCBhbmQKPj4+PiBwZ3Byb3Rfd3Jp dGVjb21iaW5lIGRvZXMgbm90IHByb2hpYml0IHdyaXRlIGJ1ZmZlciwgc28gdGhlIGRjIGNvbW1h bmQgaW4KPj4+PiBtZW1zZXQgaXMgc3VjY2Vzc2Z1bGx5IG9wZXJhdGVkIHdoZW4gcGdwcm90X3dy aXRlY29tYmluZSBpcyB1c2VkLgo+Pj4KPj4+IEFyZSB5b3Ugc3VyZSB0aGlzIGlzIG5vdCBqdXN0 IGEgc3BlY2lmaWMgaGFyZHdhcmUgcGxhdGZvcm0gaXNzdWU/ICBBcmUKPj4+IHlvdSBzdXJlIHRo aXMgaXMgZ29pbmcgdG8gYmUgY29ycmVjdCBmb3IgX0FMTF8gYXJtNjQgc3lzdGVtcz8KPj4+Cj4+ PiBQZXJoYXBzIGdldCB0aGUgYXJtNjQgZGV2ZWxvcGVycyB0byBhZ3JlZSB3aXRoIHdoYXQgaXMg aGFwcGVuaW5nIGhlcmUgYXMKPj4+IHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgYW55b25lIGhhcyBy ZXBvcnRlZCB0aGlzIHByb2JsZW0uCj4+Pgo+Pj4gV2hhdCBzcGVjaWZpYyBwbGF0Zm9ybSBhcmUg eW91IHVzaW5nIHRoYXQgdGhpcyBpc3N1ZSBoYXBwZW5zIG9uPwo+Pj4KPj4gSSBhcG9sb2dpemUg Zm9yIHRoZSBrZXJuZWwgbWFpbCByZXBseSBmb3JtYXQgcHJvYmxlbSwgSSB3aWxsIHBheSBhdHRl bnRpb24KPj4gdG8gaXQgaW4gdGhlIGZ1dHVyZS4KPj4KPj4gSSBvbmx5IGZvdW5kIHRoaXMgcHJv YmxlbSBvbiBIdWF3ZWkgS3VucGVuZyA5MjAgY3B1IGF0IHByZXNlbnQsIGFuZCBmb3VuZAo+PiB0 aGF0IHNvbWUgcGVvcGxlCj4+IGhhdmUgcmFpc2VkIHNpbWlsYXIgcHJvYmxlbXMgb24gdGhlIElu dGVybmV0Lgo+PiBsaW5r77yaaHR0cHM6Ly9naXRodWIuY29tL2lrd3ptL3VkbWFidWYvaXNzdWVz LzMxCj4+Cj4+IEBDYXRhbGluIE1hcmluYXMgQFdpbGwgRGVhY29uIEhhcyBhbnlvbmUgcmVwb3J0 ZWQgYSBzaW1pbGFyIHByb2JsZW0gb24gdGhlCj4+IGFybTY0IHBsYXRmb3JtPwo+IAo+IFRoZSBm dW5kYW1lbnRhbCBpc3N1ZSBoZXJlICh3aGljaCBzZWVtcyByZWxhdGVkIHRvIFsxXSkgaXMgdGhh dCB5b3UncmUKPiBtYXBwaW5nIE1NSU8gaW50byB1c2Vyc3BhY2UgYW5kIHRoZW4gZXhwZWN0aW5n IHRvIGJlIGFibGUgdG8gdXNlIHN0YW5kYXJkCj4gc3RyaW5nIHJvdXRpbmVzIHN1Y2ggYXMgbWVt c2V0IGFuZCBtZW1jcHkgb24gdGhlbS4gVGhpcyB3b24ndCB3b3JrLCBhcyB0aGUKPiBhcmNoaXRl Y3R1cmUgKGFuZCBsaWtlbHkgdGhlIE1NSU8gZW5kcG9pbnQpIGhhcyByZXN0cmljdGlvbnMgb24g dGhpbmdzIGxpa2UKPiB1bmFsaWduZWQgYWNjZXNzZXMsIGFjY2VzcyBzaXplIGFuZCBhdG9taWNp dHkgZm9yIE1NSU8gdGhhdCBkbyBub3QgYXBwbHkgdG8KPiBub3JtYWwgbWVtb3J5Lgo+IAo+IFJl dHVybmluZyBub24tY2FjaGVhYmxlIHJhdGhlciB0aGFuIGRldmljZSBtYXBwaW5ncyBmcm9tIFVJ TyBpcyBsaWtlbHkgdG8KPiBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gaXQgc29sdmVzLCBhcyBp dCBwZXJtaXRzIHRoZSBDUFUgdG8gbWFrZQo+IHNwZWN1bGF0aXZlIGFjY2Vzc2VzIHRvIHRoZSBy ZWdpb24uIElmIHRoZSBtYXBwZWQgZGV2aWNlIGhhcyBzaWRlLWVmZmVjdHMsCj4gdGhlbiB0aGlz IHdpbGwgZW5kIGluIGRpc2FzdGVyLgo+IAo+IFNvIEkgZG9uJ3QgdGhpbmsgdGhpcyBwYXRjaCBp cyBjb3JyZWN0LCBhbmQgSSB0aGluayB0aGF0IGlmIHlvdSdyZSBleHBvc2luZwo+IE1NSU8gdG8g dXNlcnNwYWNlIHRoZW4geW91IG5lZWQgdG8gYmUgdmVyeSBjYXJlZnVsIGFib3V0IHdoYXQgeW91 IGRvIHdpdGgKPiBpdCByYXRoZXIgdGhhbiBibGluZGx5IHBhc3MgTU1JTyBwb2ludGVycyBpbnRv IHN0YW5kYXJkIHJvdXRpbmVzIHRoYXQgZXhwZWN0Cj4gdG8gb3BlcmF0ZSBvbiBub3JtYWwgbWVt b3J5LiBUaGVyZSdzIGEgcmVhc29uIGRyaXZlcnMgdXN1YWxseSBsaXZlIGluIHRoZQo+IGtlcm5l bCA6KQo+IAo+IFRoYW5rcywKPiAKPiBXaWxsCj4gCj4gWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL3IvZGE5YzJmYTktYTU0NS0wYzQ4LTQ0OTAtZDYxMzRjYzMxNDI1QGh1YXdlaS5jb20KPiAK PiAKClRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHlvdXIgcmVwbHksSXQgZ2F2ZSBtZSBhIGRlZXBl ciB1bmRlcnN0YW5kaW5nIG9mIAp0aGlzIHByb2JsZW0uCgotLSAKQmVzdCByZWdhcmRzLAoKd3Vi aWFuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK