All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: AIC7xxx kernel problem with 2.4.2[234] kernels
@ 2004-01-19 13:32 Xose Vazquez Perez
  2004-01-19 17:21 ` James Bottomley
  0 siblings, 1 reply; 19+ messages in thread
From: Xose Vazquez Perez @ 2004-01-19 13:32 UTC (permalink / raw)
  To: linux-kernel, Tosatti, linux-scsi, Justin T. Gibbs

Marcelo Tosatti wrote:

> About the aic7xxx update, well, I believe aic7xxx 6.2.36 is pretty stable
> (I dont remember seeing any reliable bug report and I also cant find one
> in lkml archives) except this one (and a pair of "lockup on initialization
> with SMP").

Justin already put updates in BK, but James did not like the "new error recovery"
code. So, kernel driver is *SIX months* behind ADAPTEC driver release.

There is more info in this linux-scsi thread, why the patch was not applied:
http://marc.theaimsgroup.com/?l=linux-scsi&m=107228516327580&w=2

It looks like the _kernel_ driver is going to be without a maintainer
unless somebody works on it, porting ADAPTEC fixes/features to the kernel driver.


> What bugs are you aware of in 2.4's aic7xxx ?

aic7xxx/aic79xx CHANGELOG has info about all bugs fixed:

o Adaptec Aic7xxx

Version History:

   6.3.4 (December 22nd, 2003)
        - Provide a better description string for the 2915/30LP.
        - Sniff sense information returned by targets for unit
          attention errors that may indicate that the device has
          been changed.  If we see such status for non Domain
          Validation related commands, start a DV scan for the
          target.  In the past, DV would only occur for hot-plugged
          devices if no target had been previously probed for a
          particular ID.  This change guarantees that the DV process
          will occur even if the user swaps devices without any
          interveining I/O to tell us that a device has gone missing.
          The old behavior, among other things, would fail to spin up
          drives that were hot-plugged since the Linux mid-layer
          will only spin-up drives on initial attach.

   6.3.3 (November 6th, 2003)
        - Support the 2.6.0-test9 kernel
        - Fix rare deadlock caused by using del_timer_sync from within
          a timer handler.

   6.3.2 (October 28th, 2003)
        - Enforce a bus settle delay for bus resets that the
          driver initiates.
        - Fall back to basic DV for U160 devices that lack an
          echo buffer.
        - Correctly detect that left over BIOS data has not
          been initialized when the CHPRST status bit is set
          during driver initialization.

   6.3.1 (October 21st, 2003)
        - Fix a compiler error when building with only EISA or PCI
          support compiled into the kernel.
        - Add chained dependencies to both the driver and aicasm Makefiles
          to avoid problems with parallel builds.
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.
        - Fix a bug in the testing of the AHC_TMODE_WIDEODD_BUG that
          could cause target mode operations to hang.
        - Leave removal of softcs from the global list of softcs to
          the OSM.  This allows us to avoid holding the list_lock during
          device destruction.

   6.3.0 (September 8th, 2003)
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.
        - Bump minor number to reflect change in error recovery strategy.

   6.2.38 (August 31st, 2003)
        - Avoid an inadvertant reset of the controller during the
          memory mapped I/O test should the controller be left in
          the reset state prior to driver initialization.  On some
          systems, this extra reset resulted in a system hang due
          to a chip access that occurred too soon after reset.
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.
        - Add magic sysrq handler that causes a card dump to be output
          to the console for each controller.

   6.2.37 (August 12th, 2003)
        - Perform timeout recovery within the driver instead of relying
          on the Linux SCSI mid-layer to perform this function.  The
          mid-layer does not know the full state of the SCSI bus and
          is therefore prone to looping for several minutes to effect
          recovery.  The new scheme recovers within 15 seconds of the
          failure.
        - Support writing 93c56/66 SEEPROM on newer cards.
        - Avoid clearing ENBUSFREE during single stepping to avoid
          spurious "unexpected busfree while idle" messages.
        - Enable the use of the "Auto-Access-Pause" feature on the
          aic7880 and aic7870 chips.  It was disabled due to an
          oversight.  Using this feature drastically reduces command
          delivery latency.

   6.2.36 **KERNEL DRIVER**


o Adaptec Aic79xx

Version History:

   2.0.5 (December 22nd, 2003)
        - Correct a bug preventing the driver from renegotiating
          during auto-request operations when a check condition
          occurred for a zero length command.
        - Sniff sense information returned by targets for unit
          attention errors that may indicate that the device has
          been changed.  If we see such status for non Domain
          Validation related commands, start a DV scan for the
          target.  In the past, DV would only occur for hot-plugged
          devices if no target had been previously probed for a
          particular ID.  This change guarantees that the DV process
          will occur even if the user swaps devices without any
          interveining I/O to tell us that a device has gone missing.
          The old behavior, among other things, would fail to spin up
          drives that were hot-plugged since the Linux mid-layer
          will only spin-up drives on initial attach.
        - Correct several issues in the rundown of the good status
          FIFO during error recovery.  The typical failure scenario
          evidenced by this defect was the loss of several commands
          under high load when   several queue full conditions occured
          back to back.

   2.0.4 (November 6th, 2003)
        - Support the 2.6.0-test9 kernel
        - Fix rare deadlock caused by using del_timer_sync from within
          a timer handler.

   2.0.3 (October 21st, 2003)
        - On 7902A4 hardware, use the slow slew rate for transfer
          rates slower than U320.  This behavior matches the Windows
          driver.
        - Fix some issues with the ahd_flush_qoutfifo() routine.
        - Add a delay in the loop waiting for selection activity
          to cease.  Otherwise we may exhaust the loop counter too
          quickly on fast machines.
        - Return to processing bad status completions through the
          qoutfifo.  This reduces the amount of time the controller
          is paused for these kinds of errors.
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.
        - Leave removal of softcs from the global list of softcs to
          the OSM.  This allows us to avoid holding the list_lock during
          device destruction.
        - Enforce a bus settle delay for bus resets that the
          driver initiates.
        - Fall back to basic DV for U160 devices that lack an
          echo buffer.

   2.0.2 (September 4th, 2003)
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.
        - Avoid an inadvertant reset of the controller during the
          memory mapped I/O test should the controller be left in
          the reset state prior to driver initialization.  On some
          systems, this extra reset resulted in a system hang due
          to a chip access that occurred too soon after reset.
        - Correct an endian bug in ahd_swap_with_next_hscb.  This
          corrects strong-arm support.
        - Reset the bus for transactions that timeout waiting for
          the bus to go free after a disconnect or command complete
          message.

   2.0.1 (August 26th, 2003)
        - Add magic sysrq handler that causes a card dump to be output
          to the console for each controller.
        - Avoid waking the mid-layer's error recovery handler during
          timeout recovery by returning DID_ERROR instead of DID_TIMEOUT
          for timed-out commands that have been aborted.
        - Move additional common routines to the aiclib OSM library
          to reduce code duplication.

   2.0.0 (August 20th, 2003)
        - Remove MMAPIO definition and allow memory mapped
          I/O for any platform that supports PCI.
        - Avoid clearing ENBUSFREE during single stepping to avoid
          spurious "unexpected busfree while idle" messages.
        - Correct deadlock in ahd_run_qoutfifo() processing.
        - Optimize support for the 7901B.
        - Correct a few cases where an explicit flush of pending
          register writes was required to ensure acuracy in delays.
        - Correct problems in manually flushing completed commands
          on the controller.  The FIFOs are now flushed to ensure
          that completed commands that are still draining to the
          host are completed correctly.
        - Correct incomplete CDB delivery detection on the 790XB.
        - Ignore the cmd->underflow field since userland applications
          using the legacy command pass-thru interface do not set
          it correctly.  Honoring this field led to spurious errors
          when users used the "scsi_unique_id" program.
        - Perform timeout recovery within the driver instead of relying
          on the Linux SCSI mid-layer to perform this function.  The
          mid-layer does not know the full state of the SCSI bus and
          is therefore prone to looping for several minutes to effect
          recovery.  The new scheme recovers within 15 seconds of the
          failure.
        - Correct support for manual termination settings.
        - Increase maximum wait time for serial eeprom writes allowing
          writes to function correctly.

   1.3.12 (August 11, 2003)
        - Implement new error recovery thread that supercedes the existing
          Linux SCSI error recovery code.
        - Fix termination logic for 29320ALP.
        - Fix SEEPROM delay to compensate for write ops taking longer.

   1.3.11 (July 11, 2003)
        - Fix several deadlock issues.
        - Add 29320ALP and 39320B Id's.

   1.3.10 **KERNEL DRIVER**




^ permalink raw reply	[flat|nested] 19+ messages in thread
* AIC7xxx kernel problem with 2.4.2[234] kernels
@ 2004-01-16 21:43 Stephen Smoogen
  2004-01-16 22:39 ` Justin T. Gibbs
  0 siblings, 1 reply; 19+ messages in thread
From: Stephen Smoogen @ 2004-01-16 21:43 UTC (permalink / raw)
  To: linux-kernel

I hope this is in the correct mode and I am sending it to the correct
list :). Please let me know what other information I need to supply.


[1.] One line summary of the problem:

Booting problems with aic7xxx with stock kernel 2.4.24.

[2.] Full description of the problem/report:

I think I am seeing the same problem that was reported to the list from
Moal Tanguy on 2003-09-08. Our oem systems use an older SuperMicro
motherboard with a built on aic7xxx Adaptec aic7892 Ultra160 SCSI
adapter. Most of the systems have a forward mounted 'removable' 18
gigabyte scsi disk drive (different manufacturers). When running any Red
Hat kernel we have no problems booting the system. When using 2.4.22,
2.4.23, or 2.4.24 kernels, the system loads in the aic7xxx module from
the initrd and probes the interfaces. In systems with multiple disks, it
reaches the first drive (the removable disk) and errors out with a slow
progression of


Unexpected busfree while idle
SEQ 0x01

After 10 or so of these, it will then go merrily onto the next disk
without reporting any errors, and then 'crashes' because it was unable
to find the root directory to continue.

Interestinglyu, after this has happened using the hardware reset will
cause the system to not be able to find the SCSI ID0 disk to boot
from. A complete power cycle is needed for the SCSI controller to find
the disk again.

Patched 2.4.24 kernel with latest items from Justin Gibbs website, and
problem occurs in same form. From what I could google, I am expecting it
is hardware related in some issue, but would love to know what.

[3.] Keywords (i.e., modules, networking, kernel):

kernel | drivers | scsi | aic7xxx

[4.] Kernel version (from /proc/version):

Linux version 2.4.24 (smoogen@rh73dev.ds.lanl.gov) (gcc version 2.96
20000731 (Red Hat Linux 7.3 2.96-113)) #1 Mon Jan 12 14:44:21 MST 2004

CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set


[5.] Output of Oops.. message (if applicable) with symbolic information 
     resolved (see Documentation/oops-tracing.txt)

None

[6.] A small shell script or example program which triggers the
     problem (if possible)

Not Applicaple

[7.] Environment
[7.1.] Software (add the output of the ver_linux script here)

This is from the machine that was used to build the kernel.

# sh ./scripts/ver_linux 
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
 
Linux rh73dev.ds.lanl.gov 2.4.20-19.7 #1 Tue Jul 15 13:44:14 EDT 2003
i686 unknown
 
Gnu C                  2.96
Gnu make               3.79.1
util-linux             2.11n
mount                  2.11n
modutils               2.4.18
e2fsprogs              1.27
quota-tools            3.06.
Linux C Library        2.2.5
Dynamic linker (ldd)   2.2.5
Procps                 2.0.7
Net-tools              1.60
Console-tools          0.3.3
Sh-utils               2.0.11
Modules Loaded         autofs nfs lockd sunrpc eepro100 mii ipv6
usb-ohci usbcore ext3 jbd aic7xxx sd_mod scsi_mod


[7.2.] Processor information (from /proc/cpuinfo):


# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 866.277
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr sse
bogomips        : 1730.15

[7.3.] Module information (from /proc/modules):

[All info below is from running Red Hat kernel 2.4.20-28.7 as it works.]

# cat /proc/modules
ide-cd                 32256   0 (autoclean)
cdrom                  32128   0 (autoclean) [ide-cd]
loop                   10736   0 (unused)
eepro100               21068   1 (autoclean)
mii                     3976   0 (autoclean) [eepro100]
usb-ohci               20544   0 (unused)
usbcore                73792   1 [usb-ohci]
aic7xxx               133248   6
sd_mod                 12828  12
scsi_mod              107548   2 [aic7xxx sd_mod]


[7.4.] Loaded driver and hardware information (/proc/ioports,
/proc/iomem)

[All info below is from running Red Hat kernel 2.4.20-28.7 as it works.]

# cat /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
02f8-02ff : serial(auto)
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
d800-d83f : Intel Corp. 82557/8/9 [Ethernet Pro 100]
  d800-d83f : eepro100
e400-e4ff : Adaptec AIC-7892P U160/m
e800-e8ff : ATI Technologies Inc Rage XL
ffa0-ffaf : ServerWorks OSB4 IDE Controller
  ffa0-ffa7 : ide0
  ffa8-ffaf : ide1

# cat /proc/iomem
00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000c8000-000cc7ff : Extension ROM
000cc800-000cd7ff : Extension ROM
000f0000-000fffff : System ROM
00100000-3ffeffff : System RAM
  00100000-00225f42 : Kernel code
  00225f43-0031caff : Kernel data
3fff0000-3fffefff : ACPI Tables
3ffff000-3fffffff : ACPI Non-volatile Storage
fc900000-fc9fffff : Intel Corp. 82557/8/9 [Ethernet Pro 100]
fcafe000-fcafefff : Intel Corp. 82557/8/9 [Ethernet Pro 100]
  fcafe000-fcafefff : eepro100
fcaff000-fcafffff : ServerWorks OSB4/CSB5 OHCI USB Controller
  fcaff000-fcafffff : usb-ohci
fd000000-fdffffff : ATI Technologies Inc Rage XL
febfe000-febfefff : Adaptec AIC-7892P U160/m
  febfe000-febfefff : aic7xxx
febff000-febfffff : ATI Technologies Inc Rage XL
fec00000-fec01fff : reserved
fee00000-fee00fff : reserved
fff80000-ffffffff : reserved

[7.5.] PCI information ('lspci -vvv' as root)

# lspci -vvv
00:00.0 Host bridge: ServerWorks CNB20LE (rev 06)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
        Latency: 32, cache line size 08
                                                                                                                                          
00:00.1 Host bridge: ServerWorks CNB20LE (rev 06)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 16, cache line size 08
                                                                                                                                          
00:06.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100]
(rev 08)
        Subsystem: Intel Corporation 82559 Fast Ethernet LAN on
Motherboard
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (2000ns min, 14000ns max), cache line size 08
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at fcafe000 (32-bit, non-prefetchable)
[size=4K]
        Region 1: I/O ports at d800 [size=64]
        Region 2: Memory at fc900000 (32-bit, non-prefetchable)
[size=1M]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=2 PME-
                                                                                                                                          
00:0f.0 ISA bridge: ServerWorks OSB4 (rev 50)
        Subsystem: ServerWorks OSB4
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
                                                                                                                                          
00:0f.1 IDE interface: ServerWorks: Unknown device 0211 (prog-if 8a
[Master SecP PriP])
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64
        Region 4: I/O ports at ffa0 [size=16]
                                                                                                                                          
00:0f.2 USB Controller: ServerWorks: Unknown device 0220 (rev 04)
(prog-if 10 [OHCI])
        Subsystem: ServerWorks: Unknown device 0220
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (20000ns max), cache line size 08
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at fcaff000 (32-bit, non-prefetchable)
[size=4K]
                                                                                                                                          
01:01.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
(prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc: Unknown device 0008
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping+ SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (2000ns min), cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at fd000000 (32-bit, non-prefetchable)
[size=16M]
        Region 1: I/O ports at e800 [size=256]
        Region 2: Memory at febff000 (32-bit, non-prefetchable)
[size=4K]
        Expansion ROM at febc0000 [disabled] [size=128K]
        Capabilities: [5c] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 
01:03.0 SCSI storage controller: Adaptec 7892P (rev 02)
        Subsystem: Super Micro Computer Inc: Unknown device 9005
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (10000ns min, 6250ns max), cache line size 08
        Interrupt: pin A routed to IRQ 10
        BIST result: 00
        Region 0: I/O ports at e400 [disabled] [size=256]
        Region 1: Memory at febfe000 (64-bit, non-prefetchable)
[size=4K]
        Expansion ROM at feba0000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 

[7.6.] SCSI information (from /proc/scsi/scsi)

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: IBM      Model: DDYS-T18350N     Rev: S80D
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 04 Lun: 00
  Vendor: IBM      Model: DDYS-T18350N     Rev: S9YB
  Type:   Direct-Access                    ANSI SCSI revision: 03


[7.7.] Other information that might be relevant to the problem
       (please look in /proc and include all information that you
       think to be relevant):
[X.] Other notes, patches, fixes, workarounds:


-- 
Stephen John Smoogen		smoogen@lanl.gov
Los Alamos National Lab  CCN-5 Sched 5/40  PH: 4-0645
Ta-03 SM-1498 MailStop B255 DP 10S  Los Alamos, NM 87545
-- So shines a good deed in a weary world. = Willy Wonka --


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2004-02-18 19:44 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-19 13:32 AIC7xxx kernel problem with 2.4.2[234] kernels Xose Vazquez Perez
2004-01-19 17:21 ` James Bottomley
2004-01-19 18:38   ` Justin T. Gibbs
2004-01-20  0:50     ` James Bottomley
2004-01-20  2:02       ` Justin T. Gibbs
2004-01-20  4:45         ` James Bottomley
2004-01-20  5:43           ` Justin T. Gibbs
2004-01-22  5:14             ` James Bottomley
2004-01-20 11:24           ` Chiaki
2004-01-20  7:15         ` Linus Torvalds
2004-01-20  8:30           ` Andre Hedrick
2004-01-21 20:37           ` Guennadi Liakhovetski
  -- strict thread matches above, loose matches on Subject: below --
2004-01-16 21:43 Stephen Smoogen
2004-01-16 22:39 ` Justin T. Gibbs
2004-01-16 22:59   ` Stephen Smoogen
2004-01-21 19:59     ` Stephen Smoogen
2004-02-18 19:42       ` Stephen Smoogen
2004-01-16 23:17   ` Marcelo Tosatti
2004-01-18  1:11   ` Marcelo Tosatti

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.