From owner-freebsd-hackers@FreeBSD.ORG Mon May 27 07:24:07 2013 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id AF8D1733; Mon, 27 May 2013 07:24:07 +0000 (UTC) (envelope-from oritm@mellanox.com) Received: from eu1sys200aog108.obsmtp.com (eu1sys200aog108.obsmtp.com [207.126.144.125]) by mx1.freebsd.org (Postfix) with ESMTP id 7B26E901; Mon, 27 May 2013 07:24:05 +0000 (UTC) Received: from MTLCAS02.mtl.com ([193.47.165.155]) (using TLSv1) by eu1sys200aob108.postini.com ([207.126.147.11]) with SMTP ID DSNKUaMKET/kK4Lr0bQ5DnYmy8SVhHGQFg7j@postini.com; Mon, 27 May 2013 07:24:06 UTC Received: from MTLDAG01.mtl.com ([10.0.8.75]) by MTLCAS02.mtl.com ([10.0.8.72]) with mapi id 14.03.0123.003; Mon, 27 May 2013 10:21:15 +0300 From: Orit Moskovich To: Andriy Gapon , Konstantin Belousov Subject: RE: preemptive kernel Thread-Topic: preemptive kernel Thread-Index: AQHOWihm0YFG89T8IkWOFRvrz7kZiJkYcsLw///vIACAAAnDAIAANDrg Date: Mon, 27 May 2013 07:21:15 +0000 Message-ID: <981733489AB3BD4DB24B48340F53E0A55B0D57D1@MTLDAG01.mtl.com> References: <981733489AB3BD4DB24B48340F53E0A55B0D5590@MTLDAG01.mtl.com> <20130526154752.GT3047@kib.kiev.ua> <981733489AB3BD4DB24B48340F53E0A55B0D56E0@MTLDAG01.mtl.com> <20130527063432.GY3047@kib.kiev.ua> <51A306A8.1010201@FreeBSD.org> In-Reply-To: <51A306A8.1010201@FreeBSD.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.0.13.1] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "freebsd-hackers@freebsd.org" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 May 2013 07:24:07 -0000 What is actually the difference between deferring a filter routine's work u= sing an ithread given to bus_setup_intr, or using the global taskqueue_swi = (implemented using interrupt thread)? What do you mean that the functionality is locked under INTR_FILTER? -----Original Message----- From: Andriy Gapon [mailto:avg@FreeBSD.org]=20 Sent: Monday, May 27, 2013 10:11 AM To: Konstantin Belousov Cc: Orit Moskovich; freebsd-hackers@freebsd.org Subject: Re: preemptive kernel on 27/05/2013 09:34 Konstantin Belousov said the following: > Having both filter and ithread for the same interrupt is apparently=20 > possible but weird. I do not see anything which would prevent=20 > interrupt filter from being executed while the ithread is running. =20 > But again, this is very unusual setup. I wouldn't call it weird, but, yes, it is rare. It's a pretty normal confi= guration when the filter acts as a filter and the handler acts as a handler= (in ithread). In other words, it would be a replacement for a configurati= on where a filter is used and the filter offloads actual work to non-interr= upt context via a e.g. taskqueue. But, hmm, this functionality is probably locked under INTR_FILTER option. -- Andriy Gapon