diff --git a/docs/Config_Changes.md b/docs/Config_Changes.md index efe962d1..14c3b12b 100644 --- a/docs/Config_Changes.md +++ b/docs/Config_Changes.md @@ -8,6 +8,9 @@ All dates in this document are approximate. ## Changes +20230407: The `stalled_bytes` counter in the log and in the +`printer.mcu.last_stats` field has been renamed to `upcoming_bytes`. + 20230304: The `SET_TMC_CURRENT` command now properly adjusts the globalscaler register for drivers that have it. This removes a limitation where on tmc5160, the currents could not be raised higher with `SET_TMC_CURRENT` than the diff --git a/klippy/chelper/serialqueue.c b/klippy/chelper/serialqueue.c index 684710c1..b6500fe6 100644 --- a/klippy/chelper/serialqueue.c +++ b/klippy/chelper/serialqueue.c @@ -30,7 +30,7 @@ #include "serialqueue.h" // struct queue_message struct command_queue { - struct list_head stalled_queue, ready_queue; + struct list_head upcoming_queue, ready_queue; struct list_node node; }; @@ -59,7 +59,7 @@ struct serialqueue { double srtt, rttvar, rto; // Pending transmission message queues struct list_head pending_queues; - int ready_bytes, stalled_bytes, need_ack_bytes, last_ack_bytes; + int ready_bytes, upcoming_bytes, need_ack_bytes, last_ack_bytes; uint64_t need_kick_clock; struct list_head notify_queue; // Received messages @@ -458,7 +458,7 @@ build_and_send_command(struct serialqueue *sq, uint8_t *buf, int pending if (len + qm->len > MESSAGE_MAX - MESSAGE_TRAILER_SIZE) break; list_del(&qm->node); - if (list_empty(&cq->ready_queue) && list_empty(&cq->stalled_queue)) + if (list_empty(&cq->ready_queue) && list_empty(&cq->upcoming_queue)) list_del(&cq->node); memcpy(&buf[len], qm->msg, qm->len); len += qm->len; @@ -523,10 +523,10 @@ check_send_command(struct serialqueue *sq, int pending, double eventtime) uint64_t min_stalled_clock = MAX_CLOCK, min_ready_clock = MAX_CLOCK; struct command_queue *cq; list_for_each_entry(cq, &sq->pending_queues, node) { - // Move messages from the stalled_queue to the ready_queue - while (!list_empty(&cq->stalled_queue)) { + // Move messages from the upcoming_queue to the ready_queue + while (!list_empty(&cq->upcoming_queue)) { struct queue_message *qm = list_first_entry( - &cq->stalled_queue, struct queue_message, node); + &cq->upcoming_queue, struct queue_message, node); if (ack_clock < qm->min_clock) { if (qm->min_clock < min_stalled_clock) min_stalled_clock = qm->min_clock; @@ -534,7 +534,7 @@ check_send_command(struct serialqueue *sq, int pending, double eventtime) } list_del(&qm->node); list_add_tail(&qm->node, &cq->ready_queue); - sq->stalled_bytes -= qm->len; + sq->upcoming_bytes -= qm->len; sq->ready_bytes += qm->len; } // Update min_ready_clock @@ -714,7 +714,7 @@ serialqueue_free(struct serialqueue *sq) &sq->pending_queues, struct command_queue, node); list_del(&cq->node); message_queue_free(&cq->ready_queue); - message_queue_free(&cq->stalled_queue); + message_queue_free(&cq->upcoming_queue); } pthread_mutex_unlock(&sq->lock); pollreactor_free(sq->pr); @@ -728,7 +728,7 @@ serialqueue_alloc_commandqueue(void) struct command_queue *cq = malloc(sizeof(*cq)); memset(cq, 0, sizeof(*cq)); list_init(&cq->ready_queue); - list_init(&cq->stalled_queue); + list_init(&cq->upcoming_queue); return cq; } @@ -738,7 +738,7 @@ serialqueue_free_commandqueue(struct command_queue *cq) { if (!cq) return; - if (!list_empty(&cq->ready_queue) || !list_empty(&cq->stalled_queue)) { + if (!list_empty(&cq->ready_queue) || !list_empty(&cq->upcoming_queue)) { errorf("Memory leak! Can't free non-empty commandqueue"); return; } @@ -784,12 +784,12 @@ serialqueue_send_batch(struct serialqueue *sq, struct command_queue *cq return; qm = list_first_entry(msgs, struct queue_message, node); - // Add list to cq->stalled_queue + // Add list to cq->upcoming_queue pthread_mutex_lock(&sq->lock); - if (list_empty(&cq->ready_queue) && list_empty(&cq->stalled_queue)) + if (list_empty(&cq->ready_queue) && list_empty(&cq->upcoming_queue)) list_add_tail(&cq->node, &sq->pending_queues); - list_join_tail(msgs, &cq->stalled_queue); - sq->stalled_bytes += len; + list_join_tail(msgs, &cq->upcoming_queue); + sq->upcoming_bytes += len; int mustwake = 0; if (qm->min_clock < sq->need_kick_clock) { sq->need_kick_clock = 0; @@ -925,13 +925,13 @@ serialqueue_get_stats(struct serialqueue *sq, char *buf, int len) " bytes_retransmit=%u bytes_invalid=%u" " send_seq=%u receive_seq=%u retransmit_seq=%u" " srtt=%.3f rttvar=%.3f rto=%.3f" - " ready_bytes=%u stalled_bytes=%u" + " ready_bytes=%u upcoming_bytes=%u" , stats.bytes_write, stats.bytes_read , stats.bytes_retransmit, stats.bytes_invalid , (int)stats.send_seq, (int)stats.receive_seq , (int)stats.retransmit_seq , stats.srtt, stats.rttvar, stats.rto - , stats.ready_bytes, stats.stalled_bytes); + , stats.ready_bytes, stats.upcoming_bytes); } // Extract old messages stored in the debug queues