Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 May 2013 08:08:12 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Orit Moskovich <oritm@mellanox.com>
Cc:        "freebsd-drivers@freebsd.org" <freebsd-drivers@freebsd.org>
Subject:   Re: taskqueues
Message-ID:  <201305300808.12692.jhb@freebsd.org>
In-Reply-To: <981733489AB3BD4DB24B48340F53E0A55B0D6417@MTLDAG01.mtl.com>
References:  <981733489AB3BD4DB24B48340F53E0A55B0D5206@MTLDAG01.mtl.com> <201305291156.29230.jhb@freebsd.org> <981733489AB3BD4DB24B48340F53E0A55B0D6417@MTLDAG01.mtl.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, May 30, 2013 2:04:48 am Orit Moskovich wrote:
> Also, is it possible to set affinity of a task in a taskqueue? From what I 
understood, each interrupt thread handling taskqueues and the ithread of the 
bus_setup_intr is a single thread, not one per cpu.

Correct.

> What possibilities I have if I need to defer work from a filter routine to 
multiple tasks, and schedule them to work on a specific core?

Currently there is no pre-built API to give you per-CPU work queues.  However,
you could create a taskqueue for each CPU (and schedule an initial task that
calls sched_bind() to bind the associated thread to a specific CPU) and then 
you could schedule a task for a specific CPU by scheduling it on the taskqueue 
for a specific CPU.

-- 
John Baldwin



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