On Thu, 4 Apr 2019, Maciej W. Rozycki wrote:
> On Wed, 3 Apr 2019, Mikulas Patocka wrote:
>
> > I did some more testing and it turns out that mb() is not entirely
> > sufficient to prevent the boot hang. mb()'s latecy varies, sometimes it is
> > sufficient, sometimes not.
> >
> > So, I submit this patch that adds 1us delay between any I/O accesses
> > directed at the ISA bus. This patch makes my machine boot. 1us seems to be
> > minimal acceptable value, with 800ns I still get hangs.
>
> Why wasn't the delay needed then before commit cd0e00c10672 ("alpha: io:
> reorder barriers to guarantee writeX() and iowriteX() ordering"), which
> only moved `mb' around?
>
> Maciej
Suppose that someone does
outl(123, INDEX); x = inl(DATA);
Before the patch cd0e00c10672, the kernel would do
__iowrite(123, INDEX);
mb();
x = __ioread(DATA);
mb();
After the patch cd0e00c10672, the kernel would do
mb();
__iowrite(123, INDEX);
x = __ioread(DATA);
mb();
The patch changes the timing between the write and the read and the
hardware doesn't like it.
Mikulas
- Re: [PATCH] add delay between port write and port read Linus Torvalds
- Re: [PATCH] add delay between port write and port read Mikulas Patocka
- Re: [PATCH] add delay between port write and port read Sinan Kaya
- Re: [PATCH] add delay between port write and port read Maciej W. Rozycki
- Re: [PATCH] add delay between port write and port read Will Deacon
- Re: [PATCH] add delay between port write and port read Linus Torvalds
- Re: [PATCH] add delay between port write and port read Maciej W. Rozycki
- Re: [PATCH] add delay between port write and port read Will Deacon
- [PATCH] alpha: add udelay to io port paths Mikulas Patocka
- Re: [PATCH] alpha: add udelay to io port paths Maciej W. Rozycki
- Re: [PATCH] alpha: add udelay to io port paths Mikulas Patocka
- Re: [PATCH] alpha: add udelay to io port paths Maciej W. Rozycki
- Re: [PATCH] alpha: add udelay to io port paths Sinan Kaya
- Re: [PATCH] alpha: add udelay to io port paths Maciej W. Rozycki
- Re: [PATCH] alpha: add udelay to io port paths Sinan Kaya
- Re: [PATCH] alpha: add udelay to io port paths Mikulas Patocka
- Re: [PATCH] alpha: add udelay to io port paths Linus Torvalds
- Re: [PATCH] alpha: add udelay to io port paths Mikulas Patocka
- Re: [PATCH] add delay between port write and port read Mikulas Patocka
- Re: Alpha Avanti broken by 9ce8654323d69273b4977f76f11c9... Maciej W. Rozycki
- Re: Alpha Avanti broken by 9ce8654323d69273b4977f76f11c9... Mikulas Patocka
