Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 May 2013 12:29:19 +0000
From:      Orit Moskovich <oritm@mellanox.com>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, "freebsd-hackers@freebsd.org" <freebsd-hackers@FreeBSD.org>
Subject:   RE: preemptive kernel
Message-ID:  <981733489AB3BD4DB24B48340F53E0A55B0D59A0@MTLDAG01.mtl.com>
In-Reply-To: <51A34EEA.9050609@FreeBSD.org>
References:  <981733489AB3BD4DB24B48340F53E0A55B0D5590@MTLDAG01.mtl.com> <20130526154752.GT3047@kib.kiev.ua> <981733489AB3BD4DB24B48340F53E0A55B0D56E0@MTLDAG01.mtl.com> <20130527063432.GY3047@kib.kiev.ua> <51A306A8.1010201@FreeBSD.org> <981733489AB3BD4DB24B48340F53E0A55B0D57D1@MTLDAG01.mtl.com> <51A34EEA.9050609@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
>From what I've read in subr_taskqueue.c taskqueue_swi, taskqueue_swi_giant =
and taskqueue_fast are all implemented using swi_add which calls ithread_cr=
eate().
Is there any performance difference between them. Is one of the above or it=
hread given to bus_setup_intr preferable on the other?

-----Original Message-----
From: Andriy Gapon [mailto:avg@FreeBSD.org]=20
Sent: Monday, May 27, 2013 03:18 PM
To: Orit Moskovich
Cc: Konstantin Belousov; freebsd-hackers@freebsd.org
Subject: Re: preemptive kernel

on 27/05/2013 10:21 Orit Moskovich said the following:
> What is actually the difference between deferring a filter routine's work=
 using an ithread given to bus_setup_intr, or using the global taskqueue_sw=
i (implemented using interrupt thread)?

I think you mean taskqueue_fast.
The difference is only in how much code you need to write.  I do not think =
there is any significant difference in the resulting functionality.

> What do you mean that the functionality is locked under INTR_FILTER?

Please see the code.  You have to use option INTR_FILTER to get the behavio=
r I described earlier.

> -----Original Message-----
> From: Andriy Gapon [mailto:avg@FreeBSD.org]
> Sent: Monday, May 27, 2013 10:11 AM
> To: Konstantin Belousov
> Cc: Orit Moskovich; freebsd-hackers@freebsd.org
> Subject: Re: preemptive kernel
>=20
> 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.
>> But again, this is very unusual setup.
>=20
> I wouldn't call it weird, but, yes, it is rare.  It's a pretty normal con=
figuration when the filter acts as a filter and the handler acts as a handl=
er (in ithread).  In other words, it would be a replacement for a configura=
tion where a filter is used and the filter offloads actual work to non-inte=
rrupt context via a e.g. taskqueue.
> But, hmm, this functionality is probably locked under INTR_FILTER option.
>=20
> --
> Andriy Gapon
>=20

--
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?981733489AB3BD4DB24B48340F53E0A55B0D59A0>