NetBSD Problem Report #33218

From yamt@mwd.biglobe.ne.jp  Sat Apr  8 14:32:28 2006
Return-Path: <yamt@mwd.biglobe.ne.jp>
Received: from yamt.dyndns.org (FLA1Abg085.kng.mesh.ad.jp [219.107.209.85])
	by narn.netbsd.org (Postfix) with ESMTP id E99B063B9C2
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  8 Apr 2006 14:32:26 +0000 (UTC)
Message-Id: <1144506723.775558.7455.nullmailer@yamt.dyndns.org>
Date: Sat, 08 Apr 2006 23:32:03 +0900
From: yamt@mwd.biglobe.ne.jp
Reply-To: yamt@mwd.biglobe.ne.jp
To: gnats-bugs@netbsd.org
Subject: splraiseipl/softintr_establish problem
X-Send-Pr-Version: 3.95

>Number:         33218
>Category:       port-alpha
>Synopsis:       splraiseipl/softintr_establish problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 08 14:35:00 +0000 2006
>Closed-Date:    Thu Dec 21 16:07:48 +0000 2006
>Last-Modified:  Thu Dec 21 16:07:48 +0000 2006
>Originator:     YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
>Release:        NetBSD 3.99.16
>Organization:

>Environment:


Architecture: alpha
Machine: alpha
>Description:
	after splraiseipl change, softintr_establish() expects SI_* argument,
	while it's actually IPL_*.
	it happens to work because IPL_SOFT == SI_SOFTNET.

	(it's impossible for softintr_establish to get SI_* from given IPL_*,
	because all of IPL_SOFT* are the same value.)
>How-To-Repeat:
	code inspection.
>Fix:
	one of the followings?

	- coalesce softintr queues into a single queue.
	- change one of splraiseipl or softintr_establish, so that
	  they don't share IPL_ constants.
	- make IPL_SOFT* different each other, and have a simple conversion
	  in both of splraiseipl and softintr_establish.

>Release-Note:

>Audit-Trail:
From: YAMAMOTO Takashi <yamt@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: PR/33218 CVS commit: src/sys
Date: Thu, 21 Dec 2006 15:55:26 +0000 (UTC)

 Module Name:	src
 Committed By:	yamt
 Date:		Thu Dec 21 15:55:26 UTC 2006

 Modified Files:
 	src/sys/arch/acorn26/include: intr.h
 	src/sys/arch/acorn32/include: intr.h
 	src/sys/arch/algor/algor: algor_p4032_intr.c algor_p5064_intr.c
 	    algor_p6032_intr.c interrupt.c
 	src/sys/arch/algor/include: intr.h
 	src/sys/arch/alpha/alpha: interrupt.c
 	src/sys/arch/alpha/include: intr.h
 	src/sys/arch/amiga/amiga: machdep.c
 	src/sys/arch/amiga/dev: com_supio.c gvpio.c
 	src/sys/arch/amiga/include: intr.h
 	src/sys/arch/arc/arc: machdep.c
 	src/sys/arch/arc/include: intr.h
 	src/sys/arch/arm/arm32: intr.c
 	src/sys/arch/arm/footbridge: footbridge_intr.h
 	src/sys/arch/arm/include/arm32: psl.h
 	src/sys/arch/atari/include: intr.h
 	src/sys/arch/bebox/include: intr.h
 	src/sys/arch/cesfic/cesfic: isr.c
 	src/sys/arch/cesfic/include: intr.h
 	src/sys/arch/cobalt/cobalt: machdep.c
 	src/sys/arch/cobalt/include: intr.h
 	src/sys/arch/dreamcast/include: intr.h
 	src/sys/arch/evbarm/include: intr.h
 	src/sys/arch/evbmips/include: intr.h
 	src/sys/arch/evbmips/malta: malta_intr.c
 	src/sys/arch/evbsh3/include: intr.h
 	src/sys/arch/ews4800mips/ews4800mips: interrupt.c
 	src/sys/arch/ews4800mips/include: intr.h
 	src/sys/arch/hp300/dev: dma.c
 	src/sys/arch/hp300/hp300: intr.c softintr.c
 	src/sys/arch/hp300/include: intr.h
 	src/sys/arch/hp700/include: intr.h
 	src/sys/arch/hpcarm/hpcarm: intr.c softintr.c
 	src/sys/arch/hpcarm/include: intr.h
 	src/sys/arch/hpcmips/hpcmips: interrupt.c
 	src/sys/arch/hpcmips/include: intr.h
 	src/sys/arch/hpcsh/include: intr.h
 	src/sys/arch/ia64/include: intr.h
 	src/sys/arch/ibmnws/include: intr.h
 	src/sys/arch/iyonix/include: intr.h
 	src/sys/arch/landisk/include: intr.h
 	src/sys/arch/luna68k/include: intr.h
 	src/sys/arch/luna68k/luna68k: isr.c
 	src/sys/arch/mac68k/include: intr.h
 	src/sys/arch/macppc/include: intr.h
 	src/sys/arch/mips/alchemy: au_icu.c
 	src/sys/arch/mips/include: softintr.h
 	src/sys/arch/mips/mips: softintr.c
 	src/sys/arch/mipsco/include: intr.h
 	src/sys/arch/mipsco/mipsco: interrupt.c machdep.c
 	src/sys/arch/mmeye/include: intr.h
 	src/sys/arch/mvme68k/include: intr.h
 	src/sys/arch/mvme68k/mvme68k: machdep.c softintr.c
 	src/sys/arch/mvmeppc/include: intr.h
 	src/sys/arch/news68k/include: intr.h
 	src/sys/arch/newsmips/include: intr.h
 	src/sys/arch/newsmips/newsmips: machdep.c
 	src/sys/arch/next68k/include: intr.h
 	src/sys/arch/ofppc/include: intr.h
 	src/sys/arch/pc532/include: intr.h
 	src/sys/arch/pdp10/include: intr.h
 	src/sys/arch/pdp10/pdp10: locore.S machdep.c
 	src/sys/arch/pmax/include: intr.h
 	src/sys/arch/pmax/pmax: dec_3100.c dec_3max.c dec_3maxplus.c dec_3min.c
 	    dec_5100.c dec_maxine.c interrupt.c machdep.c
 	src/sys/arch/pmppc/include: intr.h
 	src/sys/arch/powerpc/include/ibm4xx: ibm4xx_intr.h
 	src/sys/arch/powerpc/marvell: marvell_intr.h
 	src/sys/arch/prep/include: intr.h
 	src/sys/arch/sandpoint/include: intr.h
 	src/sys/arch/sbmips/include: intr.h
 	src/sys/arch/sbmips/sbmips: sb1250_icu.c
 	src/sys/arch/sgimips/include: intr.h
 	src/sys/arch/sgimips/sgimips: autoconf.c machdep.c
 	src/sys/arch/sh5/include: intr.h
 	src/sys/arch/shark/include: intr.h
 	src/sys/arch/sparc/include: psl.h
 	src/sys/arch/sparc64/include: psl.h
 	src/sys/arch/sun68k/include: intr.h
 	src/sys/arch/sun68k/sun68k: isr.c
 	src/sys/arch/vax/include: intr.h
 	src/sys/arch/x68k/include: intr.h
 	src/sys/arch/x86/include: intr.h
 	src/sys/arch/xen/include: intr.h
 	src/sys/arch/zaurus/include: intr.h
 	src/sys/dev/dmover: dmover_io.c
 	src/sys/dev/pci: pccbb.c pccbbvar.h
 	src/sys/dev/pcmcia: bt3c.c
 	src/sys/dev/usb: ubt.c
 	src/sys/kern: init_main.c kern_physio.c subr_workqueue.c
 	src/sys/netbt: hci.h
 	src/sys/sys: spl.h
 	src/sys/ufs/lfs: lfs_segment.c
 	src/sys/uvm: uvm.h uvm_extern.h uvm_page.c uvm_pager.c uvm_pdaemon.c

 Log Message:
 merge yamt-splraiseipl branch.

 	- finish implementing splraiseipl (and makeiplcookie).
 	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
 	- complete workqueue(9) and fix its ipl problem, which is reported
 	  to cause audio skipping.
 	- fix netbt (at least compilation problems) for some ports.
 	- fix PR/33218.


 To generate a diff of this commit:
 cvs rdiff -r1.8 -r1.9 src/sys/arch/acorn26/include/intr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/acorn32/include/intr.h
 cvs rdiff -r1.12 -r1.13 src/sys/arch/algor/algor/algor_p4032_intr.c
 cvs rdiff -r1.15 -r1.16 src/sys/arch/algor/algor/algor_p5064_intr.c
 cvs rdiff -r1.9 -r1.10 src/sys/arch/algor/algor/algor_p6032_intr.c
 cvs rdiff -r1.10 -r1.11 src/sys/arch/algor/algor/interrupt.c
 cvs rdiff -r1.6 -r1.7 src/sys/arch/algor/include/intr.h
 cvs rdiff -r1.69 -r1.70 src/sys/arch/alpha/alpha/interrupt.c
 cvs rdiff -r1.55 -r1.56 src/sys/arch/alpha/include/intr.h
 cvs rdiff -r1.199 -r1.200 src/sys/arch/amiga/amiga/machdep.c
 cvs rdiff -r1.21 -r1.22 src/sys/arch/amiga/dev/com_supio.c
 cvs rdiff -r1.14 -r1.15 src/sys/arch/amiga/dev/gvpio.c
 cvs rdiff -r1.15 -r1.16 src/sys/arch/amiga/include/intr.h
 cvs rdiff -r1.98 -r1.99 src/sys/arch/arc/arc/machdep.c
 cvs rdiff -r1.16 -r1.17 src/sys/arch/arc/include/intr.h
 cvs rdiff -r1.13 -r1.14 src/sys/arch/arm/arm32/intr.c
 cvs rdiff -r1.8 -r1.9 src/sys/arch/arm/footbridge/footbridge_intr.h
 cvs rdiff -r1.6 -r1.7 src/sys/arch/arm/include/arm32/psl.h
 cvs rdiff -r1.11 -r1.12 src/sys/arch/atari/include/intr.h
 cvs rdiff -r1.23 -r1.24 src/sys/arch/bebox/include/intr.h
 cvs rdiff -r1.5 -r1.6 src/sys/arch/cesfic/cesfic/isr.c
 cvs rdiff -r1.4 -r1.5 src/sys/arch/cesfic/include/intr.h
 cvs rdiff -r1.75 -r1.76 src/sys/arch/cobalt/cobalt/machdep.c
 cvs rdiff -r1.23 -r1.24 src/sys/arch/cobalt/include/intr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/dreamcast/include/intr.h
 cvs rdiff -r1.14 -r1.15 src/sys/arch/evbarm/include/intr.h
 cvs rdiff -r1.9 -r1.10 src/sys/arch/evbmips/include/intr.h
 cvs rdiff -r1.12 -r1.13 src/sys/arch/evbmips/malta/malta_intr.c
 cvs rdiff -r1.8 -r1.9 src/sys/arch/evbsh3/include/intr.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/ews4800mips/ews4800mips/interrupt.c
 cvs rdiff -r1.1 -r1.2 src/sys/arch/ews4800mips/include/intr.h
 cvs rdiff -r1.34 -r1.35 src/sys/arch/hp300/dev/dma.c
 cvs rdiff -r1.28 -r1.29 src/sys/arch/hp300/hp300/intr.c
 cvs rdiff -r1.9 -r1.10 src/sys/arch/hp300/hp300/softintr.c
 cvs rdiff -r1.15 -r1.16 src/sys/arch/hp300/include/intr.h
 cvs rdiff -r1.6 -r1.7 src/sys/arch/hp700/include/intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/hpcarm/hpcarm/intr.c
 cvs rdiff -r1.12 -r1.13 src/sys/arch/hpcarm/hpcarm/softintr.c
 cvs rdiff -r1.7 -r1.8 src/sys/arch/hpcarm/include/intr.h
 cvs rdiff -r1.9 -r1.10 src/sys/arch/hpcmips/hpcmips/interrupt.c
 cvs rdiff -r1.16 -r1.17 src/sys/arch/hpcmips/include/intr.h
 cvs rdiff -r1.8 -r1.9 src/sys/arch/hpcsh/include/intr.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/ia64/include/intr.h
 cvs rdiff -r1.7 -r1.8 src/sys/arch/ibmnws/include/intr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/iyonix/include/intr.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/landisk/include/intr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/luna68k/include/intr.h
 cvs rdiff -r1.8 -r1.9 src/sys/arch/luna68k/luna68k/isr.c
 cvs rdiff -r1.23 -r1.24 src/sys/arch/mac68k/include/intr.h
 cvs rdiff -r1.22 -r1.23 src/sys/arch/macppc/include/intr.h
 cvs rdiff -r1.20 -r1.21 src/sys/arch/mips/alchemy/au_icu.c
 cvs rdiff -r1.1 -r1.2 src/sys/arch/mips/include/softintr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/mips/mips/softintr.c
 cvs rdiff -r1.11 -r1.12 src/sys/arch/mipsco/include/intr.h
 cvs rdiff -r1.3 -r1.4 src/sys/arch/mipsco/mipsco/interrupt.c
 cvs rdiff -r1.47 -r1.48 src/sys/arch/mipsco/mipsco/machdep.c
 cvs rdiff -r1.5 -r1.6 src/sys/arch/mmeye/include/intr.h
 cvs rdiff -r1.13 -r1.14 src/sys/arch/mvme68k/include/intr.h
 cvs rdiff -r1.116 -r1.117 src/sys/arch/mvme68k/mvme68k/machdep.c
 cvs rdiff -r1.8 -r1.9 src/sys/arch/mvme68k/mvme68k/softintr.c
 cvs rdiff -r1.9 -r1.10 src/sys/arch/mvmeppc/include/intr.h
 cvs rdiff -r1.12 -r1.13 src/sys/arch/news68k/include/intr.h
 cvs rdiff -r1.17 -r1.18 src/sys/arch/newsmips/include/intr.h
 cvs rdiff -r1.84 -r1.85 src/sys/arch/newsmips/newsmips/machdep.c
 cvs rdiff -r1.15 -r1.16 src/sys/arch/next68k/include/intr.h
 cvs rdiff -r1.6 -r1.7 src/sys/arch/ofppc/include/intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/pc532/include/intr.h
 cvs rdiff -r1.2 -r1.3 src/sys/arch/pdp10/include/intr.h
 cvs rdiff -r1.2 -r1.3 src/sys/arch/pdp10/pdp10/locore.S
 cvs rdiff -r1.8 -r1.9 src/sys/arch/pdp10/pdp10/machdep.c
 cvs rdiff -r1.26 -r1.27 src/sys/arch/pmax/include/intr.h
 cvs rdiff -r1.42 -r1.43 src/sys/arch/pmax/pmax/dec_3100.c
 cvs rdiff -r1.43 -r1.44 src/sys/arch/pmax/pmax/dec_3max.c
 cvs rdiff -r1.55 -r1.56 src/sys/arch/pmax/pmax/dec_3maxplus.c
 cvs rdiff -r1.56 -r1.57 src/sys/arch/pmax/pmax/dec_3min.c
 cvs rdiff -r1.38 -r1.39 src/sys/arch/pmax/pmax/dec_5100.c
 cvs rdiff -r1.49 -r1.50 src/sys/arch/pmax/pmax/dec_maxine.c
 cvs rdiff -r1.11 -r1.12 src/sys/arch/pmax/pmax/interrupt.c
 cvs rdiff -r1.214 -r1.215 src/sys/arch/pmax/pmax/machdep.c
 cvs rdiff -r1.9 -r1.10 src/sys/arch/pmppc/include/intr.h
 cvs rdiff -r1.13 -r1.14 src/sys/arch/powerpc/include/ibm4xx/ibm4xx_intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/powerpc/marvell/marvell_intr.h
 cvs rdiff -r1.27 -r1.28 src/sys/arch/prep/include/intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/sandpoint/include/intr.h
 cvs rdiff -r1.4 -r1.5 src/sys/arch/sbmips/include/intr.h
 cvs rdiff -r1.7 -r1.8 src/sys/arch/sbmips/sbmips/sb1250_icu.c
 cvs rdiff -r1.19 -r1.20 src/sys/arch/sgimips/include/intr.h
 cvs rdiff -r1.32 -r1.33 src/sys/arch/sgimips/sgimips/autoconf.c
 cvs rdiff -r1.98 -r1.99 src/sys/arch/sgimips/sgimips/machdep.c
 cvs rdiff -r1.6 -r1.7 src/sys/arch/sh5/include/intr.h
 cvs rdiff -r1.3 -r1.4 src/sys/arch/shark/include/intr.h
 cvs rdiff -r1.40 -r1.41 src/sys/arch/sparc/include/psl.h
 cvs rdiff -r1.33 -r1.34 src/sys/arch/sparc64/include/psl.h
 cvs rdiff -r1.9 -r1.10 src/sys/arch/sun68k/include/intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/sun68k/sun68k/isr.c
 cvs rdiff -r1.20 -r1.21 src/sys/arch/vax/include/intr.h
 cvs rdiff -r1.10 -r1.11 src/sys/arch/x68k/include/intr.h
 cvs rdiff -r1.21 -r1.22 src/sys/arch/x86/include/intr.h
 cvs rdiff -r1.12 -r1.13 src/sys/arch/xen/include/intr.h
 cvs rdiff -r1.1 -r1.2 src/sys/arch/zaurus/include/intr.h
 cvs rdiff -r1.23 -r1.24 src/sys/dev/dmover/dmover_io.c
 cvs rdiff -r1.137 -r1.138 src/sys/dev/pci/pccbb.c
 cvs rdiff -r1.26 -r1.27 src/sys/dev/pci/pccbbvar.h
 cvs rdiff -r1.6 -r1.7 src/sys/dev/pcmcia/bt3c.c
 cvs rdiff -r1.21 -r1.22 src/sys/dev/usb/ubt.c
 cvs rdiff -r1.285 -r1.286 src/sys/kern/init_main.c
 cvs rdiff -r1.76 -r1.77 src/sys/kern/kern_physio.c
 cvs rdiff -r1.7 -r1.8 src/sys/kern/subr_workqueue.c
 cvs rdiff -r1.7 -r1.8 src/sys/netbt/hci.h
 cvs rdiff -r1.4 -r1.5 src/sys/sys/spl.h
 cvs rdiff -r1.195 -r1.196 src/sys/ufs/lfs/lfs_segment.c
 cvs rdiff -r1.44 -r1.45 src/sys/uvm/uvm.h
 cvs rdiff -r1.123 -r1.124 src/sys/uvm/uvm_extern.h
 cvs rdiff -r1.115 -r1.116 src/sys/uvm/uvm_page.c
 cvs rdiff -r1.78 -r1.79 src/sys/uvm/uvm_pager.c
 cvs rdiff -r1.80 -r1.81 src/sys/uvm/uvm_pdaemon.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: yamt@netbsd.org
State-Changed-When: Thu, 21 Dec 2006 16:07:48 +0000
State-Changed-Why:
fixed.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.