Date: Thu, 04 Apr 96 08:55:00 PST From: Duncan Barclay <Duncan.Barclay@pa-consulting.com> To: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: ft Driver Problems Message-ID: <316402E0@SMTPGATE.PA-CONSULTING.COM>
next in thread | raw e-mail | index | archive | help
Hi, I have discovered some problems in the ft (floppy tape) driver code when using my Connor Tapestore800 drive. I am running 2.0.5-R (but am backing up prior ti installing 2.1-R) 1) The list of recognised tape formats is limited. ft doesnt like Travan cartridges. I have added the right numbers to the table but am not posting them as they changed when I reformatted my cart using Connor's DOS software. I dont want to start confusing people! Someone who has the right specs should update the entries. 2) One I fixed the above, all things were going okay using the travan cart and cpio. After a while the machine appeared to hang (I was in single user mode at the time, however later tests shows the process to be waiting on bdone). As I had hacked /sbin/ft to print the segment number I continued to play a little seeking the tape to that segment and kept getting the hangs. Eventually I discovered that the drive took a little longer than the code waits for to respond when it moves the head a few tracks. Specifics: ACMD_BLOCKIO (or similar) calls ACMD_READID to find out where the head is. ACMD_READID issues read id commands to the drive. If the first read id command returns garbage then ACMD_READID then calls ACMD_SEEKSTS to stop the tape moving. ACMD_SEEKSTS waits for the tape to stop and to become ready, timing out after 10seconds. If this timeout occurs then control goes back to ACMD_READID and ACMD_READID should do a further 4 retries. It doesnot. It hangs. My fix for _my_ tape drive is to up the timeout specified by ACMD_READID in the call to ACMD_SEEKSTS to 90seconds. In fact by drive takes about 12seconds to become ready. THIS IS NOT A REAL FIX. I think that the retry stuff in ACMD_READID is broken (a comment in the header of ft.c seems to indicate that hangs did occur and may have been fixed). I am willing to have ago at fixing this, but: I have never written a device driver. I have no time for 6months. I have no idea how QIC tapes work at the s/w level. The state machine in ft.c is big and it would take a long time to trace out what I need to know. I seem to remember someone saying they were going to maintain this code a while back. Anyway, it seems to work and my backup is done. So tonight 2.1-R from my new CDROM (ATAPI Im afraid...:-)) Thanks Raggy PS., Non of the above is anything to do with whom I work for.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?316402E0>