Set TCP_NODELAY for local connections to jtag_vpi.
This increases performance drematically for local connections, which is the most likely arrangement for a VPI connection. Change-Id: Id15b29ae663f5d8100b2175357649bd03d05b7c8 Signed-off-by: Darius Rad <darius@bluespec.com> Reviewed-on: http://openocd.zylin.com/4549 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
9542cb7c3d
commit
eb8dfd5ca8
|
@ -29,6 +29,10 @@
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#include <netinet/tcp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define NO_TAP_SHIFT 0
|
#define NO_TAP_SHIFT 0
|
||||||
#define TAP_SHIFT 1
|
#define TAP_SHIFT 1
|
||||||
|
|
||||||
|
@ -368,6 +372,8 @@ static int jtag_vpi_execute_queue(void)
|
||||||
|
|
||||||
static int jtag_vpi_init(void)
|
static int jtag_vpi_init(void)
|
||||||
{
|
{
|
||||||
|
int flag = 1;
|
||||||
|
|
||||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if (sockfd < 0) {
|
if (sockfd < 0) {
|
||||||
LOG_ERROR("Could not create socket");
|
LOG_ERROR("Could not create socket");
|
||||||
|
@ -395,6 +401,13 @@ static int jtag_vpi_init(void)
|
||||||
return ERROR_COMMAND_CLOSE_CONNECTION;
|
return ERROR_COMMAND_CLOSE_CONNECTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (serv_addr.sin_addr.s_addr == htonl(INADDR_LOOPBACK)) {
|
||||||
|
/* This increases performance drematically for local
|
||||||
|
* connections, which is the most likely arrangement
|
||||||
|
* for a VPI connection. */
|
||||||
|
setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
|
||||||
|
}
|
||||||
|
|
||||||
LOG_INFO("Connection to %s : %u succeed", server_address, server_port);
|
LOG_INFO("Connection to %s : %u succeed", server_address, server_port);
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
|
|
Loading…
Reference in New Issue