All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcin Wojtas <mw@semihalf.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>, mpatocka@redhat.com
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Joao Pinto <Joao.Pinto@synopsys.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	linux-pci@vger.kernel.org, Will Deacon <will.deacon@arm.com>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Matt Sealey <neko@bakuhatsu.net>,
	Jingoo Han <jingoohan1@gmail.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: framebuffer corruption due to overlapping stp instructions on arm64
Date: Tue, 7 Aug 2018 18:40:36 +0200	[thread overview]
Message-ID: <CAPv3WKdCMpy6KarducQEtSYP35zdELhparkmPPMKGMUhsdk1Qw@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu_iCgAeGmrajZ_euMcFLntWG1a51HF_HQ1TO=fV_v__AQ@mail.gmail.com>

Ard, Mikulas,

pon., 6 sie 2018 o 22:11 Ard Biesheuvel <ard.biesheuvel@linaro.org> napisał(a):
>
> On 6 August 2018 at 21:54, Mikulas Patocka <mpatocka@redhat.com> wrote:
> >
> >
> > On Mon, 6 Aug 2018, Ard Biesheuvel wrote:
> >
> >> On 6 August 2018 at 19:09, Mikulas Patocka <mpatocka@redhat.com> wrote:
> >> >
> >> >
> >> > On Mon, 6 Aug 2018, Ard Biesheuvel wrote:
> >> >
> >> >> On 6 August 2018 at 14:42, Robin Murphy <robin.murphy@arm.com> wrote:
> >> >> > On 06/08/18 11:25, Mikulas Patocka wrote:
> >> >> > [...]
> >> >> >>>
> >> >> >>> None of this explains why some transactions fail to make it across
> >> >> >>> entirely. The overlapping writes in question write the same data to
> >> >> >>> the memory locations that are covered by both, and so the ordering in
> >> >> >>> which the transactions are received should not affect the outcome.
> >> >> >>
> >> >> >>
> >> >> >> You're right that the corruption couldn't be explained just by reordering
> >> >> >> writes. My hypothesis is that the PCIe controller tries to disambiguate
> >> >> >> the overlapping writes, but the disambiguation logic was not tested and it
> >> >> >> is buggy. If there's a barrier between the overlapping writes, the PCIe
> >> >> >> controller won't see any overlapping writes, so it won't trigger the
> >> >> >> faulty disambiguation logic and it works.
> >> >> >>
> >> >> >> Could the ARM engineers look if there's some chicken bit in Cortex-A72
> >> >> >> that could insert barriers between non-cached writes automatically?
> >> >> >
> >> >> >
> >> >> > I don't think there is, and even if there was I imagine it would have a
> >> >> > pretty hideous effect on non-coherent DMA buffers and the various other
> >> >> > places in which we have Normal-NC mappings of actual system RAM.
> >> >> >
> >> >>
> >> >> Looking at the A72 manual, there is one chicken bit that looks like it
> >> >> may be related:
> >> >>
> >> >> CPUACTLR_EL1 bit #50:
> >> >>
> >> >> 0 Enables store streaming on NC/GRE memory type. This is the reset value.
> >> >> 1 Disables store streaming on NC/GRE memory type.
> >> >>
> >> >> so putting something like
> >> >>
> >> >> mrs x0, S3_1_C15_C2_0
> >> >> orr x0, x0, #(1 << 50)
> >> >> msr S3_1_C15_C2_0, x0
> >> >>
> >> >> in __cpu_setup() would be worth a try.
> >> >
> >> > It won't boot.
> >> >
> >> > But if i write the same value that was read, it also won't boot.
> >> >
> >> > I created a simple kernel module that reads this register and it has bit
> >> > 32 set, all other bits clear. But when I write the same value into it, the
> >> > core that does the write is stuck in infinite loop.
> >> >
> >> > So, it seems that we are writing this register from a wrong place.
> >> >
> >>
> >> Ah, my bad. I didn't look closely enough at the description:
> >>
> >> """
> >> The accessibility to the CPUACTLR_EL1 by Exception level is:
> >>
> >> EL0              -
> >> EL1(NS)          RW (a)
> >> EL1(S)           RW (a)
> >> EL2              RW (b)
> >> EL3(SCR.NS = 1)  RW
> >> EL3(SCR.NS = 0)  RW
> >>
> >> (a) Write access if ACTLR_EL3.CPUACTLR is 1 and ACTLR_EL2.CPUACTLR is
> >> 1, or ACTLR_EL3.CPUACTLR is 1 and SCR.NS is 0.
> >> """
> >>
> >> so you'll have to do this from ARM Trusted Firmware. If you're
> >> comfortable rebuilding that:
> >>
> >> diff --git a/include/lib/cpus/aarch64/cortex_a72.h
> >> b/include/lib/cpus/aarch64/cortex_a72.h
> >> index bfd64918625b..a7b8cf4be0c6 100644
> >> --- a/include/lib/cpus/aarch64/cortex_a72.h
> >> +++ b/include/lib/cpus/aarch64/cortex_a72.h
> >> @@ -31,6 +31,7 @@
> >>  #define CORTEX_A72_ACTLR_EL1                   S3_1_C15_C2_0
> >>
> >>  #define CORTEX_A72_ACTLR_DISABLE_L1_DCACHE_HW_PFTCH    (1 << 56)
> >> +#define CORTEX_A72_ACTLR_DIS_NC_GRE_STORE_STREAMING    (1 << 50)
> >>  #define CORTEX_A72_ACTLR_NO_ALLOC_WBWA         (1 << 49)
> >>  #define CORTEX_A72_ACTLR_DCC_AS_DCCI           (1 << 44)
> >>  #define CORTEX_A72_ACTLR_EL1_DIS_INSTR_PREFETCH                (1 << 32)
> >> diff --git a/lib/cpus/aarch64/cortex_a72.S b/lib/cpus/aarch64/cortex_a72.S
> >> index 55e508678284..5914d6ee3ba6 100644
> >> --- a/lib/cpus/aarch64/cortex_a72.S
> >> +++ b/lib/cpus/aarch64/cortex_a72.S
> >> @@ -133,6 +133,15 @@ func cortex_a72_reset_func
> >>         orr     x0, x0, #CORTEX_A72_ECTLR_SMP_BIT
> >>         msr     CORTEX_A72_ECTLR_EL1, x0
> >>         isb
> >> +
> >> +       /* ---------------------------------------------
> >> +        * Disables store streaming on NC/GRE memory type.
> >> +        * ---------------------------------------------
> >> +        */
> >> +       mrs     x0, CORTEX_A72_ACTLR_EL1
> >> +       orr     x0, x0, #CORTEX_A72_ACTLR_DIS_NC_GRE_STORE_STREAMING
> >> +       msr     CORTEX_A72_ACTLR_EL1, x0
> >> +       isb
> >>         ret x19
> >>  endfunc cortex_a72_reset_func
> >
> > Unfortunatelly, it doesn't work. I verified that the bit is set after
> > booting Linux, but the memcpy corruption was still present.
> >
> > I also tried the other chicken bits, it slowed down the system noticeably,
> > but had no effect on the memcpy corruption.
> >
>
> OK, it was worth a shot
>
> Let's wait and see if Marcin has any results.
>

After some self-caused setup issues I was able to run the test on my
MacchiatoBin with the kernel v4.18-rc8. It's been running for 1h+ now,
loading the CPU to 100% and no single error event...

I built the binary file with:
gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -O2

Maybe it's the older firmware issue? Please send the full bootlog with
the very first line after reset. My board rev is v1.3 and I use
mainline UEFI (newest edk2 + edk2-platforms) + newest publicly
available ARM-TF and earliest firmware for this board.

Best regards,
Marcin

WARNING: multiple messages have this Message-ID (diff)
From: Marcin Wojtas <mw@semihalf.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>, mpatocka@redhat.com
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Joao Pinto <Joao.Pinto@synopsys.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Matt Sealey <neko@bakuhatsu.net>,
	linux-pci@vger.kernel.org, Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: framebuffer corruption due to overlapping stp instructions on arm64
Date: Tue, 7 Aug 2018 18:40:36 +0200	[thread overview]
Message-ID: <CAPv3WKdCMpy6KarducQEtSYP35zdELhparkmPPMKGMUhsdk1Qw@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu_iCgAeGmrajZ_euMcFLntWG1a51HF_HQ1TO=fV_v__AQ@mail.gmail.com>

QXJkLCBNaWt1bGFzLAoKcG9uLiwgNiBzaWUgMjAxOCBvIDIyOjExIEFyZCBCaWVzaGV1dmVsIDxh
cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPiBuYXBpc2HFgihhKToKPgo+IE9uIDYgQXVndXN0IDIw
MTggYXQgMjE6NTQsIE1pa3VsYXMgUGF0b2NrYSA8bXBhdG9ja2FAcmVkaGF0LmNvbT4gd3JvdGU6
Cj4gPgo+ID4KPiA+IE9uIE1vbiwgNiBBdWcgMjAxOCwgQXJkIEJpZXNoZXV2ZWwgd3JvdGU6Cj4g
Pgo+ID4+IE9uIDYgQXVndXN0IDIwMTggYXQgMTk6MDksIE1pa3VsYXMgUGF0b2NrYSA8bXBhdG9j
a2FAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPj4gPgo+ID4+ID4KPiA+PiA+IE9uIE1vbiwgNiBBdWcg
MjAxOCwgQXJkIEJpZXNoZXV2ZWwgd3JvdGU6Cj4gPj4gPgo+ID4+ID4+IE9uIDYgQXVndXN0IDIw
MTggYXQgMTQ6NDIsIFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+IHdyb3RlOgo+
ID4+ID4+ID4gT24gMDYvMDgvMTggMTE6MjUsIE1pa3VsYXMgUGF0b2NrYSB3cm90ZToKPiA+PiA+
PiA+IFsuLi5dCj4gPj4gPj4gPj4+Cj4gPj4gPj4gPj4+IE5vbmUgb2YgdGhpcyBleHBsYWlucyB3
aHkgc29tZSB0cmFuc2FjdGlvbnMgZmFpbCB0byBtYWtlIGl0IGFjcm9zcwo+ID4+ID4+ID4+PiBl
bnRpcmVseS4gVGhlIG92ZXJsYXBwaW5nIHdyaXRlcyBpbiBxdWVzdGlvbiB3cml0ZSB0aGUgc2Ft
ZSBkYXRhIHRvCj4gPj4gPj4gPj4+IHRoZSBtZW1vcnkgbG9jYXRpb25zIHRoYXQgYXJlIGNvdmVy
ZWQgYnkgYm90aCwgYW5kIHNvIHRoZSBvcmRlcmluZyBpbgo+ID4+ID4+ID4+PiB3aGljaCB0aGUg
dHJhbnNhY3Rpb25zIGFyZSByZWNlaXZlZCBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3V0Y29tZS4K
PiA+PiA+PiA+Pgo+ID4+ID4+ID4+Cj4gPj4gPj4gPj4gWW91J3JlIHJpZ2h0IHRoYXQgdGhlIGNv
cnJ1cHRpb24gY291bGRuJ3QgYmUgZXhwbGFpbmVkIGp1c3QgYnkgcmVvcmRlcmluZwo+ID4+ID4+
ID4+IHdyaXRlcy4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRoZSBQQ0llIGNvbnRyb2xsZXIgdHJp
ZXMgdG8gZGlzYW1iaWd1YXRlCj4gPj4gPj4gPj4gdGhlIG92ZXJsYXBwaW5nIHdyaXRlcywgYnV0
IHRoZSBkaXNhbWJpZ3VhdGlvbiBsb2dpYyB3YXMgbm90IHRlc3RlZCBhbmQgaXQKPiA+PiA+PiA+
PiBpcyBidWdneS4gSWYgdGhlcmUncyBhIGJhcnJpZXIgYmV0d2VlbiB0aGUgb3ZlcmxhcHBpbmcg
d3JpdGVzLCB0aGUgUENJZQo+ID4+ID4+ID4+IGNvbnRyb2xsZXIgd29uJ3Qgc2VlIGFueSBvdmVy
bGFwcGluZyB3cml0ZXMsIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlCj4gPj4gPj4gPj4gZmF1bHR5
IGRpc2FtYmlndWF0aW9uIGxvZ2ljIGFuZCBpdCB3b3Jrcy4KPiA+PiA+PiA+Pgo+ID4+ID4+ID4+
IENvdWxkIHRoZSBBUk0gZW5naW5lZXJzIGxvb2sgaWYgdGhlcmUncyBzb21lIGNoaWNrZW4gYml0
IGluIENvcnRleC1BNzIKPiA+PiA+PiA+PiB0aGF0IGNvdWxkIGluc2VydCBiYXJyaWVycyBiZXR3
ZWVuIG5vbi1jYWNoZWQgd3JpdGVzIGF1dG9tYXRpY2FsbHk/Cj4gPj4gPj4gPgo+ID4+ID4+ID4K
PiA+PiA+PiA+IEkgZG9uJ3QgdGhpbmsgdGhlcmUgaXMsIGFuZCBldmVuIGlmIHRoZXJlIHdhcyBJ
IGltYWdpbmUgaXQgd291bGQgaGF2ZSBhCj4gPj4gPj4gPiBwcmV0dHkgaGlkZW91cyBlZmZlY3Qg
b24gbm9uLWNvaGVyZW50IERNQSBidWZmZXJzIGFuZCB0aGUgdmFyaW91cyBvdGhlcgo+ID4+ID4+
ID4gcGxhY2VzIGluIHdoaWNoIHdlIGhhdmUgTm9ybWFsLU5DIG1hcHBpbmdzIG9mIGFjdHVhbCBz
eXN0ZW0gUkFNLgo+ID4+ID4+ID4KPiA+PiA+Pgo+ID4+ID4+IExvb2tpbmcgYXQgdGhlIEE3MiBt
YW51YWwsIHRoZXJlIGlzIG9uZSBjaGlja2VuIGJpdCB0aGF0IGxvb2tzIGxpa2UgaXQKPiA+PiA+
PiBtYXkgYmUgcmVsYXRlZDoKPiA+PiA+Pgo+ID4+ID4+IENQVUFDVExSX0VMMSBiaXQgIzUwOgo+
ID4+ID4+Cj4gPj4gPj4gMCBFbmFibGVzIHN0b3JlIHN0cmVhbWluZyBvbiBOQy9HUkUgbWVtb3J5
IHR5cGUuIFRoaXMgaXMgdGhlIHJlc2V0IHZhbHVlLgo+ID4+ID4+IDEgRGlzYWJsZXMgc3RvcmUg
c3RyZWFtaW5nIG9uIE5DL0dSRSBtZW1vcnkgdHlwZS4KPiA+PiA+Pgo+ID4+ID4+IHNvIHB1dHRp
bmcgc29tZXRoaW5nIGxpa2UKPiA+PiA+Pgo+ID4+ID4+IG1ycyB4MCwgUzNfMV9DMTVfQzJfMAo+
ID4+ID4+IG9yciB4MCwgeDAsICMoMSA8PCA1MCkKPiA+PiA+PiBtc3IgUzNfMV9DMTVfQzJfMCwg
eDAKPiA+PiA+Pgo+ID4+ID4+IGluIF9fY3B1X3NldHVwKCkgd291bGQgYmUgd29ydGggYSB0cnku
Cj4gPj4gPgo+ID4+ID4gSXQgd29uJ3QgYm9vdC4KPiA+PiA+Cj4gPj4gPiBCdXQgaWYgaSB3cml0
ZSB0aGUgc2FtZSB2YWx1ZSB0aGF0IHdhcyByZWFkLCBpdCBhbHNvIHdvbid0IGJvb3QuCj4gPj4g
Pgo+ID4+ID4gSSBjcmVhdGVkIGEgc2ltcGxlIGtlcm5lbCBtb2R1bGUgdGhhdCByZWFkcyB0aGlz
IHJlZ2lzdGVyIGFuZCBpdCBoYXMgYml0Cj4gPj4gPiAzMiBzZXQsIGFsbCBvdGhlciBiaXRzIGNs
ZWFyLiBCdXQgd2hlbiBJIHdyaXRlIHRoZSBzYW1lIHZhbHVlIGludG8gaXQsIHRoZQo+ID4+ID4g
Y29yZSB0aGF0IGRvZXMgdGhlIHdyaXRlIGlzIHN0dWNrIGluIGluZmluaXRlIGxvb3AuCj4gPj4g
Pgo+ID4+ID4gU28sIGl0IHNlZW1zIHRoYXQgd2UgYXJlIHdyaXRpbmcgdGhpcyByZWdpc3RlciBm
cm9tIGEgd3JvbmcgcGxhY2UuCj4gPj4gPgo+ID4+Cj4gPj4gQWgsIG15IGJhZC4gSSBkaWRuJ3Qg
bG9vayBjbG9zZWx5IGVub3VnaCBhdCB0aGUgZGVzY3JpcHRpb246Cj4gPj4KPiA+PiAiIiIKPiA+
PiBUaGUgYWNjZXNzaWJpbGl0eSB0byB0aGUgQ1BVQUNUTFJfRUwxIGJ5IEV4Y2VwdGlvbiBsZXZl
bCBpczoKPiA+Pgo+ID4+IEVMMCAgICAgICAgICAgICAgLQo+ID4+IEVMMShOUykgICAgICAgICAg
UlcgKGEpCj4gPj4gRUwxKFMpICAgICAgICAgICBSVyAoYSkKPiA+PiBFTDIgICAgICAgICAgICAg
IFJXIChiKQo+ID4+IEVMMyhTQ1IuTlMgPSAxKSAgUlcKPiA+PiBFTDMoU0NSLk5TID0gMCkgIFJX
Cj4gPj4KPiA+PiAoYSkgV3JpdGUgYWNjZXNzIGlmIEFDVExSX0VMMy5DUFVBQ1RMUiBpcyAxIGFu
ZCBBQ1RMUl9FTDIuQ1BVQUNUTFIgaXMKPiA+PiAxLCBvciBBQ1RMUl9FTDMuQ1BVQUNUTFIgaXMg
MSBhbmQgU0NSLk5TIGlzIDAuCj4gPj4gIiIiCj4gPj4KPiA+PiBzbyB5b3UnbGwgaGF2ZSB0byBk
byB0aGlzIGZyb20gQVJNIFRydXN0ZWQgRmlybXdhcmUuIElmIHlvdSdyZQo+ID4+IGNvbWZvcnRh
YmxlIHJlYnVpbGRpbmcgdGhhdDoKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYi9j
cHVzL2FhcmNoNjQvY29ydGV4X2E3Mi5oCj4gPj4gYi9pbmNsdWRlL2xpYi9jcHVzL2FhcmNoNjQv
Y29ydGV4X2E3Mi5oCj4gPj4gaW5kZXggYmZkNjQ5MTg2MjViLi5hN2I4Y2Y0YmUwYzYgMTAwNjQ0
Cj4gPj4gLS0tIGEvaW5jbHVkZS9saWIvY3B1cy9hYXJjaDY0L2NvcnRleF9hNzIuaAo+ID4+ICsr
KyBiL2luY2x1ZGUvbGliL2NwdXMvYWFyY2g2NC9jb3J0ZXhfYTcyLmgKPiA+PiBAQCAtMzEsNiAr
MzEsNyBAQAo+ID4+ICAjZGVmaW5lIENPUlRFWF9BNzJfQUNUTFJfRUwxICAgICAgICAgICAgICAg
ICAgIFMzXzFfQzE1X0MyXzAKPiA+Pgo+ID4+ICAjZGVmaW5lIENPUlRFWF9BNzJfQUNUTFJfRElT
QUJMRV9MMV9EQ0FDSEVfSFdfUEZUQ0ggICAgKDEgPDwgNTYpCj4gPj4gKyNkZWZpbmUgQ09SVEVY
X0E3Ml9BQ1RMUl9ESVNfTkNfR1JFX1NUT1JFX1NUUkVBTUlORyAgICAoMSA8PCA1MCkKPiA+PiAg
I2RlZmluZSBDT1JURVhfQTcyX0FDVExSX05PX0FMTE9DX1dCV0EgICAgICAgICAoMSA8PCA0OSkK
PiA+PiAgI2RlZmluZSBDT1JURVhfQTcyX0FDVExSX0RDQ19BU19EQ0NJICAgICAgICAgICAoMSA8
PCA0NCkKPiA+PiAgI2RlZmluZSBDT1JURVhfQTcyX0FDVExSX0VMMV9ESVNfSU5TVFJfUFJFRkVU
Q0ggICAgICAgICAgICAgICAgKDEgPDwgMzIpCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi9jcHVzL2Fh
cmNoNjQvY29ydGV4X2E3Mi5TIGIvbGliL2NwdXMvYWFyY2g2NC9jb3J0ZXhfYTcyLlMKPiA+PiBp
bmRleCA1NWU1MDg2NzgyODQuLjU5MTRkNmVlM2JhNiAxMDA2NDQKPiA+PiAtLS0gYS9saWIvY3B1
cy9hYXJjaDY0L2NvcnRleF9hNzIuUwo+ID4+ICsrKyBiL2xpYi9jcHVzL2FhcmNoNjQvY29ydGV4
X2E3Mi5TCj4gPj4gQEAgLTEzMyw2ICsxMzMsMTUgQEAgZnVuYyBjb3J0ZXhfYTcyX3Jlc2V0X2Z1
bmMKPiA+PiAgICAgICAgIG9yciAgICAgeDAsIHgwLCAjQ09SVEVYX0E3Ml9FQ1RMUl9TTVBfQklU
Cj4gPj4gICAgICAgICBtc3IgICAgIENPUlRFWF9BNzJfRUNUTFJfRUwxLCB4MAo+ID4+ICAgICAg
ICAgaXNiCj4gPj4gKwo+ID4+ICsgICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gKyAgICAgICAgKiBEaXNhYmxlcyBzdG9yZSBzdHJlYW1p
bmcgb24gTkMvR1JFIG1lbW9yeSB0eXBlLgo+ID4+ICsgICAgICAgICogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gKyAgICAgICAgKi8KPiA+PiArICAg
ICAgIG1ycyAgICAgeDAsIENPUlRFWF9BNzJfQUNUTFJfRUwxCj4gPj4gKyAgICAgICBvcnIgICAg
IHgwLCB4MCwgI0NPUlRFWF9BNzJfQUNUTFJfRElTX05DX0dSRV9TVE9SRV9TVFJFQU1JTkcKPiA+
PiArICAgICAgIG1zciAgICAgQ09SVEVYX0E3Ml9BQ1RMUl9FTDEsIHgwCj4gPj4gKyAgICAgICBp
c2IKPiA+PiAgICAgICAgIHJldCB4MTkKPiA+PiAgZW5kZnVuYyBjb3J0ZXhfYTcyX3Jlc2V0X2Z1
bmMKPiA+Cj4gPiBVbmZvcnR1bmF0ZWxseSwgaXQgZG9lc24ndCB3b3JrLiBJIHZlcmlmaWVkIHRo
YXQgdGhlIGJpdCBpcyBzZXQgYWZ0ZXIKPiA+IGJvb3RpbmcgTGludXgsIGJ1dCB0aGUgbWVtY3B5
IGNvcnJ1cHRpb24gd2FzIHN0aWxsIHByZXNlbnQuCj4gPgo+ID4gSSBhbHNvIHRyaWVkIHRoZSBv
dGhlciBjaGlja2VuIGJpdHMsIGl0IHNsb3dlZCBkb3duIHRoZSBzeXN0ZW0gbm90aWNlYWJseSwK
PiA+IGJ1dCBoYWQgbm8gZWZmZWN0IG9uIHRoZSBtZW1jcHkgY29ycnVwdGlvbi4KPiA+Cj4KPiBP
SywgaXQgd2FzIHdvcnRoIGEgc2hvdAo+Cj4gTGV0J3Mgd2FpdCBhbmQgc2VlIGlmIE1hcmNpbiBo
YXMgYW55IHJlc3VsdHMuCj4KCkFmdGVyIHNvbWUgc2VsZi1jYXVzZWQgc2V0dXAgaXNzdWVzIEkg
d2FzIGFibGUgdG8gcnVuIHRoZSB0ZXN0IG9uIG15Ck1hY2NoaWF0b0JpbiB3aXRoIHRoZSBrZXJu
ZWwgdjQuMTgtcmM4LiBJdCdzIGJlZW4gcnVubmluZyBmb3IgMWgrIG5vdywKbG9hZGluZyB0aGUg
Q1BVIHRvIDEwMCUgYW5kIG5vIHNpbmdsZSBlcnJvciBldmVudC4uLgoKSSBidWlsdCB0aGUgYmlu
YXJ5IGZpbGUgd2l0aDoKZ2NjLWxpbmFyby03LjIuMS0yMDE3LjExLXg4Nl82NF9hYXJjaDY0LWxp
bnV4LWdudS9iaW4vYWFyY2g2NC1saW51eC1nbnUtZ2NjIC1PMgoKTWF5YmUgaXQncyB0aGUgb2xk
ZXIgZmlybXdhcmUgaXNzdWU/IFBsZWFzZSBzZW5kIHRoZSBmdWxsIGJvb3Rsb2cgd2l0aAp0aGUg
dmVyeSBmaXJzdCBsaW5lIGFmdGVyIHJlc2V0LiBNeSBib2FyZCByZXYgaXMgdjEuMyBhbmQgSSB1
c2UKbWFpbmxpbmUgVUVGSSAobmV3ZXN0IGVkazIgKyBlZGsyLXBsYXRmb3JtcykgKyBuZXdlc3Qg
cHVibGljbHkKYXZhaWxhYmxlIEFSTS1URiBhbmQgZWFybGllc3QgZmlybXdhcmUgZm9yIHRoaXMg
Ym9hcmQuCgpCZXN0IHJlZ2FyZHMsCk1hcmNpbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt
YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn
L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=

WARNING: multiple messages have this Message-ID (diff)
From: mw@semihalf.com (Marcin Wojtas)
To: linux-arm-kernel@lists.infradead.org
Subject: framebuffer corruption due to overlapping stp instructions on arm64
Date: Tue, 7 Aug 2018 18:40:36 +0200	[thread overview]
Message-ID: <CAPv3WKdCMpy6KarducQEtSYP35zdELhparkmPPMKGMUhsdk1Qw@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu_iCgAeGmrajZ_euMcFLntWG1a51HF_HQ1TO=fV_v__AQ@mail.gmail.com>

Ard, Mikulas,

pon., 6 sie 2018 o 22:11 Ard Biesheuvel <ard.biesheuvel@linaro.org> napisa?(a):
>
> On 6 August 2018 at 21:54, Mikulas Patocka <mpatocka@redhat.com> wrote:
> >
> >
> > On Mon, 6 Aug 2018, Ard Biesheuvel wrote:
> >
> >> On 6 August 2018 at 19:09, Mikulas Patocka <mpatocka@redhat.com> wrote:
> >> >
> >> >
> >> > On Mon, 6 Aug 2018, Ard Biesheuvel wrote:
> >> >
> >> >> On 6 August 2018 at 14:42, Robin Murphy <robin.murphy@arm.com> wrote:
> >> >> > On 06/08/18 11:25, Mikulas Patocka wrote:
> >> >> > [...]
> >> >> >>>
> >> >> >>> None of this explains why some transactions fail to make it across
> >> >> >>> entirely. The overlapping writes in question write the same data to
> >> >> >>> the memory locations that are covered by both, and so the ordering in
> >> >> >>> which the transactions are received should not affect the outcome.
> >> >> >>
> >> >> >>
> >> >> >> You're right that the corruption couldn't be explained just by reordering
> >> >> >> writes. My hypothesis is that the PCIe controller tries to disambiguate
> >> >> >> the overlapping writes, but the disambiguation logic was not tested and it
> >> >> >> is buggy. If there's a barrier between the overlapping writes, the PCIe
> >> >> >> controller won't see any overlapping writes, so it won't trigger the
> >> >> >> faulty disambiguation logic and it works.
> >> >> >>
> >> >> >> Could the ARM engineers look if there's some chicken bit in Cortex-A72
> >> >> >> that could insert barriers between non-cached writes automatically?
> >> >> >
> >> >> >
> >> >> > I don't think there is, and even if there was I imagine it would have a
> >> >> > pretty hideous effect on non-coherent DMA buffers and the various other
> >> >> > places in which we have Normal-NC mappings of actual system RAM.
> >> >> >
> >> >>
> >> >> Looking at the A72 manual, there is one chicken bit that looks like it
> >> >> may be related:
> >> >>
> >> >> CPUACTLR_EL1 bit #50:
> >> >>
> >> >> 0 Enables store streaming on NC/GRE memory type. This is the reset value.
> >> >> 1 Disables store streaming on NC/GRE memory type.
> >> >>
> >> >> so putting something like
> >> >>
> >> >> mrs x0, S3_1_C15_C2_0
> >> >> orr x0, x0, #(1 << 50)
> >> >> msr S3_1_C15_C2_0, x0
> >> >>
> >> >> in __cpu_setup() would be worth a try.
> >> >
> >> > It won't boot.
> >> >
> >> > But if i write the same value that was read, it also won't boot.
> >> >
> >> > I created a simple kernel module that reads this register and it has bit
> >> > 32 set, all other bits clear. But when I write the same value into it, the
> >> > core that does the write is stuck in infinite loop.
> >> >
> >> > So, it seems that we are writing this register from a wrong place.
> >> >
> >>
> >> Ah, my bad. I didn't look closely enough at the description:
> >>
> >> """
> >> The accessibility to the CPUACTLR_EL1 by Exception level is:
> >>
> >> EL0              -
> >> EL1(NS)          RW (a)
> >> EL1(S)           RW (a)
> >> EL2              RW (b)
> >> EL3(SCR.NS = 1)  RW
> >> EL3(SCR.NS = 0)  RW
> >>
> >> (a) Write access if ACTLR_EL3.CPUACTLR is 1 and ACTLR_EL2.CPUACTLR is
> >> 1, or ACTLR_EL3.CPUACTLR is 1 and SCR.NS is 0.
> >> """
> >>
> >> so you'll have to do this from ARM Trusted Firmware. If you're
> >> comfortable rebuilding that:
> >>
> >> diff --git a/include/lib/cpus/aarch64/cortex_a72.h
> >> b/include/lib/cpus/aarch64/cortex_a72.h
> >> index bfd64918625b..a7b8cf4be0c6 100644
> >> --- a/include/lib/cpus/aarch64/cortex_a72.h
> >> +++ b/include/lib/cpus/aarch64/cortex_a72.h
> >> @@ -31,6 +31,7 @@
> >>  #define CORTEX_A72_ACTLR_EL1                   S3_1_C15_C2_0
> >>
> >>  #define CORTEX_A72_ACTLR_DISABLE_L1_DCACHE_HW_PFTCH    (1 << 56)
> >> +#define CORTEX_A72_ACTLR_DIS_NC_GRE_STORE_STREAMING    (1 << 50)
> >>  #define CORTEX_A72_ACTLR_NO_ALLOC_WBWA         (1 << 49)
> >>  #define CORTEX_A72_ACTLR_DCC_AS_DCCI           (1 << 44)
> >>  #define CORTEX_A72_ACTLR_EL1_DIS_INSTR_PREFETCH                (1 << 32)
> >> diff --git a/lib/cpus/aarch64/cortex_a72.S b/lib/cpus/aarch64/cortex_a72.S
> >> index 55e508678284..5914d6ee3ba6 100644
> >> --- a/lib/cpus/aarch64/cortex_a72.S
> >> +++ b/lib/cpus/aarch64/cortex_a72.S
> >> @@ -133,6 +133,15 @@ func cortex_a72_reset_func
> >>         orr     x0, x0, #CORTEX_A72_ECTLR_SMP_BIT
> >>         msr     CORTEX_A72_ECTLR_EL1, x0
> >>         isb
> >> +
> >> +       /* ---------------------------------------------
> >> +        * Disables store streaming on NC/GRE memory type.
> >> +        * ---------------------------------------------
> >> +        */
> >> +       mrs     x0, CORTEX_A72_ACTLR_EL1
> >> +       orr     x0, x0, #CORTEX_A72_ACTLR_DIS_NC_GRE_STORE_STREAMING
> >> +       msr     CORTEX_A72_ACTLR_EL1, x0
> >> +       isb
> >>         ret x19
> >>  endfunc cortex_a72_reset_func
> >
> > Unfortunatelly, it doesn't work. I verified that the bit is set after
> > booting Linux, but the memcpy corruption was still present.
> >
> > I also tried the other chicken bits, it slowed down the system noticeably,
> > but had no effect on the memcpy corruption.
> >
>
> OK, it was worth a shot
>
> Let's wait and see if Marcin has any results.
>

After some self-caused setup issues I was able to run the test on my
MacchiatoBin with the kernel v4.18-rc8. It's been running for 1h+ now,
loading the CPU to 100% and no single error event...

I built the binary file with:
gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -O2

Maybe it's the older firmware issue? Please send the full bootlog with
the very first line after reset. My board rev is v1.3 and I use
mainline UEFI (newest edk2 + edk2-platforms) + newest publicly
available ARM-TF and earliest firmware for this board.

Best regards,
Marcin

  parent reply	other threads:[~2018-08-07 16:40 UTC|newest]

Thread overview: 238+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-02 19:31 framebuffer corruption due to overlapping stp instructions on arm64 Mikulas Patocka
2018-08-02 19:31 ` Mikulas Patocka
     [not found] ` <CAHCPf3tFGqkYEcWNN4LaWThw_rVqT316pzLv6T7RfxwO-eZ0EA@mail.gmail.com>
2018-08-03  6:35   ` Mikulas Patocka
2018-08-03  6:35     ` Mikulas Patocka
2018-08-03  7:16     ` Ard Biesheuvel
2018-08-03  7:16       ` Ard Biesheuvel
2018-08-03  9:41       ` Will Deacon
2018-08-03  9:41         ` Will Deacon
2018-08-03 17:09         ` Mikulas Patocka
2018-08-03 17:09           ` Mikulas Patocka
2018-08-03 17:09           ` Mikulas Patocka
2018-08-03 17:32           ` Sinan Kaya
2018-08-03 17:32             ` Sinan Kaya
2018-08-03 17:32             ` Sinan Kaya
2018-08-03 17:33           ` Ard Biesheuvel
2018-08-03 17:33             ` Ard Biesheuvel
2018-08-03 17:33             ` Ard Biesheuvel
2018-08-03 18:25             ` Mikulas Patocka
2018-08-03 18:25               ` Mikulas Patocka
2018-08-03 18:25               ` Mikulas Patocka
2018-08-03 20:44               ` Matt Sealey
2018-08-03 20:44                 ` Matt Sealey
2018-08-03 20:44                 ` Matt Sealey
2018-08-03 21:20                 ` Ard Biesheuvel
2018-08-03 21:20                   ` Ard Biesheuvel
2018-08-03 21:20                   ` Ard Biesheuvel
2018-08-06 10:25                   ` Mikulas Patocka
2018-08-06 10:25                     ` Mikulas Patocka
2018-08-06 10:25                     ` Mikulas Patocka
2018-08-06 12:42                     ` Robin Murphy
2018-08-06 12:42                       ` Robin Murphy
2018-08-06 12:42                       ` Robin Murphy
2018-08-06 12:53                       ` Ard Biesheuvel
2018-08-06 12:53                         ` Ard Biesheuvel
2018-08-06 12:53                         ` Ard Biesheuvel
2018-08-06 13:41                       ` Marcin Wojtas
2018-08-06 13:41                         ` Marcin Wojtas
2018-08-06 13:41                         ` Marcin Wojtas
2018-08-06 13:48                         ` Ard Biesheuvel
2018-08-06 13:48                           ` Ard Biesheuvel
2018-08-06 13:48                           ` Ard Biesheuvel
2018-08-06 14:07                           ` Marcin Wojtas
2018-08-06 14:07                             ` Marcin Wojtas
2018-08-06 14:07                             ` Marcin Wojtas
2018-08-06 14:13                             ` Mikulas Patocka
2018-08-06 14:13                               ` Mikulas Patocka
2018-08-06 14:13                               ` Mikulas Patocka
2018-08-06 15:47                       ` Ard Biesheuvel
2018-08-06 15:47                         ` Ard Biesheuvel
2018-08-06 15:47                         ` Ard Biesheuvel
2018-08-06 17:09                         ` Mikulas Patocka
2018-08-06 17:09                           ` Mikulas Patocka
2018-08-06 17:09                           ` Mikulas Patocka
2018-08-06 17:21                           ` Ard Biesheuvel
2018-08-06 17:21                             ` Ard Biesheuvel
2018-08-06 17:21                             ` Ard Biesheuvel
2018-08-06 19:54                             ` Mikulas Patocka
2018-08-06 19:54                               ` Mikulas Patocka
2018-08-06 19:54                               ` Mikulas Patocka
2018-08-06 20:11                               ` Ard Biesheuvel
2018-08-06 20:11                                 ` Ard Biesheuvel
2018-08-06 20:11                                 ` Ard Biesheuvel
2018-08-06 20:31                                 ` Mikulas Patocka
2018-08-06 20:31                                   ` Mikulas Patocka
2018-08-06 20:31                                   ` Mikulas Patocka
2018-08-07 16:40                                 ` Marcin Wojtas [this message]
2018-08-07 16:40                                   ` Marcin Wojtas
2018-08-07 16:40                                   ` Marcin Wojtas
2018-08-07 17:39                                   ` Mikulas Patocka
2018-08-07 17:39                                     ` Mikulas Patocka
2018-08-07 17:39                                     ` Mikulas Patocka
2018-08-07 18:07                                     ` Ard Biesheuvel
2018-08-07 18:07                                       ` Ard Biesheuvel
2018-08-07 18:07                                       ` Ard Biesheuvel
2018-08-07 18:17                                       ` Mikulas Patocka
2018-08-07 18:17                                         ` Mikulas Patocka
2018-08-07 18:17                                         ` Mikulas Patocka
     [not found]                                     ` <CAPv3WKcKoEe=Qysp6Oac2C=G9bUhUQf1twSRCY+_qJ6XEC-iag@mail.gmail.com>
2018-08-08 14:10                                       ` Mikulas Patocka
2018-08-08 14:10                                         ` Mikulas Patocka
2018-08-08 14:10                                         ` Mikulas Patocka
2018-08-06 17:13                         ` Catalin Marinas
2018-08-06 17:13                           ` Catalin Marinas
2018-08-06 17:13                           ` Catalin Marinas
2018-08-06 17:19                           ` Mikulas Patocka
2018-08-06 17:19                             ` Mikulas Patocka
2018-08-06 17:19                             ` Mikulas Patocka
2018-08-08 18:31                       ` Mikulas Patocka
2018-08-08 18:31                         ` Mikulas Patocka
2018-08-08 18:31                         ` Mikulas Patocka
2018-08-04 13:29                 ` Mikulas Patocka
2018-08-04 13:29                   ` Mikulas Patocka
2018-08-04 13:29                   ` Mikulas Patocka
2018-08-08 12:16                 ` Catalin Marinas
2018-08-08 12:16                   ` Catalin Marinas
2018-08-08 12:16                   ` Catalin Marinas
2018-08-08 13:02                   ` David Laight
2018-08-08 13:02                     ` David Laight
2018-08-08 13:02                     ` David Laight
2018-08-08 13:46                     ` Mikulas Patocka
2018-08-08 13:46                       ` Mikulas Patocka
2018-08-08 13:46                       ` Mikulas Patocka
2018-08-08 14:26                       ` David Laight
2018-08-08 14:26                         ` David Laight
2018-08-08 14:26                         ` David Laight
2018-08-08 14:50                         ` Catalin Marinas
2018-08-08 14:50                           ` Catalin Marinas
2018-08-08 14:50                           ` Catalin Marinas
2018-08-08 16:21                           ` Mikulas Patocka
2018-08-08 16:21                             ` Mikulas Patocka
2018-08-08 16:21                             ` Mikulas Patocka
2018-08-08 16:31                             ` Arnd Bergmann
2018-08-08 16:31                               ` Arnd Bergmann
2018-08-08 16:31                               ` Arnd Bergmann
2018-08-08 16:43                               ` David Laight
2018-08-08 16:43                                 ` David Laight
2018-08-08 16:43                                 ` David Laight
2018-08-08 18:56                                 ` Mikulas Patocka
2018-08-08 18:56                                   ` Mikulas Patocka
2018-08-08 18:56                                   ` Mikulas Patocka
2018-08-08 18:37                         ` Mikulas Patocka
2018-08-08 18:37                           ` Mikulas Patocka
2018-08-08 18:37                           ` Mikulas Patocka
2018-08-08 11:39           ` Catalin Marinas
2018-08-08 11:39             ` Catalin Marinas
2018-08-08 11:39             ` Catalin Marinas
2018-08-08 14:12             ` Mikulas Patocka
2018-08-08 14:12               ` Mikulas Patocka
2018-08-08 14:12               ` Mikulas Patocka
2018-08-08 14:28               ` Catalin Marinas
2018-08-08 14:28                 ` Catalin Marinas
2018-08-08 14:28                 ` Catalin Marinas
2018-08-08 18:40                 ` Mikulas Patocka
2018-08-08 18:40                   ` Mikulas Patocka
2018-08-08 18:40                   ` Mikulas Patocka
2018-08-08 15:01               ` Richard Earnshaw (lists)
2018-08-08 15:01                 ` Richard Earnshaw (lists)
2018-08-08 15:01                 ` Richard Earnshaw (lists)
2018-08-08 15:14                 ` Catalin Marinas
2018-08-08 15:14                   ` Catalin Marinas
2018-08-08 15:14                   ` Catalin Marinas
2018-08-08 16:01                   ` Arnd Bergmann
2018-08-08 16:01                     ` Arnd Bergmann
2018-08-08 16:01                     ` Arnd Bergmann
2018-08-08 18:25                     ` Mikulas Patocka
2018-08-08 18:25                       ` Mikulas Patocka
2018-08-08 18:25                       ` Mikulas Patocka
2018-08-08 21:51                       ` Arnd Bergmann
2018-08-08 21:51                         ` Arnd Bergmann
2018-08-08 21:51                         ` Arnd Bergmann
2018-08-09 15:29                         ` Arnd Bergmann
2018-08-09 15:29                           ` Arnd Bergmann
2018-08-09 15:29                           ` Arnd Bergmann
2018-08-03  7:11 ` Andrew Pinski
2018-08-03  7:11   ` Andrew Pinski
2018-08-03  7:53   ` Florian Weimer
2018-08-03  7:53     ` Florian Weimer
2018-08-03  9:12     ` Szabolcs Nagy
2018-08-03  9:12       ` Szabolcs Nagy
2018-08-03  9:15     ` Ramana Radhakrishnan
2018-08-03  9:15       ` Ramana Radhakrishnan
2018-08-03  9:29       ` Ard Biesheuvel
2018-08-03  9:29         ` Ard Biesheuvel
2018-08-03  9:37         ` Ramana Radhakrishnan
2018-08-03  9:37           ` Ramana Radhakrishnan
2018-08-03  9:42         ` Richard Earnshaw (lists)
2018-08-03  9:42           ` Richard Earnshaw (lists)
2018-08-04  0:58           ` Mikulas Patocka
2018-08-04  0:58             ` Mikulas Patocka
2018-08-04  1:13             ` Andrew Pinski
2018-08-04  1:13               ` Andrew Pinski
2018-08-04 11:04               ` Mikulas Patocka
2018-08-04 11:04                 ` Mikulas Patocka
2018-08-05 18:33                 ` Florian Weimer
2018-08-05 18:33                   ` Florian Weimer
2018-08-06  8:02                   ` Mikulas Patocka
2018-08-06  8:02                     ` Mikulas Patocka
2018-08-06  8:10                     ` Ard Biesheuvel
2018-08-06  8:10                       ` Ard Biesheuvel
2018-08-06 10:31                       ` Mikulas Patocka
2018-08-06 10:31                         ` Mikulas Patocka
2018-08-06 10:37                         ` Ard Biesheuvel
2018-08-06 10:37                           ` Ard Biesheuvel
2018-08-06 10:42                           ` Mikulas Patocka
2018-08-06 10:42                             ` Mikulas Patocka
2018-08-06 10:48                             ` Ard Biesheuvel
2018-08-06 10:48                               ` Ard Biesheuvel
2018-08-06 12:09                               ` Mikulas Patocka
2018-08-06 12:09                                 ` Mikulas Patocka
2018-08-06 12:19                                 ` Ard Biesheuvel
2018-08-06 12:19                                   ` Ard Biesheuvel
2018-08-06 12:22                                   ` Ard Biesheuvel
2018-08-06 12:22                                     ` Ard Biesheuvel
2018-08-07 14:14                                   ` Mikulas Patocka
2018-08-07 14:14                                     ` Mikulas Patocka
2018-08-07 14:40                                     ` Ard Biesheuvel
2018-08-07 14:40                                       ` Ard Biesheuvel
2018-08-08 19:15                                   ` Mikulas Patocka
2018-08-08 19:15                                     ` Mikulas Patocka
2018-08-06 11:19                         ` Siddhesh Poyarekar
2018-08-06 11:19                           ` Siddhesh Poyarekar
2018-08-06 11:29                           ` Ard Biesheuvel
2018-08-06 11:29                             ` Ard Biesheuvel
2018-08-06 14:26                   ` Tulio Magno Quites Machado Filho
2018-08-06 14:26                     ` Tulio Magno Quites Machado Filho
2018-08-05 21:51                 ` Pavel Machek
2018-08-05 21:51                   ` Pavel Machek
2018-08-06 14:30                   ` Mikulas Patocka
2018-08-06 14:30                     ` Mikulas Patocka
2018-08-03 11:24         ` David Laight
2018-08-03 11:24           ` David Laight
2018-08-03 12:04           ` Mikulas Patocka
2018-08-03 12:04             ` Mikulas Patocka
2018-08-03 13:04             ` David Laight
2018-08-03 13:04               ` David Laight
2018-08-05 14:36               ` Mikulas Patocka
2018-08-05 14:36                 ` Mikulas Patocka
2018-08-06 10:18                 ` David Laight
2018-08-06 10:18                   ` David Laight
2018-08-07 14:07                   ` Mikulas Patocka
2018-08-07 14:07                     ` Mikulas Patocka
2018-08-07 14:33                     ` David Laight
2018-08-07 14:33                       ` David Laight
2018-08-08 14:21                       ` Mikulas Patocka
2018-08-08 14:21                         ` Mikulas Patocka
2018-08-03 13:20     ` Mikulas Patocka
2018-08-03 13:20       ` Mikulas Patocka
2018-08-03 13:31   ` Mikulas Patocka
2018-08-03 13:31     ` Mikulas Patocka
2018-08-03 14:17     ` Richard Earnshaw (lists)
2018-08-03 14:17       ` Richard Earnshaw (lists)
2018-08-05 21:36   ` Pavel Machek
2018-08-05 21:36     ` Pavel Machek
2018-08-06  8:04     ` Ramana Radhakrishnan
2018-08-06  8:04       ` Ramana Radhakrishnan
2018-08-06  8:44       ` Pavel Machek
2018-08-06  8:44         ` Pavel Machek
2018-08-06  9:11         ` Ard Biesheuvel
2018-08-06  9:11           ` Ard Biesheuvel

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=CAPv3WKdCMpy6KarducQEtSYP35zdELhparkmPPMKGMUhsdk1Qw@mail.gmail.com \
    --to=mw@semihalf.com \
    --cc=Joao.Pinto@synopsys.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=jingoohan1@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mpatocka@redhat.com \
    --cc=neko@bakuhatsu.net \
    --cc=robin.murphy@arm.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=will.deacon@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.