]>
Commit | Line | Data |
---|---|---|
d0fb9657 | 1 | # See docs/devel/tracing.rst for syntax documentation. |
b54ca48e | 2 | |
500016e5 | 3 | # ../block.c |
db73ee4b | 4 | bdrv_open_common(void *bs, const char *filename, int flags, const char *format_name) "bs %p filename \"%s\" flags 0x%x format_name \"%s\"" |
b54ca48e DB |
5 | bdrv_lock_medium(void *bs, bool locked) "bs %p locked %d" |
6 | ||
500016e5 | 7 | # block-backend.c |
95479077 | 8 | blk_co_preadv(void *blk, void *bs, int64_t offset, int64_t bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %" PRId64 " flags 0x%x" |
34460feb | 9 | blk_co_pwritev(void *blk, void *bs, int64_t offset, int64_t bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %" PRId64 " flags 0x%x" |
d03654ea SH |
10 | blk_root_attach(void *child, void *blk, void *bs) "child %p blk %p bs %p" |
11 | blk_root_detach(void *child, void *blk, void *bs) "child %p blk %p bs %p" | |
b54ca48e | 12 | |
500016e5 | 13 | # io.c |
37e9403e VSO |
14 | bdrv_co_preadv_part(void *bs, int64_t offset, int64_t bytes, unsigned int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x" |
15 | bdrv_co_pwritev_part(void *bs, int64_t offset, int64_t bytes, unsigned int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x" | |
e9e52efd | 16 | bdrv_co_pwrite_zeroes(void *bs, int64_t offset, int64_t bytes, int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x" |
9df5afbd | 17 | bdrv_co_do_copy_on_readv(void *bs, int64_t offset, int64_t bytes, int64_t cluster_offset, int64_t cluster_bytes) "bs %p offset %" PRId64 " bytes %" PRId64 " cluster_offset %" PRId64 " cluster_bytes %" PRId64 |
a5215b8f VSO |
18 | bdrv_co_copy_range_from(void *src, int64_t src_offset, void *dst, int64_t dst_offset, int64_t bytes, int read_flags, int write_flags) "src %p offset %" PRId64 " dst %p offset %" PRId64 " bytes %" PRId64 " rw flags 0x%x 0x%x" |
19 | bdrv_co_copy_range_to(void *src, int64_t src_offset, void *dst, int64_t dst_offset, int64_t bytes, int read_flags, int write_flags) "src %p offset %" PRId64 " dst %p offset %" PRId64 " bytes %" PRId64 " rw flags 0x%x 0x%x" | |
b54ca48e | 20 | |
500016e5 | 21 | # stream.c |
5cb1a49e | 22 | stream_one_iteration(void *s, int64_t offset, uint64_t bytes, int is_allocated) "s %p offset %" PRId64 " bytes %" PRIu64 " is_allocated %d" |
5ccac6f1 | 23 | stream_start(void *bs, void *base, void *s) "bs %p base %p s %p" |
b54ca48e | 24 | |
500016e5 | 25 | # commit.c |
5cb1a49e | 26 | commit_one_iteration(void *s, int64_t offset, uint64_t bytes, int is_allocated) "s %p offset %" PRId64 " bytes %" PRIu64 " is_allocated %d" |
5ccac6f1 | 27 | commit_start(void *bs, void *base, void *top, void *s) "bs %p base %p top %p s %p" |
b54ca48e | 28 | |
500016e5 | 29 | # mirror.c |
5ccac6f1 | 30 | mirror_start(void *bs, void *s, void *opaque) "bs %p s %p opaque %p" |
b54ca48e DB |
31 | mirror_restart_iter(void *s, int64_t cnt) "s %p dirty count %"PRId64 |
32 | mirror_before_flush(void *s) "s %p" | |
33 | mirror_before_drain(void *s, int64_t cnt) "s %p dirty count %"PRId64 | |
34 | mirror_before_sleep(void *s, int64_t cnt, int synced, uint64_t delay_ns) "s %p dirty count %"PRId64" synced %d delay %"PRIu64"ns" | |
5cb1a49e EB |
35 | mirror_one_iteration(void *s, int64_t offset, uint64_t bytes) "s %p offset %" PRId64 " bytes %" PRIu64 |
36 | mirror_iteration_done(void *s, int64_t offset, uint64_t bytes, int ret) "s %p offset %" PRId64 " bytes %" PRIu64 " ret %d" | |
b54ca48e | 37 | mirror_yield(void *s, int64_t cnt, int buf_free_count, int in_flight) "s %p dirty count %"PRId64" free buffers %d in_flight %d" |
5cb1a49e | 38 | mirror_yield_in_flight(void *s, int64_t offset, int in_flight) "s %p offset %" PRId64 " in_flight %d" |
b54ca48e | 39 | |
500016e5 | 40 | # backup.c |
5cb1a49e EB |
41 | backup_do_cow_enter(void *job, int64_t start, int64_t offset, uint64_t bytes) "job %p start %" PRId64 " offset %" PRId64 " bytes %" PRIu64 |
42 | backup_do_cow_return(void *job, int64_t offset, uint64_t bytes, int ret) "job %p offset %" PRId64 " bytes %" PRIu64 " ret %d" | |
beb5f545 VSO |
43 | |
44 | # block-copy.c | |
2c8074c4 VSO |
45 | block_copy_skip_range(void *bcs, int64_t start, uint64_t bytes) "bcs %p start %"PRId64" bytes %"PRId64 |
46 | block_copy_process(void *bcs, int64_t start) "bcs %p start %"PRId64 | |
e332a726 VSO |
47 | block_copy_copy_range_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d" |
48 | block_copy_read_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d" | |
49 | block_copy_write_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d" | |
2d57511a | 50 | block_copy_write_zeroes_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d" |
b54ca48e | 51 | |
500016e5 | 52 | # ../blockdev.c |
b54ca48e DB |
53 | qmp_block_job_cancel(void *job) "job %p" |
54 | qmp_block_job_pause(void *job) "job %p" | |
55 | qmp_block_job_resume(void *job) "job %p" | |
56 | qmp_block_job_complete(void *job) "job %p" | |
11b61fbc | 57 | qmp_block_job_finalize(void *job) "job %p" |
75f71059 | 58 | qmp_block_job_dismiss(void *job) "job %p" |
b23c580c | 59 | qmp_block_stream(void *bs) "bs %p" |
b54ca48e | 60 | |
500016e5 | 61 | # file-win32.c |
f8a30874 | 62 | file_paio_submit(void *acb, void *opaque, int64_t offset, int count, int type) "acb %p opaque %p offset %"PRId64" count %d type %d" |
b54ca48e | 63 | |
b15e402f | 64 | # io_uring.c |
d803f590 AM |
65 | luring_init_state(void *s, size_t size) "s %p size %zu" |
66 | luring_cleanup_state(void *s) "%p freed" | |
67 | luring_io_plug(void *s) "LuringState %p plug" | |
68 | luring_io_unplug(void *s, int blocked, int plugged, int queued, int inflight) "LuringState %p blocked %d plugged %d queued %d inflight %d" | |
69 | luring_do_submit(void *s, int blocked, int plugged, int queued, int inflight) "LuringState %p blocked %d plugged %d queued %d inflight %d" | |
70 | luring_do_submit_done(void *s, int ret) "LuringState %p submitted to kernel %d" | |
71 | luring_co_submit(void *bs, void *s, void *luringcb, int fd, uint64_t offset, size_t nbytes, int type) "bs %p s %p luringcb %p fd %d offset %" PRId64 " nbytes %zd type %d" | |
72 | luring_process_completion(void *s, void *aiocb, int ret) "LuringState %p luringcb %p ret %d" | |
73 | luring_io_uring_submit(void *s, int ret) "LuringState %p ret %d" | |
74 | luring_resubmit_short_read(void *s, void *luringcb, int nread) "LuringState %p luringcb %p nread %d" | |
75 | ||
500016e5 | 76 | # qcow2.c |
9c4269d5 | 77 | qcow2_add_task(void *co, void *bs, void *pool, const char *action, int cluster_type, uint64_t host_offset, uint64_t offset, uint64_t bytes, void *qiov, size_t qiov_offset) "co %p bs %p pool %p: %s: cluster_type %d file_cluster_offset %" PRIu64 " offset %" PRIu64 " bytes %" PRIu64 " qiov %p qiov_offset %zu" |
e75abeda | 78 | qcow2_writev_start_req(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64 |
b54ca48e DB |
79 | qcow2_writev_done_req(void *co, int ret) "co %p ret %d" |
80 | qcow2_writev_start_part(void *co) "co %p" | |
81 | qcow2_writev_done_part(void *co, int cur_bytes) "co %p cur_bytes %d" | |
8908eb1a | 82 | qcow2_writev_data(void *co, uint64_t offset) "co %p offset 0x%" PRIx64 |
f34b2bcf VSO |
83 | qcow2_pwrite_zeroes_start_req(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64 |
84 | qcow2_pwrite_zeroes(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64 | |
c8bb23cb | 85 | qcow2_skip_cow(void *co, uint64_t offset, int nb_clusters) "co %p offset 0x%" PRIx64 " nb_clusters %d" |
b54ca48e | 86 | |
500016e5 | 87 | # qcow2-cluster.c |
8908eb1a VSO |
88 | qcow2_alloc_clusters_offset(void *co, uint64_t offset, int bytes) "co %p offset 0x%" PRIx64 " bytes %d" |
89 | qcow2_handle_copied(void *co, uint64_t guest_offset, uint64_t host_offset, uint64_t bytes) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " bytes 0x%" PRIx64 | |
90 | qcow2_handle_alloc(void *co, uint64_t guest_offset, uint64_t host_offset, uint64_t bytes) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " bytes 0x%" PRIx64 | |
91 | qcow2_do_alloc_clusters_offset(void *co, uint64_t guest_offset, uint64_t host_offset, int nb_clusters) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " nb_clusters %d" | |
b54ca48e DB |
92 | qcow2_cluster_alloc_phys(void *co) "co %p" |
93 | qcow2_cluster_link_l2(void *co, int nb_clusters) "co %p nb_clusters %d" | |
94 | ||
95 | qcow2_l2_allocate(void *bs, int l1_index) "bs %p l1_index %d" | |
96 | qcow2_l2_allocate_get_empty(void *bs, int l1_index) "bs %p l1_index %d" | |
97 | qcow2_l2_allocate_write_l2(void *bs, int l1_index) "bs %p l1_index %d" | |
98 | qcow2_l2_allocate_write_l1(void *bs, int l1_index) "bs %p l1_index %d" | |
99 | qcow2_l2_allocate_done(void *bs, int l1_index, int ret) "bs %p l1_index %d ret %d" | |
100 | ||
500016e5 | 101 | # qcow2-cache.c |
8908eb1a | 102 | qcow2_cache_get(void *co, int c, uint64_t offset, bool read_from_disk) "co %p is_l2_cache %d offset 0x%" PRIx64 " read_from_disk %d" |
b54ca48e DB |
103 | qcow2_cache_get_replace_entry(void *co, int c, int i) "co %p is_l2_cache %d index %d" |
104 | qcow2_cache_get_read(void *co, int c, int i) "co %p is_l2_cache %d index %d" | |
105 | qcow2_cache_get_done(void *co, int c, int i) "co %p is_l2_cache %d index %d" | |
106 | qcow2_cache_flush(void *co, int c) "co %p is_l2_cache %d" | |
107 | qcow2_cache_entry_flush(void *co, int c, int i) "co %p is_l2_cache %d index %d" | |
108 | ||
1477b6c8 VSO |
109 | # qcow2-refcount.c |
110 | qcow2_process_discards_failed_region(uint64_t offset, uint64_t bytes, int ret) "offset 0x%" PRIx64 " bytes 0x%" PRIx64 " ret %d" | |
111 | ||
500016e5 | 112 | # qed-l2-cache.c |
b54ca48e DB |
113 | qed_alloc_l2_cache_entry(void *l2_cache, void *entry) "l2_cache %p entry %p" |
114 | qed_unref_l2_cache_entry(void *entry, int ref) "entry %p ref %d" | |
115 | qed_find_l2_cache_entry(void *l2_cache, void *entry, uint64_t offset, int ref) "l2_cache %p entry %p offset %"PRIu64" ref %d" | |
116 | ||
500016e5 | 117 | # qed-table.c |
b54ca48e DB |
118 | qed_read_table(void *s, uint64_t offset, void *table) "s %p offset %"PRIu64" table %p" |
119 | qed_read_table_cb(void *s, void *table, int ret) "s %p table %p ret %d" | |
120 | qed_write_table(void *s, uint64_t offset, void *table, unsigned int index, unsigned int n) "s %p offset %"PRIu64" table %p index %u n %u" | |
121 | qed_write_table_cb(void *s, void *table, int flush, int ret) "s %p table %p flush %d ret %d" | |
122 | ||
500016e5 | 123 | # qed.c |
b54ca48e DB |
124 | qed_need_check_timer_cb(void *s) "s %p" |
125 | qed_start_need_check_timer(void *s) "s %p" | |
126 | qed_cancel_need_check_timer(void *s) "s %p" | |
127 | qed_aio_complete(void *s, void *acb, int ret) "s %p acb %p ret %d" | |
db73ee4b | 128 | qed_aio_setup(void *s, void *acb, int64_t sector_num, int nb_sectors, void *opaque, int flags) "s %p acb %p sector_num %"PRId64" nb_sectors %d opaque %p flags 0x%x" |
b54ca48e DB |
129 | qed_aio_next_io(void *s, void *acb, int ret, uint64_t cur_pos) "s %p acb %p ret %d cur_pos %"PRIu64 |
130 | qed_aio_read_data(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu" | |
131 | qed_aio_write_data(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu" | |
132 | qed_aio_write_prefill(void *s, void *acb, uint64_t start, size_t len, uint64_t offset) "s %p acb %p start %"PRIu64" len %zu offset %"PRIu64 | |
133 | qed_aio_write_postfill(void *s, void *acb, uint64_t start, size_t len, uint64_t offset) "s %p acb %p start %"PRIu64" len %zu offset %"PRIu64 | |
134 | qed_aio_write_main(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu" | |
da92c3ff | 135 | |
500016e5 | 136 | # nvme.c |
15b2260b PMD |
137 | nvme_controller_capability_raw(uint64_t value) "0x%08"PRIx64 |
138 | nvme_controller_capability(const char *desc, uint64_t value) "%s: %"PRIu64 | |
fcc8672a | 139 | nvme_controller_spec_version(uint32_t mjr, uint32_t mnr, uint32_t ter) "Specification supported: %u.%u.%u" |
1b539bd6 | 140 | nvme_kick(void *s, unsigned q_index) "s %p q #%u" |
bdd6a90a FZ |
141 | nvme_dma_flush_queue_wait(void *s) "s %p" |
142 | nvme_error(int cmd_specific, int sq_head, int sqid, int cid, int status) "cmd_specific %d sq_head %d sqid %d cid %d status 0x%x" | |
1b539bd6 PMD |
143 | nvme_process_completion(void *s, unsigned q_index, int inflight) "s %p q #%u inflight %d" |
144 | nvme_process_completion_queue_plugged(void *s, unsigned q_index) "s %p q #%u" | |
145 | nvme_complete_command(void *s, unsigned q_index, int cid) "s %p q #%u cid %d" | |
146 | nvme_submit_command(void *s, unsigned q_index, int cid) "s %p q #%u cid %d" | |
bdd6a90a FZ |
147 | nvme_submit_command_raw(int c0, int c1, int c2, int c3, int c4, int c5, int c6, int c7) "%02x %02x %02x %02x %02x %02x %02x %02x" |
148 | nvme_handle_event(void *s) "s %p" | |
1c914cd1 | 149 | nvme_poll_queue(void *s, unsigned q_index) "s %p q #%u" |
8526e39e PMD |
150 | nvme_prw_aligned(void *s, int is_write, uint64_t offset, uint64_t bytes, int flags, int niov) "s %p is_write %d offset 0x%"PRIx64" bytes %"PRId64" flags %d niov %d" |
151 | nvme_write_zeroes(void *s, uint64_t offset, uint64_t bytes, int flags) "s %p offset 0x%"PRIx64" bytes %"PRId64" flags %d" | |
bdd6a90a | 152 | nvme_qiov_unaligned(const void *qiov, int n, void *base, size_t size, int align) "qiov %p n %d base %p size 0x%zx align 0x%x" |
8526e39e PMD |
153 | nvme_prw_buffered(void *s, uint64_t offset, uint64_t bytes, int niov, int is_write) "s %p offset 0x%"PRIx64" bytes %"PRId64" niov %d is_write %d" |
154 | nvme_rw_done(void *s, int is_write, uint64_t offset, uint64_t bytes, int ret) "s %p is_write %d offset 0x%"PRIx64" bytes %"PRId64" ret %d" | |
0c802287 VSO |
155 | nvme_dsm(void *s, int64_t offset, int64_t bytes) "s %p offset 0x%"PRIx64" bytes %"PRId64"" |
156 | nvme_dsm_done(void *s, int64_t offset, int64_t bytes, int ret) "s %p offset 0x%"PRIx64" bytes %"PRId64" ret %d" | |
bdd6a90a | 157 | nvme_dma_map_flush(void *s) "s %p" |
51e98b6d | 158 | nvme_free_req_queue_wait(void *s, unsigned q_index) "s %p q #%u" |
5ef1f4ec | 159 | nvme_create_queue_pair(unsigned q_index, void *q, size_t size, void *aio_context, int fd) "index %u q %p size %zu aioctx %p fd %d" |
53cedeaa | 160 | nvme_free_queue_pair(unsigned q_index, void *q, void *cq, void *sq) "index %u q %p cq %p sq %p" |
bdd6a90a FZ |
161 | nvme_cmd_map_qiov(void *s, void *cmd, void *req, void *qiov, int entries) "s %p cmd %p req %p qiov %p entries %d" |
162 | nvme_cmd_map_qiov_pages(void *s, int i, uint64_t page) "s %p page[%d] 0x%"PRIx64 | |
163 | nvme_cmd_map_qiov_iov(void *s, int i, void *page, int pages) "s %p iov[%d] %p pages %d" | |
ecc983a5 | 164 | |
500016e5 | 165 | # iscsi.c |
ecc983a5 | 166 | iscsi_xcopy(void *src_lun, uint64_t src_off, void *dst_lun, uint64_t dst_off, uint64_t bytes, int ret) "src_lun %p offset %"PRIu64" dst_lun %p offset %"PRIu64" bytes %"PRIu64" ret %d" |
d8b4bad8 | 167 | |
86f8cdf3 | 168 | # nbd.c |
a39286dd | 169 | nbd_parse_blockstatus_compliance(const char *err) "ignoring extra data from non-compliant server: %s" |
75d34eb9 | 170 | nbd_structured_read_compliance(const char *type) "server sent non-compliant unaligned read %s chunk" |
d8b4bad8 VSO |
171 | nbd_read_reply_entry_fail(int ret, const char *err) "ret = %d, err: %s" |
172 | nbd_co_request_fail(uint64_t from, uint32_t len, uint64_t handle, uint16_t flags, uint16_t type, const char *name, int ret, const char *err) "Request failed { .from = %" PRIu64", .len = %" PRIu32 ", .handle = %" PRIu64 ", .flags = 0x%" PRIx16 ", .type = %" PRIu16 " (%s) } ret = %d, err: %s" | |
fa35591b VSO |
173 | nbd_client_handshake(const char *export_name) "export '%s'" |
174 | nbd_client_handshake_success(const char *export_name) "export '%s'" | |
8bb100c9 DL |
175 | nbd_reconnect_attempt(unsigned in_flight) "in_flight %u" |
176 | nbd_reconnect_attempt_result(int ret, unsigned in_flight) "ret %d in_flight %u" | |
023908a2 | 177 | |
500016e5 | 178 | # ssh.c |
023908a2 LV |
179 | ssh_restart_coroutine(void *co) "co=%p" |
180 | ssh_flush(void) "fsync" | |
b10d49d7 | 181 | ssh_check_host_key_knownhosts(void) "host key OK" |
023908a2 LV |
182 | ssh_connect_to_ssh(char *path, int flags, int mode) "opening file %s flags=0x%x creat_mode=0%o" |
183 | ssh_co_yield(int sock, void *rd_handler, void *wr_handler) "s->sock=%d rd_handler=%p wr_handler=%p" | |
184 | ssh_co_yield_back(int sock) "s->sock=%d - back" | |
185 | ssh_getlength(int64_t length) "length=%" PRIi64 | |
186 | ssh_co_create_opts(uint64_t size) "total_size=%" PRIu64 | |
187 | ssh_read(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu" | |
b10d49d7 PT |
188 | ssh_read_buf(void *buf, size_t size, size_t actual_size) "sftp_read buf=%p size=%zu (actual size=%zu)" |
189 | ssh_read_return(ssize_t ret, int sftp_err) "sftp_read returned %zd (sftp error=%d)" | |
023908a2 | 190 | ssh_write(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu" |
b10d49d7 PT |
191 | ssh_write_buf(void *buf, size_t size, size_t actual_size) "sftp_write buf=%p size=%zu (actual size=%zu)" |
192 | ssh_write_return(ssize_t ret, int sftp_err) "sftp_write returned %zd (sftp error=%d)" | |
023908a2 | 193 | ssh_seek(int64_t offset) "seeking to offset=%" PRIi64 |
b10d49d7 PT |
194 | ssh_auth_methods(int methods) "auth methods=0x%x" |
195 | ssh_server_status(int status) "server status=%d" | |
ed2a66de | 196 | |
500016e5 | 197 | # curl.c |
ed2a66de LV |
198 | curl_timer_cb(long timeout_ms) "timer callback timeout_ms %ld" |
199 | curl_sock_cb(int action, int fd) "sock action %d on fd %d" | |
200 | curl_read_cb(size_t realsize) "just reading %zu bytes" | |
201 | curl_open(const char *file) "opening %s" | |
202 | curl_open_size(uint64_t size) "size = %" PRIu64 | |
203 | curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "reading %" PRIu64 " at %" PRIu64 " (%s)" | |
204 | curl_close(void) "close" | |
4f7d28d7 | 205 | |
500016e5 | 206 | # file-posix.c |
b15e402f | 207 | file_copy_file_range(void *bs, int src, int64_t src_off, int dst, int64_t dst_off, int64_t bytes, int flags, int64_t ret) "bs %p src_fd %d offset %"PRIu64" dst_fd %d offset %"PRIu64" bytes %"PRIu64" flags %d ret %"PRId64 |
4f7d28d7 LV |
208 | file_FindEjectableOpticalMedia(const char *media) "Matching using %s" |
209 | file_setup_cdrom(const char *partition) "Using %s as optical disc" | |
210 | file_hdev_is_sg(int type, int version) "SG device found: type=%d, version=%d" | |
60ff2ae2 | 211 | file_flush_fdatasync_failed(int err) "errno %d" |
70018a14 | 212 | |
6b3048ce | 213 | # ssh.c |
b10d49d7 | 214 | sftp_error(const char *op, const char *ssh_err, int ssh_err_code, int sftp_err_code) "%s failed: %s (libssh error code: %d, sftp error code: %d)" |