Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 May 2000 08:11:00 -0600
From:      Chuck Paterson <cp@bsdi.com>
To:        Doug Rabson <dfr@nlsystems.com>
Cc:        arch@freebsd.org
Subject:   Re: A new api for asynchronous task execution 
Message-ID:  <200005141411.IAA04077@berserker.bsdi.com>

next in thread | raw e-mail | index | archive | help
Doug,

	First, in continuing this thread I'm most trying
to make sure I have managed to get my point across, not
necessarily convince you that you really need to make
a change now.



	Sorry, but I'm not sure I'm parsing what you said
correctly. I believe that you are saying that the line two
lines I added will actually be in taskqueue_enqueue.

}> 	if (queue == taskqueue_swi) 			<------
}> 		setsoftaskqueue();			<------
}
}For taskqueue_swi, this is exactly what happens in the call to
}queue->enqueue(queue) above.
}

Then in a kernel which as more software threads you will soon have
the following which as far as I can tell won't be optimized out
even if if taskqueue_enqueue() is implemented as a macro:

 	if (queue == taskqueue_swi) 
 		setsoftaskqueue()
 	if (queue == taskqueue_foo)
 		setsoftaskfoo()
 	if (queue == taskqueue_bar)
 		setsoftaskbar()
 	if (queue == taskqueue_xxx)
 		setsoftaskxxx()


	This can be avoided by having a macro pre-defined
for these uses for now which would only be

#define TASKQUEUE(task, flag)	/* flag ignored for now*	\
	taskqueue_enqueue(taskqueue_swi, task);			\
	setsofttaskqueueu()

	

The macro name TASKQUEUE may well be inappropriate.

Chuck


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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