Skip to content

Commit

Permalink
default chunk size is filesize/(nr_conn*4) (Issue #20)
Browse files Browse the repository at this point in the history
and clean-up chunk_sz related parts.
  • Loading branch information
upa committed Apr 29, 2024
1 parent 675126a commit 235ba41
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 20 deletions.
6 changes: 5 additions & 1 deletion doc/mscp.1.in
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,11 @@ parallel. The default value is 16M bytes.
.TP
.B \-S \fIMAX_CHUNK_SIZE\fR
Specifies the maximum chunk size. The default is file size divided by
the number of connections.
the number of connections and devided by 4. If the calculated value
is smarller than the
.B MIN_CHUNK_SIZE
value,
MIN_CHUNK_SIZE is used.

.TP
.B \-a \fINR_AHEAD\fR
Expand Down
6 changes: 4 additions & 2 deletions doc/mscp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
MSCP
====

:Date: v0.2.0-8-gef2dd55
:Date: v0.2.0-9-g675126a

NAME
====
Expand Down Expand Up @@ -102,7 +102,9 @@ OPTIONS

**-S MAX_CHUNK_SIZE**
Specifies the maximum chunk size. The default is file size divided by
the number of connections.
the number of connections and devided by 4. If the calculated value
is smarller than the **MIN_CHUNK_SIZE** value, MIN_CHUNK_SIZE is
used.

**-a NR_AHEAD**
Specifies the number of inflight SFTP commands. The default value is
Expand Down
2 changes: 1 addition & 1 deletion src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void usage(bool print_help)
" -R CHECKPOINT resume transferring from the checkpoint\n"
"\n"
" -s MIN_CHUNK_SIZE min chunk size (default: 16M bytes)\n"
" -S MAX_CHUNK_SIZE max chunk size (default: filesize/nr_conn)\n"
" -S MAX_CHUNK_SIZE max chunk size (default: filesize/nr_conn/4)\n"
" -a NR_AHEAD number of inflight SFTP commands (default: 32)\n"
" -b BUF_SZ buffer size for i/o and transfer\n"
" -L LIMIT_BITRATE Limit the bitrate, n[KMG] (default: 0, no limit)\n"
Expand Down
14 changes: 3 additions & 11 deletions src/mscp.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,18 +330,10 @@ int mscp_set_dst_path(struct mscp *m, const char *dst_path)
return 0;
}

static int get_page_mask(void)
static size_t get_page_mask(void)
{
long page_sz = sysconf(_SC_PAGESIZE);
size_t page_mask = 0;
int n;

for (n = 0; page_sz > 0; page_sz >>= 1, n++) {
page_mask <<= 1;
page_mask |= 1;
}

return page_mask >> 1;
size_t page_sz = sysconf(_SC_PAGESIZE);
return ~(page_sz - 1);
}

static void mscp_stop_copy_thread(struct mscp *m)
Expand Down
7 changes: 2 additions & 5 deletions src/path.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,10 @@ static int resolve_chunk(struct path *p, size_t size, struct path_resolve_args *
size_t chunk_sz, off, len;
size_t remaind;

if (size <= a->min_chunk_sz)
chunk_sz = size;
else if (a->max_chunk_sz)
if (a->max_chunk_sz)
chunk_sz = a->max_chunk_sz;
else {
chunk_sz = (size - (size % a->nr_conn)) / a->nr_conn;
chunk_sz &= ~a->chunk_align; /* align with page_sz */
chunk_sz = (size / (a->nr_conn * 4)) & a->chunk_align;
if (chunk_sz <= a->min_chunk_sz)
chunk_sz = a->min_chunk_sz;
}
Expand Down

0 comments on commit 235ba41

Please sign in to comment.