Date: Tue, 08 Jan 2008 08:08:05 -0700 From: Scott Long <scottl@samsco.org> To: John Baldwin <jhb@freebsd.org> Cc: re@freebsd.org, freebsd-stable@freebsd.org Subject: Re: RELENG7 using lpt causes panic Message-ID: <478391D5.3010203@samsco.org> In-Reply-To: <200801072329.20557.jhb@freebsd.org> References: <20080108030857.GA93021@steerpike.hanley.stade.co.uk> <200801072329.20557.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote: > On Monday 07 January 2008 10:08:57 pm Adrian Wontroba wrote: >> I've recently switched some of my home systems to RELENG7. >> >> All seemed fairly well until I tried printing a CUPS test page on my >> backup and print server to an elderly Laserjet IIIp, where I seem to >> have a reproducible panic. It has happened twice. This is painful, as >> I have a big home fileystem (striped over two mirrors over most of two >> 500 GB disks). The gmirror syncronisation and background fsck leave the >> system close to unusable for hours while they fight over the disks. >> >> I was somewhat startled that something so basic as printing causes a >> panic. There have been no hardware changes since I last printed under >> RELENG6, but I don't print often, so hardware decay is a possibility. >> >> Is this a known problem? If not, I'll take the time to try various tests >> (with /home unmounted) and raise a PR. >> >> I envisage tests such as: >> * Does switching to a kernel without SMP and apic make a difference? >> * Does direct output cause a crash? >> * Does polling make a difference? >> * Does the parallel port mode (I think extended at present) make a >> difference? >> >> Some detail below. > > This is a known issue and it has to do with some changes in the interrupt > code in 7.x that interact badly with the lpt(4) driver (which tears down its > interrupt handler and sets it back up again for each character, and the > panic you see is because an interrupt came when it wasn't expecting it). > The lpt(4) driver does this weird dance to allow coexisting with vpo so you > can have lpd running and unplug your printer and plug up a Zip drive w/o > having to stop lpd. I think the way I want to fix it is to change the lpt > driver to not release the bus (and thus remove its interrupt handler) for > every char but to keep the bus while /dev/lpt0 is open (which would be all > the time with lpd running). > My guess is that LPT ZIP drives all died a clicking death many, many years ago. I usually don't advocate for the removal of hardware support, but these drives were so pitiful and so poorly engineered that I honestly doubt there is any value in keeping the driver around. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?478391D5.3010203>