)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8093cefaf884183c11a9df9037d6859e0b2dc216","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"27dc1efe_e9fd1a9f","updated":"2025-11-02 10:28:07.000000000","message":"Thanks for the series.\nI\u0027m not working on RTT, so I only run a simple code review, nothing about functionality.\nShould this functionality be added in the documentation?\nWhat happen if a user reaches the timeout and he wants to retry? Any command sequence that allows restarting the search? Or is he forced to quit and restart OpenOCD?","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"c78757c636d95520142b0f02c6accce375418df8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"97221bcc_7e15e36b","in_reply_to":"27dc1efe_e9fd1a9f","updated":"2025-11-02 20:15:34.000000000","message":"Hi Antonio, thanks for your review, and for your suggestions below.\nYes, this new option should be added to the documentation. If there is interest in this, I will gladly add a setting for the timeout value too.\n\nIf the timeout is reached, the user can simply repeat the \"rtt start\" command. It should in principle be the same as if a regular (non-retrying) rtt start is attempted and fails.\n\nCan you please suggest a reviewer involved in RTT? I would be happy to discuss the concept, implementation, and also naming. E.g. maybe the start_retry_interval can later be used for automatic reconnecting, so we should just call it retry_interval.","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"cc81c0eb666c0d023f876a126c279ec41bd26354","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"eeb4560d_6244e6fe","in_reply_to":"97221bcc_7e15e36b","updated":"2025-11-02 21:24:42.000000000","message":"I now added a setting for the timeout value too.","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"}],"src/rtt/rtt.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8093cefaf884183c11a9df9037d6859e0b2dc216","unresolved":true,"context_lines":[{"line_number":131,"context_line":"\treturn ERROR_OK;"},{"line_number":132,"context_line":"}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"#define RTT_SEARCH_TIMEOUT 10.0f"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"int rtt_start(void)"},{"line_number":137,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ced13286_66bd9686","line":134,"updated":"2025-11-02 10:28:07.000000000","message":"I prefer you use timeval_ms() for these timed operations\nHere define the timeout in ms, using an explicit suffix:\n`#define RTT_SEARCH_TIMEOUT_MS 10000`","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"cc81c0eb666c0d023f876a126c279ec41bd26354","unresolved":false,"context_lines":[{"line_number":131,"context_line":"\treturn ERROR_OK;"},{"line_number":132,"context_line":"}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"#define RTT_SEARCH_TIMEOUT 10.0f"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"int rtt_start(void)"},{"line_number":137,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"92612f9a_88008c94","line":134,"in_reply_to":"16476627_fa3a2f50","updated":"2025-11-02 21:24:42.000000000","message":"Done","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"c78757c636d95520142b0f02c6accce375418df8","unresolved":true,"context_lines":[{"line_number":131,"context_line":"\treturn ERROR_OK;"},{"line_number":132,"context_line":"}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"#define RTT_SEARCH_TIMEOUT 10.0f"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"int rtt_start(void)"},{"line_number":137,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"16476627_fa3a2f50","line":134,"in_reply_to":"ced13286_66bd9686","updated":"2025-11-02 20:15:34.000000000","message":"I saw different options in time_support.h but didn\u0027t get much indication of which functions are preferred for what usages. I picked the duration interface because it seemed straightforward, but your timeval suggestions are equally easy. But I can understand if duration is mainly oriented towards benchmarking. Should we maybe add some comments about this in the time_support.h inline documentation? Or is it already documented somewhere else?","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8093cefaf884183c11a9df9037d6859e0b2dc216","unresolved":true,"context_lines":[{"line_number":138,"context_line":"\tint ret;"},{"line_number":139,"context_line":"\ttarget_addr_t addr \u003d rtt.addr;"},{"line_number":140,"context_line":"\tstatic bool running_search;"},{"line_number":141,"context_line":"\tstatic struct duration search_time;"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"\tif (rtt.started)"},{"line_number":144,"context_line":"\t\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"2420a5ee_604d155f","line":141,"updated":"2025-11-02 10:28:07.000000000","message":"`int64_t search_time_limit;`\nor `search_timeout`","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"c78757c636d95520142b0f02c6accce375418df8","unresolved":true,"context_lines":[{"line_number":138,"context_line":"\tint ret;"},{"line_number":139,"context_line":"\ttarget_addr_t addr \u003d rtt.addr;"},{"line_number":140,"context_line":"\tstatic bool running_search;"},{"line_number":141,"context_line":"\tstatic struct duration search_time;"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"\tif (rtt.started)"},{"line_number":144,"context_line":"\t\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"603132cb_4a9e0686","line":141,"in_reply_to":"2420a5ee_604d155f","updated":"2025-11-02 20:15:34.000000000","message":"search_timeout looks fine to me, thanks.","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"cc81c0eb666c0d023f876a126c279ec41bd26354","unresolved":false,"context_lines":[{"line_number":138,"context_line":"\tint ret;"},{"line_number":139,"context_line":"\ttarget_addr_t addr \u003d rtt.addr;"},{"line_number":140,"context_line":"\tstatic bool running_search;"},{"line_number":141,"context_line":"\tstatic struct duration search_time;"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"\tif (rtt.started)"},{"line_number":144,"context_line":"\t\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ca957112_98a1335d","line":141,"in_reply_to":"603132cb_4a9e0686","updated":"2025-11-02 21:24:42.000000000","message":"Done","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8093cefaf884183c11a9df9037d6859e0b2dc216","unresolved":true,"context_lines":[{"line_number":146,"context_line":"\tif (!rtt.found_cb || rtt.changed) {"},{"line_number":147,"context_line":"\t\tif (!running_search) {"},{"line_number":148,"context_line":"\t\t\tLOG_INFO(\"rtt: Searching for control block \u0027%s\u0027\", rtt.id);"},{"line_number":149,"context_line":"\t\t\tduration_start(\u0026search_time);"},{"line_number":150,"context_line":"\t\t}"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"\t\trtt.source.find_cb(rtt.target, \u0026addr, rtt.size, rtt.id,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a3f6410f_019940eb","line":149,"updated":"2025-11-02 10:28:07.000000000","message":"`search_time_limit \u003d timeval_ms() + RTT_SEARCH_TIMEOUT_MS;`","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"cc81c0eb666c0d023f876a126c279ec41bd26354","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\tif (!rtt.found_cb || rtt.changed) {"},{"line_number":147,"context_line":"\t\tif (!running_search) {"},{"line_number":148,"context_line":"\t\t\tLOG_INFO(\"rtt: Searching for control block \u0027%s\u0027\", rtt.id);"},{"line_number":149,"context_line":"\t\t\tduration_start(\u0026search_time);"},{"line_number":150,"context_line":"\t\t}"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"\t\trtt.source.find_cb(rtt.target, \u0026addr, rtt.size, rtt.id,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"f43fe35e_733d3323","line":149,"in_reply_to":"a3f6410f_019940eb","updated":"2025-11-02 21:24:42.000000000","message":"Done","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8093cefaf884183c11a9df9037d6859e0b2dc216","unresolved":true,"context_lines":[{"line_number":163,"context_line":"\t\t\tif (rtt.start_retry_interval) {"},{"line_number":164,"context_line":"\t\t\t\tduration_measure(\u0026search_time);"},{"line_number":165,"context_line":"\t\t\t\tfloat elapsed \u003d duration_elapsed(\u0026search_time);"},{"line_number":166,"context_line":"\t\t\t\tif (elapsed \u003e RTT_SEARCH_TIMEOUT) {"},{"line_number":167,"context_line":"\t\t\t\t\tLOG_ERROR(\"rtt: No control block found, timed out\");"},{"line_number":168,"context_line":"\t\t\t\t\trunning_search \u003d false;"},{"line_number":169,"context_line":"\t\t\t\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3b4f6435_9525323e","line":166,"updated":"2025-11-02 10:28:07.000000000","message":"`if (timeval_ms() \u003e search_time_limit) {`","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"},{"author":{"_account_id":1002457,"name":"Tormod Volden","email":"debian.tormod@gmail.com","username":"tormod"},"change_message_id":"cc81c0eb666c0d023f876a126c279ec41bd26354","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\t\t\tif (rtt.start_retry_interval) {"},{"line_number":164,"context_line":"\t\t\t\tduration_measure(\u0026search_time);"},{"line_number":165,"context_line":"\t\t\t\tfloat elapsed \u003d duration_elapsed(\u0026search_time);"},{"line_number":166,"context_line":"\t\t\t\tif (elapsed \u003e RTT_SEARCH_TIMEOUT) {"},{"line_number":167,"context_line":"\t\t\t\t\tLOG_ERROR(\"rtt: No control block found, timed out\");"},{"line_number":168,"context_line":"\t\t\t\t\trunning_search \u003d false;"},{"line_number":169,"context_line":"\t\t\t\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"13c99ccc_a807501c","line":166,"in_reply_to":"3b4f6435_9525323e","updated":"2025-11-02 21:24:42.000000000","message":"Done","commit_id":"e6abf5a1a1a3bf5c3bc36764c0dd8f53bfe9f019"}]}
