NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/49323
The following reply was made to PR kern/49323; it has been noted by GNATS.
From: Moroo Akira <retrage01%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/49323
Date: Sat, 2 Jul 2016 23:31:06 +0900
The patch modifies a mask to Remote IRR flag in IOAPIC.
This flag should be 0. It must be read only, so it does not matter how
it is 0 or 1. but in Hyper-V guest, "emulated IOAPIC interprets a write
of 1 in some unexpected way", according to the commit message of OpenBSD.
This causes the de(4) timeout.
The former is fix for sethwmask/sethwunmask,
the latter is for ioapic_mask/ioapic_unmask which are used for INTRSUTUB
in vector.S.
A kernel with this patch has been run almost a day without any timeout.
On 2016/06/30 0:15, Joerg Sonnenberger wrote:
> The following reply was made to PR kern/49323; it has been noted by GNATS.
>
> From: Joerg Sonnenberger <joerg%bec.de@localhost>
> To: gnats-bugs%NetBSD.org@localhost
> Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
> netbsd-bugs%netbsd.org@localhost, ryoon%NetBSD.org@localhost
> Subject: Re: kern/49323
> Date: Wed, 29 Jun 2016 17:10:23 +0200
>
> On Wed, Jun 29, 2016 at 02:35:01PM +0000, Moroo Akira wrote:
> > Index: x86/x86/ioapic.c
> > ===================================================================
> > RCS file: /cvsroot/src/sys/arch/x86/x86/ioapic.c,v
> > retrieving revision 1.52
> > diff -c -r1.52 ioapic.c
> > *** x86/x86/ioapic.c 27 Jul 2015 15:45:20 -0000 1.52
> > --- x86/x86/ioapic.c 29 Jun 2016 12:11:25 -0000
> > ***************
> > *** 549,554 ****
> > --- 550,556 ----
> > flags = ioapic_lock(sc);
> > redlo = ioapic_read_ul(sc, IOAPIC_REDLO(pin));
> > redlo &= ~IOAPIC_REDLO_MASK;
> > + redlo &= ~IOAPIC_REDLO_RIRR;
> > ioapic_write_ul(sc, IOAPIC_REDLO(pin), redlo);
> > ioapic_unlock(sc, flags);
> > }
>
> Combine the masks?
>
> > Index: amd64/include/i82093reg.h
> > ===================================================================
> > RCS file: /cvsroot/src/sys/arch/amd64/include/i82093reg.h,v
> > retrieving revision 1.5
> > diff -c -r1.5 i82093reg.h
> > *** amd64/include/i82093reg.h 3 Jul 2008 14:02:25 -0000 1.5
> > --- amd64/include/i82093reg.h 29 Jun 2016 12:13:55 -0000
> > ***************
> > *** 67,72 ****
> > --- 68,74 ----
> > movl %esi, (%r15) ;\
> > movl (%r13),%r12d ;\
> > andl $~IOAPIC_REDLO_MASK,%r12d ;\
> > + andl $~IOAPIC_REDLO_RIRR,%r12d ;\
> > movl %esi,(%r15) ;\
> > movl %r12d,(%r13) ;\
> > movq IS_PIC(%r14),%rdi ;\
>
> Here too?
>
> Joerg
>
>
--
Moroo Akira
retrage01%gmail.com@localhost
Home |
Main Index |
Thread Index |
Old Index