All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gal Hammer <ghammer@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] char: disable stdio echo on resume from	suspend.
Date: Tue, 6 Jan 2015 13:45:32 -0500 (EST)	[thread overview]
Message-ID: <1317037476.3836745.1420569932187.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <CAFEAcA8g0BS9_oXykgYfRH5BuqV=iD+mhcrmbOv4eX+C9LEZ5Q@mail.gmail.com>


----- Original Message -----
> From: "Peter Maydell" <peter.maydell@linaro.org>
> To: "Gal Hammer" <ghammer@redhat.com>
> Cc: "Paolo Bonzini" <pbonzini@redhat.com>, "QEMU Developers" <qemu-devel@nongnu.org>
> Sent: Tuesday, January 6, 2015 4:36:19 PM
> Subject: Re: [Qemu-devel] [PATCH] char: disable stdio echo on resume from	suspend.
> 
> On 6 January 2015 at 14:30, Gal Hammer <ghammer@redhat.com> wrote:
> > On 06/01/2015 15:49, Peter Maydell wrote:
> >>
> >> On 5 January 2015 at 09:21, Gal Hammer <ghammer@redhat.com> wrote:
> >>>
> >>> The monitor's auto-completion feature stopped working when stdio is used
> >>> as an input and qemu was resumed after it was suspended (using ctrl-z).
> 
> >>> +        /* echo should be off after resume from suspend. */
> >>> +        qemu_chr_set_echo_stdio(NULL, false);
> >>
> >>
> >> Should echo really be always off, even if the thing using the
> >> char device had set it to on?
> >
> >
> > That's what the function qemu_chr_open_stdio() do, always set the stdio
> > char
> > device echo to off. I didn't change the current behavior I just restore it.
> 
> But qemu_chr_open_stdio also registers this function as the
> chr_set_echo pointer in the CharDriverState, so if the
> user of the CharDriverState calls qemu_chr_fe_set_echo(chr, true)
> then we'll set the echo to on. And then if we ^Z and resume, your
> patch will end up setting the echo to off, which seems wrong.

I've missed the fact that qemu_chr_fe_set_echo(chr, true) is called if the monitor is in qmp mode. I'll post a new version of this patch.
 
> > As I understood from my tests, the auto-complete feature doesn't work if
> > the
> > echo is enabled because pressing the tab key prints a tab char.
> 
> Right, if the echo was disabled we want to make sure it is disabled.
> But if the echo wasn't disabled we don't want to disable it.
> 
> >>> +    }
> >>> +}
> >>> +
> >>>   static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
> >>>   {
> >>>       struct termios tty;
> >>> @@ -1165,6 +1175,7 @@ static CharDriverState
> >>> *qemu_chr_open_stdio(ChardevStdio *opts)
> >>>       tcgetattr(0, &oldtty);
> >>>       qemu_set_nonblock(0);
> >>>       atexit(term_exit);
> >>> +    signal(SIGCONT, term_stdio_handler);
> >>
> >>
> >> This should probably be using sigaction() which is what we use
> >> elsewhere for signal handler registration.
> >
> >
> > signal() is used in the code.
> 
> Only when we're setting a signal to SIG_IGN, I think. signal()'s
> semantics aren't portable, which is why we use sigaction().
> [See the Linux signal(2) manpage for some discussion of this.]

No problem. I'll use sigaction() and won't check the signal identifier in the handler function.

> thanks
> -- PMM
> 
> 

    Gal.

      reply	other threads:[~2015-01-06 18:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-05  9:21 [Qemu-devel] [PATCH] char: disable stdio echo on resume from suspend Gal Hammer
2015-01-06 13:33 ` Marcel Apfelbaum
2015-01-06 13:49 ` Peter Maydell
2015-01-06 14:30   ` Gal Hammer
2015-01-06 14:36     ` Peter Maydell
2015-01-06 18:45       ` Gal Hammer [this message]

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=1317037476.3836745.1420569932187.JavaMail.zimbra@redhat.com \
    --to=ghammer@redhat.com \
    --cc=gal@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.