<<< DOCD$:[NOTES$LIBRARY]SCT-GRYPHON.NOTE;1 >>> -< sct-gryphon >- ================================================================================ Note 2537.0 OTHER: fix write timeout problem, cld cfs.47061 No replies EVMS::CROLL "{VDE SCT}" 86 lines 4-DEC-1996 11:45 -------------------------------------------------------------------------------- Project: sound drivers Project Leader: John Croll Inspected or Reviewed by: Development Stream: V71R Checkin Type: BugFix Problem Symptom: sound files occasionally do not play to the end with DECsound Diagnosis: SODRIVER occasionally returns SS$_TIMEOUT when playing a sound buffer, and does not play the entire buffer. Problem caused by SODRIVER using a 1 second timeout value when timing writes. Due to the way system timeout checking is performed, a 1 second timer will average 1/2 second, and frequently expire almost immediately. This was causing occasional premature timeouts in SODRIVER. Cure: Change 1 second timeout value to 2 seconds. Platforms affected: All DEC 3000 platforms only. Modules: [DRIVER]SODRIVER.C Affected Images: [SYS$LDR]SYS$SODRIVER.EXE Impact/Risks: low impact, no risk How this change was Tested: Ran both DECsound and customer test program to demonstrate problem. Installed new driver, re-ran both DECsound and customer test program for extended period -- no timeouts occurred. Associated QARs,CLDs,SPRs: CLD CFS.47061 (Optional) Comments: DIFF file appended to this note. (Optional) Special Build Instructions: ************ File WORK7:[CROLL.STAGE3]SODRIVER.C;5 (new version) 5 #pragma module SODRIVER "X-16" 6 ****** File WORK7:[CROLL.RESERVATIONS3]SODRIVER.C;1 (old version) 5 #pragma module SODRIVER "X-15" 6 ************ ************ File WORK7:[CROLL.STAGE3]SODRIVER.C;5 54 * X-16 JWC John W. Croll 4-Dec-1996 55 * The write timeout value was originally 1 second. Due to 56 * the way timeouts are checked by the system, 1 second timeouts 57 * are frequently less than 1 second, sometimes much less. 58 * This caused occasional premature timeouts when writing 59 * sound buffers to the device. Running DECsound in a 60 * continuous loop playing a sound file would eventually 61 * hang due to this problem. Increased the timeout to 2 62 * seconds in the ioc_std$primitive_wfikpch call, in the 63 * SO_FUNC_WRITE case in the start I/O routine. 64 * 65 * X-15 JWC John W. Croll 16-Oct-1996 66 * The read timout processing routine so$func_read_timout ****** File WORK7:[CROLL.RESERVATIONS3]SODRIVER.C;1 54 * X=15 JWC John W. Croll 16-Oct-1996 55 * The read timout processing routine so$func_read_timout ************ ************ File WORK7:[CROLL.STAGE3]SODRIVER.C;5 1730 ioc_std$primitive_wfikpch (irp_ptr, SS$_NORMAL, (UCB *)ucb_ptr, 2, save_ipl); 1731 return; ****** File WORK7:[CROLL.RESERVATIONS3]SODRIVER.C;1 1719 ioc_std$primitive_wfikpch (irp_ptr, SS$_NORMAL, (UCB *)ucb_ptr, 1, save_ipl); 1720 return; ************ Number of difference sections found: 3 Number of difference records found: 14 DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=WORK7:[CROLL.STAGE3]SO.DIFF;1- WORK7:[CROLL.STAGE3]SODRIVER.C;5- WORK7:[CROLL.RESERVATIONS3]SODRIVER.C;1