summaryrefslogtreecommitdiffstats
path: root/qarshd.c
diff options
context:
space:
mode:
authorNathan Straz <nstraz@redhat.com>2013-09-16 16:20:25 -0400
committerNathan Straz <nstraz@redhat.com>2013-09-16 16:20:25 -0400
commit28574cb4d104df98b92a9e6ca632729ed6c5fa9a (patch)
treed2f3e5481e0d6b6dca127424f8bd1e5126364b94 /qarshd.c
parent0570bd953cf3ecd1b58c192a015a6f0d46423852 (diff)
downloadqarsh-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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/qarshd.c b/qarshd.c
index 7f0f944..8d1a798 100644
--- a/qarshd.c
+++ b/qarshd.c
@@ -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);