Lines Matching full:consumer
47 * The thread that is writing the hardware descriptors is the consumer and it
48 * runs with the consumer lock held. A producer becomes the consumer if there
49 * isn't one already. The consumer runs with the flags sets to BUSY and
52 * TOO_BUSY consumer will become the new consumer by setting flags to
53 * TAKING_OVER. The original consumer stops and sets the flags back to BUSY for
54 * the new consumer.
75 BUSY, /* consumer is running already, or will be shortly. */
76 TOO_BUSY, /* consumer is running and is beyond its budget */
77 TAKING_OVER, /* new consumer taking over from a TOO_BUSY consumer */
78 STALLED, /* consumer stopped due to lack of resources. */
111 * Consumer. Called with the consumer lock held and a guarantee that there is
284 for (i = 0; i < nitems(r->consumer); i++) {
285 if ((r->consumer[i] = counter_u64_alloc(flags)) == NULL)
317 for (i = 0; i < nitems(r->consumer); i++) {
318 if (r->consumer[i] != NULL)
319 counter_u64_free(r->consumer[i]);
348 bool consumer;
414 counter_u64_add(r->consumer[C_FAST], 1);
445 consumer = false;
451 consumer = true;
458 if (consumer)
465 MPASS(cons > C_FAST && cons < nitems(r->consumer));
466 counter_u64_add(r->consumer[cons], 1);
587 for (i = 0; i < nitems(r->consumer); i++)
588 counter_u64_zero(r->consumer[i]);
627 CTLFLAG_RD, &r->consumer[C_FAST],
628 "# of times producer became consumer (fast)");
630 CTLFLAG_RD, &r->consumer[C_2],
631 "# of times producer became consumer (2)");
633 CTLFLAG_RD, &r->consumer[C_3],
634 "# of times producer became consumer (3)");
636 CTLFLAG_RD, &r->consumer[C_TAKEOVER],
637 "# of times producer took over from another consumer.");
640 "# of times producer did not become consumer");
642 CTLFLAG_RD, &r->abdications, "# of consumer abdications");
644 CTLFLAG_RD, &r->stalls, "# of consumer stalls");
647 "# of times consumer ran fully to completion");
650 "# of times consumer idled when another enqueue was in progress");