📄 changelog
字号:
Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#96 edit... //depot/linux_mod_devel/scsi.aic79xx/rpm/aic79xx.spec#20 edit... //depot/linux_mod_devel/scsi.aic79xx/rpm/install.sh#23 editChange 1786 by gibbs@overdrive on 2002/12/19 16:10:05 Regenerate Linux firmware.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg.h#53 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg_print.c#34 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_seq.h#54 editChange 1785 by gibbs@aslan on 2002/12/19 16:08:47 aic79xx.c: Add a statistics timer that decides when to enable or disable interrupt coalessing based on load. Add ahd_flush_qoutfifo() which will run the qoutfifo as well as complete any commands sitting on the sequencer's COMPLETE_SCB lists. Use this routine in several places that did similar things in an add-hoc, but incomplete, fashion. A call to this routine was also added to ahd_abort_scbs() to close a race. Add a routine, ahd_reset_cmds_pending() which is used to update the CMDS_PENDING sequencer variable whenever error recovery compeltes SCBs without notifying the sequencer. Since ahd_reset_cmds_pending is called during ahd_unpause() only if we've aborted SCBs, its call to ahd_flush_qoutfifo should not cause recursion through ahd_run_qoutfifo(). A panic has been added to ensure that this recursion does not occur. In ahd_search_qinfifo, update the CMDS_PENDING sequencer variable directly. ahd_search_qinififo can be called in situations where using ahd_reset_cmds_pending() might cause recursion. Since we can safely determine the exact number to reduce CMDS_PENDING by in this scenario without running the qoutfifo, the manual update is more than adequate. Clean up diagnostics. aic79xx.h: Update per-softc variables for the stats "daemon". The defaults for interrupt coalessing have been updated slightly, but these need additional tuning. A new tunable paramter "minimum commands still outstanding required to attempt coalessing" has been added. Add a debug option for interrupt coalessing activities. Add two new softc flags: o AHD_UPDATE_PEND_CMDS Run ahd_reset_cmds_pending() on the next unpause. o AHD_RUNNING_QOUTFIFO Used to catch recursion through ahd_run_qoutfifo(). aic79xx.reg: Break INTMASK in SEQITNCTL out into INTMASK1 and INTMASK2. In at least the REV A, these are writable bits. We make use of that for a swtimer workaround in the sequencer. Add sequencer variables to recovery the min-commands still outstanding for coalessing and the current number of commands outstanding. Since HS_MAILBOX autoclears, provide a sequencer variable to store its contents. aic79xx.seq: In idle_loop_cchan, update LOCAL_HS_MAILBOX everytime we are notified of an HS_MAILBOX update via the HS_MAILBOX_ACT bit in QOFF_CTLSTA. Enhance our coalessing algorithm. If we have more SCBs to complete to the host (sitting in COMPLETE_SCB lists), always try to coaless them up to our coalessing limit. If coalessing is enabled, but we have fewer commands oustantind than the hosts limit, complete the command immediately. Since we cannot disable the swtimer's countdown, simply mask its interrupt once we no longer care about it firing. Add code to track the number of commands outstanding. Commands are outstanding from the time they are placed into the execution queue until the DMA to post completion is setup. Add a workaround for intvec_2 interrupts on the H2A4. In H2A4, the mode pointer is not saved for intvec2, but is restored on iret. This can lead to the restoration of a bogus mode ptr. Manually clear the intmask bits and do a normal return to compensate. aic79xx_inline.h: Call ahd_reset_cmds_pending() in ahd_unpause if required. Update cmdcmplt interrupt statistics in our interrupt handler.Affected files ...... //depot/aic7xxx/aic7xxx/aic79xx.c#146 edit... //depot/aic7xxx/aic7xxx/aic79xx.h#78 edit... //depot/aic7xxx/aic7xxx/aic79xx.reg#59 edit... //depot/aic7xxx/aic7xxx/aic79xx.seq#77 edit... //depot/aic7xxx/aic7xxx/aic79xx_inline.h#40 editChange 1784 by gibbs@bitkeeper-linux-2.5 on 2002/12/18 10:33:25 aic79xx_osm.c: Remove a stray ';' that was short cicuiting an if statement. aic79xx_osm.c: aic7xxx_osm.c: aic79xx_osm.h: aic7xxx_osm.h: Only allow slave_destroy() to destroy a real device if that device has had slave_configure() called on it. This prevents "silly deletions" caused by bogons in the scsi_scan code from deleting DV state for devices that are still attached and will have a slave_alloc() called for them as soon as the slave_destroy() returns.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#100 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#95 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#163 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#110 editChange 1783 by gibbs@bitkeeper-linux-2.5 on 2002/12/18 10:29:46 aic7xxx.c: Don't clobber ppr_options when forcing a renegotiation. The current ppr_options may be referenced while queuing new commands.Affected files ...... //depot/aic7xxx/aic7xxx/aic7xxx.c#104 editChange 1782 by gibbs@bitkeeper-linux-2.5 on 2002/12/17 19:27:05 aic79xx_osm.c: Add a prototype for ahd_linux_dv_fallback(). aic7xxx_osm.c: Complete the merge of the new biosparam API from Christoph Hellwig. aic79xx_osm.c: aic7xxx_osm.c: Move the setting of max_sectors to the host template to quiet a warning in 2.5.X. Add slave_alloc calls and "bootverbose" diagnostics for help in sorting out exactly how this slave_* API functions. Move call to ahd_linux_device_queue_depth to within the test to see if dev is NULL. Add code to actually destroy our data structures to the slave_destroy routine instead of waiting for a command that may not come to do so. Initialize the name field of the host structure.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#99 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#162 editChange 1781 by gibbs@bitkeeper-linux-2.5 on 2002/12/17 19:20:16 aic79xx.c: Remove "Now packetized" diagnostic now that this information is incorperated into the actual negotiation messages that are displayed. When forcing renegotiation, don't clober the current ppr_options. Much of the driver uses this information to determine if we are currently packetized or not. Remove some stray spaces at column 1 and ahd_set_tags. When complaining about getting a host message loop request with no pending messages, print out the SCB_CONTROL register down on the card. Modify the ahd_sent_msg() routine to handle a search for an outgoing identify message. Use this to detect a msg reject on an identify message which typically indicates that the target thought we were packetized. Force a renegotiation in this case. In ahd_search_qinfifo(), wait more effectively for SCB DMA activities to cease. We also clear out the state that tells the sequencer that a DMA was in progress for SCB fetch operations since we are about to change the qinfifo. In ahd_pause_and_flush_work(), actually itterate through the two Complete SCB lists. Ooops. In ahd_qinfifo_count(), fix the qinfifo empty case. In ahd_dump_card_state(), print out CCSCBCTL in the correct mode.Affected files ...... //depot/aic7xxx/aic7xxx/aic79xx.c#145 editChange 1780 by gibbs@bitkeeper-linux-2.5 on 2002/12/17 19:11:25 aic79xx.seq: Add a missing ret to the last instruction in load_overrun_buf.Affected files ...... //depot/aic7xxx/aic7xxx/aic79xx.seq#76 editChange 1779 by gibbs@bitkeeper-linux-2.5 on 2002/12/17 19:10:42 aic79xx.reg: Correct address for the DFDBCTL register.Affected files ...... //depot/aic7xxx/aic7xxx/aic79xx.reg#58 editChange 1774 by scottl@scottl-template on 2002/12/16 03:08:08 Update driver version to 1.3.0.ALPHA4Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#94 edit... //depot/linux_mod_devel/scsi.aic79xx/rpm/aic79xx.spec#19 edit... //depot/linux_mod_devel/scsi.aic79xx/rpm/install.sh#22 editChange 1772 by scottl@scottl-belfalas-template on 2002/12/16 02:43:36 ahd_linux_fallback can't aquire the ahd lock since it might be called from the completion handler. Create a wrapper called ahd_linux_dv_fallback that aquires and releases the ahd lock so that is can be called from the DV code and still satisfy it's locking needs. Move the error stat code into ahd_linux_queue_cmd_complete so it can catch more error conditions.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#98 editChange 1771 by scottl@scottl-belfalas-template on 2002/12/16 02:39:22 aic79xx_proc.c: Add a newline when printing the renegotiation pending message.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_proc.c#11 editChange 1770 by scottl@scottl-belfalas-template on 2002/12/15 23:38:06 aic79xx_osm.c: Don't grab the ahd lock when updating error stats since it's already held. When deciding to do a fallback because of an error, don't alias the existing devinfo struct with a new one. Why the compiler didn't catch this is beyond me.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#97 editChange 1769 by scottl@scottl-hobbiton-0b47 on 2002/12/15 22:24:16 Regen firmwareAffected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg.h#52 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg_print.c#33 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_seq.h#53 editChange 1768 by scottl@scottl-hobbiton-0b47 on 2002/12/15 22:24:02 aic79xx_osm.c: aic79xx_osm.h: Switch to a bucket-based method of counting the number off good commands in between bad ones. Use only a single bucket right now for simplicity, though this can grow in the future. This also removes the stats timer.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#96 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#93 editChange 1767 by scottl@scottl-hobbiton-0b47 on 2002/12/15 21:23:38 aic79xx_osm.h: Move the errors_detected field to the target structure, and add new_errors_detected field for doing stats decay. aic79xx_osm.c: If a transmission error is detected, increment the new_errors_detected counter. If it's passed the threshold, call for a speed fallback. Update the errors_detected field with new_errors_detected and reset new_errors_detected on every stats timeout call. aic79xx_proc.c: Display the per-target errors detected field.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#95 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#92 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_proc.c#10 editChange 1766 by gibbs@aslan on 2002/12/15 19:32:13 Add interrupt coalessing hooks. aic79xx.c: Keep a copy of the hs_mailbox in our softc so that we can perform read/modify/write operations on the hs_mailbox without having to pause the sequencer to read the last written value. Use the ENINT_COALESS flag in the hs_mailbox to toggle interrupt coalessing. Add entrypoints for enabling interrupt coalessing and setting both a timeout (how long to wait for commands to be coalessed) and a maximum commands to coaless value. In ahd_pause_and_flushwork() only return one selections are safely disabled. We now also flush the two sequencer lists of completed commands. aic79xx.h: Add coalessing and HS_MAILBOX fields. aic79xx.reg: Correct register addresses related to the software timer. Add constants paramaterizing the software timer. Add scratch ram locations for storing interrupt coalessing tunables. aic79xx.seq: Use the software timer and a commands completed count to implement interrupt coalessing. The command complete is deferred until either the maximum command threshold or a timer since the first command completed since the last completion expires. Move the test for the cfg4istat interrupt up an instruction to hopefully close a race between the next outgoing selection and our disabling of selections.Affected files ...... //depot/aic7xxx/aic7xxx/aic79xx.c#144 edit... //depot/aic7xxx/aic7xxx/aic79xx.h#77 edit... //depot/aic7xxx/aic7xxx/aic79xx.reg#57 edit... //depot/aic7xxx/aic7xxx/aic79xx.seq#75 editChange 1765 by gibbs@aslan on 2002/12/15 17:48:29 aicasm_gram.y: Allow constants to be complex expressions so long as those expressions can be fully evaluated during assembly.Affected files ...... //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#28 editChange 1764 by scottl@scottl-hobbiton-0b47 on 2002/12/13 18:09:34 aic79xx_osm.c: aic79xx_osm.h: Start of runtime fallback and interrupt caolescing stat gathering. Run ahd_linux_stats_update() every AHD_LINUX_STATS_INTERVAL period. Consense the packetized and non-packetized autosense code and start some logic to figure out what to do with the sense information.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#94 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#91 editChange 1762 by gibbs@bitkeeper-linux-2.5 on 2002/12/13 13:08:43 aic79xx_osm.c: aic7xxx_osm.c: Remove *slave_alloc declarations as we don't need or export this entry point.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#93 edit... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#161 editChange 1761 by gibbs@bitkeeper-linux-2.4 on 2002/12/12 14:31:11 aiclib.h: Add aic_sector_div macro.Affected files ...... //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aiclib.h#4 edit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -