From owner-freebsd-stable@FreeBSD.ORG Tue Jan 8 15:08:12 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B165016A4C2; Tue, 8 Jan 2008 15:08:12 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id 7838513C4E1; Tue, 8 Jan 2008 15:08:11 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from phobos.samsco.home (phobos.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.13.8/8.13.8) with ESMTP id m08F87Hr013969; Tue, 8 Jan 2008 08:08:07 -0700 (MST) (envelope-from scottl@samsco.org) Message-ID: <478391D5.3010203@samsco.org> Date: Tue, 08 Jan 2008 08:08:05 -0700 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.11) Gecko/20071128 SeaMonkey/1.1.7 MIME-Version: 1.0 To: John Baldwin References: <20080108030857.GA93021@steerpike.hanley.stade.co.uk> <200801072329.20557.jhb@freebsd.org> In-Reply-To: <200801072329.20557.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (pooker.samsco.org [168.103.85.57]); Tue, 08 Jan 2008 08:08:07 -0700 (MST) X-Spam-Status: No, score=-1.4 required=5.4 tests=ALL_TRUSTED autolearn=failed version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on pooker.samsco.org Cc: re@freebsd.org, freebsd-stable@freebsd.org Subject: Re: RELENG7 using lpt causes panic X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2008 15:08:12 -0000 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