diff options
author | Nathan Straz <nstraz@redhat.com> | 2013-09-16 16:20:25 -0400 |
---|---|---|
committer | Nathan Straz <nstraz@redhat.com> | 2013-09-16 16:20:25 -0400 |
commit | 28574cb4d104df98b92a9e6ca632729ed6c5fa9a (patch) | |
tree | d2f3e5481e0d6b6dca127424f8bd1e5126364b94 /qarshd.c | |
parent | 0570bd953cf3ecd1b58c192a015a6f0d46423852 (diff) | |
download | qarsh-28574cb4d104df98b92a9e6ca632729ed6c5fa9a.tar.gz qarsh-28574cb4d104df98b92a9e6ca632729ed6c5fa9a.tar.xz qarsh-28574cb4d104df98b92a9e6ca632729ed6c5fa9a.zip |
Increase buffer and packet sizes
This coordinates the buffer sizes with the
max packet size. qarshd and qarsh will probably break
if this value does not match between client and server
builds. Also increase the value to reduce overhead.
A max packet size of 16k only yields 40MB/s. Increase
that to 128k and we can do 500MB/s.
Diffstat (limited to 'qarshd.c')
-rw-r--r-- | qarshd.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -41,7 +41,7 @@ #include "sockutil.h" #include "qarsh_packet.h" -#define QARSHD_BUFSIZE 4096 +#define QARSHD_BUFSIZE QARSH_MAX_PACKET_SIZE/2 /* * QA Remote Shell Daemon */ @@ -283,8 +283,8 @@ handle_qarsh() int child_status; struct qa_packet *qp = NULL, *rp = NULL; int allowed_out = 0, allowed_err = 0; /* number of bytes we can send to client */ - char buf[4096]; /* short term buffer for stdout and stderr */ - char buf_in[4096]; /* long term buffer for stdin */ + char buf[QARSHD_BUFSIZE]; /* short term buffer for stdout and stderr */ + char buf_in[QARSHD_BUFSIZE]; /* long term buffer for stdin */ int z_in = 0; /* Number of bytes in stdin buffer */ int eof_in = 0; /* Have we seen EOF on stdin yet? */ int nbytes; @@ -297,7 +297,7 @@ handle_qarsh() sa.sa_flags = SA_RESTART; sigaction(SIGCHLD, &sa, NULL); - qp = make_qp_data_allow(0, 4096); + qp = make_qp_data_allow(0, QARSHD_BUFSIZE); send_packet(qoutfd, qp); qpfree(qp); |