From owner-freebsd-net@FreeBSD.ORG Sat Oct 1 13:15:35 2005 Return-Path: X-Original-To: net@FreeBSD.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B356616A421; Sat, 1 Oct 2005 13:15:35 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailout1.pacific.net.au (mailout1.pacific.net.au [61.8.0.84]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08ABD43D49; Sat, 1 Oct 2005 13:15:34 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.0.86]) by mailout1.pacific.net.au (8.13.4/8.13.4/Debian-3) with ESMTP id j91DFXgZ005575; Sat, 1 Oct 2005 23:15:33 +1000 Received: from epsplex.bde.org (katana.zip.com.au [61.8.7.246]) by mailproxy1.pacific.net.au (8.13.4/8.13.4/Debian-3) with ESMTP id j91DFWm5007952; Sat, 1 Oct 2005 23:15:32 +1000 Date: Sat, 1 Oct 2005 23:15:32 +1000 (EST) From: Bruce Evans X-X-Sender: bde@epsplex.bde.org To: Gleb Smirnoff In-Reply-To: <20050930124000.GA45345@cell.sick.ru> Message-ID: <20051001221058.G1493@epsplex.bde.org> References: <20050930124000.GA45345@cell.sick.ru> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: net@FreeBSD.org Subject: Re: [REVIEW/TEST] polling(4) changes X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Oct 2005 13:15:35 -0000 On Fri, 30 Sep 2005, Gleb Smirnoff wrote: > The attached patch removes: > ... > - poll in trap feature. Sorry, we can't acquire mutexes in trap(). Anyone > used it, anyway? This is the most broken part of DEVICE_POLLING (which I consider to be mostly broken). Hopefully no one used it. Poll in trap even polled in debugger traps, so userland could invoke polling by debugging any program, and ether_poll() was reentered if it was debugged (in RELENG_4, there is no relevant locking so ether_poll() then just raced itself; in old versions of -current I think Giant locking allowed the same since Giant is recursive; in -current I think this causes deadlock since poll_mtx is not recursive). > The attached patch touches only em(4) and fxp(4). I will write patches for all > other drivers ASAP. But I don't have all the hardware, so if you are using polling(4) > and you run FreeBSD 6 or 7, please help me with testing. ATM only em(4) driver patch > is tested. While you are there, please fix the configuration so that DEVICE_POLLING is a normal option. It is very far from being a global option. Bruce