Lines Matching refs:queue

159  * queue servicing may be blocked waiting for a syncq which may be also
174 static struct queue *qhead;
175 static struct queue *qtail;
330 /* Global esballoc throttling queue */
339 /* Scale the system_esbq length by setting number of CPUs per queue. */
345 int esbq_max_qlen = 0x16; /* throttled queue length */
346 clock_t esbq_timeout = 0x8; /* timeout to process esb queue */
464 * Put a queue on the syncq list of queues.
471 /* The queue should not be linked anywhere */ \
483 * Sanity check of priority field: empty queue should \
499 * Put this queue in priority order: higher \
526 * Remove a queue from the syncq list
535 /* Check that the queue is actually in the list */ \
540 /* First queue on list, make head q_sqnext */ \
547 /* Last queue on list, make tail sqprev */ \
553 /* clear out references on this queue */ \
574 * Put a message on the queue syncq.
681 * Constructor/destructor routines for the queue cache
1111 * qp is a read queue; the new queue goes in so its next
1112 * read ptr is the argument, and the write queue corresponding
1113 * to the argument points to this queue. Return 0 on success,
1183 * to the correct queue and use it for insertion. Everything should
1195 * the open procedure. Bump up the reference count on the queue.
1308 /* release any fmodsw_impl_t structure held on behalf of the queue */
1348 * Remove queue from qhead/qtail if it is enabled.
1349 * Only reset QENAB if the queue was removed from the runlist.
1350 * A queue goes through 3 stages:
1356 * queue.
1382 * to not find the queue on the runlist but for it to be QENABLED
1401 * Wait till the syncqs associated with the queue disappear from the
1406 * If for PERMOD perimeters queue was on the syncq list, removeq()
1408 * functions remove the queue from its syncq list, so sqthread will not
1409 * try to access the queue.
1510 * Allocate a linkinfo entry given the write queue of the
1511 * bottom module of the top stream and the write queue of the
1668 * Given a queue ptr, follow the chain of q_next pointers until you reach the
1669 * last queue on the chain and return it.
1707 * Wait while there are any messages for the queue in its syncq.
1816 * and cleared in the end of mlink when passthru queue is removed.
1818 * queue is in-place (it is not a proper module and doesn't have open
1825 * nothing may come from below since the pass queue syncq is blocked.
1828 * head (e.g. because of message propagation from the pass queue) stream
1849 * Add passthru queue below lower mux. This will block
1850 * syncqs of lower muxs read queue during I_LINK/I_UNLINK.
1895 * XXX Remove any "odd" messages from the queue.
1906 * Restore the stream head queue and then remove
1996 * sitting on it's queue before ACKing the UNLINK. It is the responsibility
2001 * re-block the read side of the pass queue here). If the mux does not
2005 * the message arrived and when the read side of the pass queue was
2032 * Add passthru queue below lower mux. This will block
2033 * syncqs of lower muxs read queue during I_LINK/I_UNLINK.
2097 * send down to this queue. We should do it now as we're going to block
2119 * that no data is flowing up into this queue
2130 * queue though the unlink is over (Ex. some instance
2132 * accessed this queue. And also putq(lowerq) ?).
2133 * Solution : How about blocking the l_qtop queue ?
2163 * this queue. Let the exclusive holder
2197 * Nobody else should know about this queue now.
2206 * Convert the mux lower queue into a stream head queue.
2220 * try to call non-existent pass queue open routine and panic.
2483 * on the queue.
3127 * have the caller check the read queue before checking for errors.
3424 * done on the queue and all associated queues and syncqs.
3434 * in order to backenable any downstream queue before we go away.
3628 * Actually run queue's service routine.
3794 * If the syncq is placed on the sqhead/sqtail queue, try to remove it from the
3909 * Note: fifo_close() depends on the mblk_t on the queue being freed
3912 * messages referring to other file pointers on the queue. Then when
3918 * the esb queue does not match the new CPU, that is OK.
3956 /* queue the new mblk on the esballoc queue */
4071 * queue. Use static system_esbq until kmem_ready and we can
4086 * Set the QBACK or QB_BACK flag in the given queue for
4206 * Backenable the first queue upstream from `q' with a service procedure.
4216 * have a claim on the queue (some drivers do a getq on somebody
4217 * else's queue - they know that the queue itself is not going away
4222 /* Find nearest back queue with service proc */
4437 * are no stale references to the queue pair (and syncq) that
4440 * If there are stale references to the queue that is closing it can
4451 * esballoc free functions do not refer to a queue that has closed.
4458 * the closing queue and also ensuring that there are no threads in
4459 * the multiplexor that has picked up a queue pointer but not yet
4467 * it can not reference q_next of a different queue e.g. in a mux that
4468 * passes messages from one queues put/service procedure to another queue.
4479 * - Messages on a syncq that have a reference to the queue through b_queue.
4481 * queue through b_queue.
4482 * - Threads that use q_nfsrv (e.g. canput) to find a queue.
4487 * enter the put or service routines for the closing read or write-side queue.
4496 * get called when the queue is closing.
4742 * canput(rq->q_next) would never get a closed/freed queue pointer even if we
4819 * Given a read queue, unlink it from any neighbors.
4823 * stale references (e.g. through q_next) to the queue that
4833 * The set of locks needed to remove the queue is different in
5000 * sync queue and waits until sq_count reaches maxcnt.
5017 * queue which also refers to this "shared" syncq.
5018 * SQ_BLOCKED will be set if there is "off" queue which also
5201 * Assumes the passed queue is a _RD(q).
5209 * start with the current queue/qpair
5347 * Enter a queue.
5390 * Increment ref count to keep closes out of this queue.
5968 * not be done without blocking then queue the callback to be done
5972 * asynchronous callback routines that have properly entered the queue (with
5995 * callbacks, then queue this callback for later processing.
5997 * Also queue the qwriter for an interrupt thread in order
6066 * so that other qwriter(OUTER) calls will queue their
6130 * Drop the message if the queue is closing.
6131 * Make sure that the queue is "claimed" when the callback
6152 * by destination queue. These destination queues are doubly
6154 * put on the queue referenced by the q_sqhead/q_sqtail elements.
6208 * Messages from the event queue must be taken off in
6367 * writer call for CIPUT sync queue, but this is handled in sq_run_events.
6519 * Find the queue that is not draining.
6539 * We have a queue to work on, and we hold the
6544 * this queue from the sq_head list when it is
6554 /* The queue is drained */
6569 * going to drain that queue. However, this should be due to
6573 * pointer to the "draining" queue, but it is difficult to do when
6575 * possibility is to yank the queue out of the sq list and put it onto
6687 * this queue. If so, we are done, just return.
6700 /* Tell other threads that we are draining this queue */
6705 * the case where an empty queue was enqueued onto the syncq.
6733 * Since we are in qdrain_syncq, we already know the queue,
6776 * queue if this is the last message destined for that queue.
6802 * We should either have no messages on this queue, or we were told to
6820 * Since the queue is removed from the list, reset its priority.
6827 * that there is a thread currently draining the messages for a queue.
6828 * Since we are now done with this queue (even if there may be messages
6846 * the queue instead of draining. Since the message is destined for the queue
6848 * message is intended for the put routine for the queue. For debug kernels,
6874 * to trace the queue that the message is intended for. Note
6875 * that the original use was to identify the queue and function
6877 * of the queue that we are draining, so call it's putproc and
6895 * And queue on syncq for scheduling, if not already queued.
6938 * a queue (qp != NULL).
6961 * events listed for this queue. All events for this queue
7005 * Yank the messages as a list off the queue
7028 * Now remove the queue from the syncq.
7081 * with the specified queue. If the queue is attached to a driver or if the
7087 * NOTE : If the queue is attached to a driver, all the messages are freed
7119 * queue syncq or because on events on the queue syncq. Do actual
7166 * Attach list of messages to the end of the new queue (if there
7180 * When messages are moved from high priority queue to
7181 * another queue, the destination queue priority is
7197 * events listed for this queue. All events for this queue
7247 * asynchronous callback routines that have properly entered the queue (with
7531 * Set QFULL in next service procedure queue (that cares) if not already
7536 * The fq here is the next queue with a service procedure. This is where
7581 * If queue is empty i.e q_mblkcnt is zero, queue can not be full.
7614 * Called at insert-time to cache a queue's next forward service procedure in
7615 * q_nfsrv; used by canput() and canputnext(). If the queue to be inserted
7616 * has a service procedure then q_nfsrv points to itself. If the queue to be
7618 * queue forward that has a service procedure. If the queue is at the logical
7624 queue_t *rnew, /* read queue pointer to new module */
7625 queue_t *wnew, /* write queue pointer to new module */
7626 queue_t *prev_rq, /* read queue pointer to the module above */
7627 queue_t *prev_wq) /* write queue pointer to the module above */
7658 * is WRONG; the next queue forward from wnew with a
7660 * Since the downstream queue (which in the case of a fifo
7661 * is the read queue rnew) can affect upstream queues, it
7671 * q_next could be a read queue.
7744 * the stream head cached struio() rd/wr queue pointers. Note must be called
7748 * an explicit synchronous barrier module queue. That is, a queue that
7765 * Scan the write queue(s) while synchronous
7784 * Scan the read queue(s) while synchronous
7806 * messages can arrive at muxs lower read queue, before
7822 * Create a new queue and block it and then insert it
7831 * After the new queue is inserted, all messages coming from below are
7833 * read queue syncq is stopped (sq_count drops to zero).
7923 * queue and the marked urgent data is traveling up the stream.
7927 * The stream head read queue becoming non-empty (including an EOF).
8156 /* Used within framework when the queue is already locked */
8168 * Do not place on run queue if already enabled or closing.
8174 * mark queue enabled and place on run list if it is not already being
8187 * Put the queue in the stp list and schedule it for background
8219 * Task queue failed so fail over to the backup
8237 * Append the queue to qhead/qtail list.
8245 * Clear stp queue list.
8250 * Wakeup background queue processing thread.
8263 * The queue in the list should have
8266 * set when the queue is dequeued and
8268 * queue with QINSERVICE set.
8344 * Background processing of the stream queue list.
8362 * Foreground processing of the stream queue list.
8372 * We are going to drain this stream queue list, so qenable_locked will