Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Martin M. Hunt" <hunt@redhat.com>
To: Orjan Friberg <orjan.friberg@axis.com>, gdb-patches@sources.redhat.com
Subject: Re: [RFA] new tcp_open
Date: Tue, 18 Dec 2001 02:57:00 -0000	[thread overview]
Message-ID: <200112181056.CAA08011@cygnus.com> (raw)
In-Reply-To: <3C1F1D00.A35E3AF@axis.com>

On Tuesday 18 December 2001 02:40 am, Orjan Friberg wrote:
> "Martin M. Hunt" wrote:
> > Problem:  Using "target remote" to open a tcp connection to a target
> > board doesn't timeout properly if the target isn't running or you mistype
> > the name or port number. The tcp_open function tries to connect 15 times,
> > each of which can take a couple of minutes to timeout.  You can't
> > interrupt the connect from the GUI, which is not updated, or from the
> > command line with a ^C.
> >
> > I propose replacing tcp_open with a new function that does a non-blocking
> > connect with a maximum timeout of 15 seconds.  This is easily
> > interruptable by typing ^C or clicking on the stop button. I have tested
> > this with Linux, Solaris, and Cygwin.
>
> In my setup, this patch makes the testsuite run an order of a magnitude
> slower (I downgraded only this file from an otherwise updated tree, and
> it fixes the problem).  My target board runs an unsubmitted port (for
> various reasons) of the gdbserver on a Linux 2.4.14 kernel, and my host
> is a Linux 2.2.19.  I don't see any recent gdbserver changes that should
> be related to this change.  Anyone else seeing this slowdown?

Please give this patch a try and see if it fixes the problem.

Index: ser-tcp.c
===================================================================
RCS file: /cvs/src/src/gdb/ser-tcp.c,v
retrieving revision 1.9
diff -u -p -r1.9 ser-tcp.c
--- ser-tcp.c   2001/12/07 17:57:05     1.9
+++ ser-tcp.c   2001/12/18 10:54:31
@@ -165,6 +165,10 @@ tcp_open (struct serial *scb, const char
   tmp = 0;
   ioctl (scb->fd, FIONBIO, &tmp);

+  tmp = 1;
+  setsockopt (scb->fd, IPPROTO_TCP, TCP_NODELAY,
+             (char *)&tmp, sizeof (tmp));
+
   /* If we don't do this, then GDB simply exits
      when the remote side dies.  */
   signal (SIGPIPE, SIG_IGN);

-- 
Martin Hunt
GDB Engineer
Red Hat, Inc.


  reply	other threads:[~2001-12-18 10:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-03 11:18 Martin M. Hunt
2001-12-03 12:02 ` Andrew Cagney
2001-12-03 13:26   ` Martin M. Hunt
2001-12-03 13:36     ` Andrew Cagney
2001-12-03 22:13       ` Martin M. Hunt
2001-12-18  2:41 ` Orjan Friberg
2001-12-18  2:57   ` Martin M. Hunt [this message]
2001-12-18  3:22     ` Andrew Cagney
2001-12-18 12:29       ` Martin M. Hunt
2001-12-19 15:32         ` Elena Zannoni
2001-12-20  3:39           ` Martin M. Hunt
2001-12-20  3:04             ` Andrew Cagney
2001-12-18  3:40     ` Orjan Friberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200112181056.CAA08011@cygnus.com \
    --to=hunt@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=orjan.friberg@axis.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox