qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sergio Lopez <slp@redhat.com>,
	mst@redhat.com, peter.maydell@linaro.org,
	marcandre.lureau@gmail.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] hw/char/serial: Only retry if qemu_chr_fe_write returns 0
Date: Tue, 10 Jul 2018 15:48:00 +0200	[thread overview]
Message-ID: <20180710154800.7ea50b73@redhat.com> (raw)
In-Reply-To: <4e35ea24-147d-1b51-fa1b-0f1cc32966e0@redhat.com>

On Tue, 5 Jun 2018 11:18:35 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:

> On 05/06/2018 09:54, Sergio Lopez wrote:
> > Only retry on serial_xmit if qemu_chr_fe_write returns 0, as this is the
> > only recoverable error.
> > 
> > Retrying with any other scenario, in addition to being a waste of CPU
> > cycles, can compromise the Guest stability if by the vCPU issuing the
> > write and the main loop thread are, by chance or explicit pinning,
> > running on the same pCPU.
> > 
> > Previous discussion:
> > 
> > https://lists.nongnu.org/archive/html/qemu-devel/2018-05/msg06998.html
> > 
> > Signed-off-by: Sergio Lopez <slp@redhat.com>
> > ---
> >  hw/char/serial.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/hw/char/serial.c b/hw/char/serial.c
> > index 605b0d0..6de6c29 100644
> > --- a/hw/char/serial.c
> > +++ b/hw/char/serial.c
> > @@ -260,7 +260,7 @@ static void serial_xmit(SerialState *s)
> >          if (s->mcr & UART_MCR_LOOP) {
> >              /* in loopback mode, say that we just received a char */
> >              serial_receive1(s, &s->tsr, 1);
> > -        } else if (qemu_chr_fe_write(&s->chr, &s->tsr, 1) != 1 &&
> > +        } else if (qemu_chr_fe_write(&s->chr, &s->tsr, 1) == 0 &&
> >                     s->tsr_retry < MAX_XMIT_RETRY) {
> >              assert(s->watch_tag == 0);
> >              s->watch_tag =
> >   
Hi Sergio, Paolo,

it looks like commit 
commit 019288bf137183bf3407c9824655b753bfafc99f
Author: Sergio Lopez <slp@redhat.com>
Date:   Tue Jun 5 03:54:55 2018 -0400

    hw/char/serial: Only retry if qemu_chr_fe_write returns 0

introduced regression wrt 2.12 and broke windows guest remote kernel debug over
serial, where windbg can't connect to target and target hangs when windbg tries
to connect to it.

Reverting the commit fixes issue

  parent reply	other threads:[~2018-07-10 13:48 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1528185295-14199-1-git-send-email-slp@redhat.com>
2018-06-05  9:18 ` [Qemu-devel] [PATCH] hw/char/serial: Only retry if qemu_chr_fe_write returns 0 Paolo Bonzini
2018-07-09 10:25   ` Marc-André Lureau
2018-07-09 12:11     ` Peter Maydell
2018-07-09 12:23       ` Marc-André Lureau
2018-07-09 13:17         ` Paolo Bonzini
2018-07-09 13:21           ` Peter Maydell
2018-07-09 13:44             ` Paolo Bonzini
2018-07-10 13:48   ` Igor Mammedov [this message]
2018-07-13 14:55     ` Marc-André Lureau
2018-07-13 15:05       ` Paolo Bonzini
2018-07-16  9:03       ` Igor Mammedov

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=20180710154800.7ea50b73@redhat.com \
    --to=imammedo@redhat.com \
    --cc=marcandre.lureau@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=slp@redhat.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;
as well as URLs for NNTP newsgroup(s).