Previously when I asked this question it turned out to not be as
necessary as I thought. However, I now need a way to pin/bind a
user-space thread to a processor until I'm done with it as my
timing constraints are too tight to account for.
I checked sys/sched.h, sys/proc.h, pthread.h, and pthread_np.h but
it doesn't look like an API to do this was added in 6.2.
Can someone point me at a way to hack this in? I'm working on a
conference submission and I unfortunately need to pin in
user-space as abusing non-preemptive kernel threads is not
sufficient for my task.
The plan is to have 1-3 threads pinned through the execution of
the test (30s - 10min, maybe more) but to leave a cpu untouched
so that normal system function can continue on it.
When pinning I'd also like to be able to pin to specific processors
so I account for the effects placement of different dies, important
for my work on dual-processor dual-core AMD systems where IO is
routed via hypertransport through the first processor.
For those who are interested, this work is focused on building
pipeline-parallel systems that overlap sequential work by
streaming data through a sequence of processors. One app that
I've built with it is to support GigE forwarding at the maximum
rate for all frame sizes through user-space.
When this work is complete it may be able to help Daniel O'Connor
and his question about streaming data from the kernel to userland
(1/18/07).
Additional information and papers are available at
http://www.cs.colorado.edu/~jgiacomo
thanks for any help!
John G
On Sep 8, 2006, at 6:33 PM, David Xu wrote:
On Saturday 09 September 2006 04:18, John Giacomoni wrote:
Is it possible to bind a pthread to a processor in 5.5 or 6.1?
I currently have a code base that uses libpthread with multiple
threads, mutexes and condition variables.
The problem I'm having is that I seem to be suffering wall-clock
timing aberrations that I believe are introduced by the scheduler.
Thanks,
John G
--
[EMAIL PROTECTED]
University of Colorado at Boulder
Department of Computer Science
Engineering Center, ECCR 1B50
430 UCB
Boulder, CO 80303-0430
USA
I don't think we have such API allowing you to bind a thread to
a specific CPU, I had implemented such an API for DragonFlyBSD, but
its 1:1 threading is not mature yet.
David Xu
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-
[EMAIL PROTECTED]"
--
[EMAIL PROTECTED]
University of Colorado at Boulder
Department of Computer Science
Engineering Center, ECCR 1B50
430 UCB
Boulder, CO 80303-0430
USA
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"