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