public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Heyi Guo <heyi.guo@linaro.org>
To: "Brian J. Johnson" <brian.johnson@hpe.com>,
	Gerd Hoffmann <kraxel@redhat.com>
Cc: "Ni, Ruiyu" <ruiyu.ni@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	"Dong, Eric" <eric.dong@intel.com>,
	"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [MdeModulePkg/TerminalDxe] Why do we delay 2s for ESC being pressed?
Date: Fri, 24 Nov 2017 15:21:54 +0800	[thread overview]
Message-ID: <110d99fc-0021-a59b-ad8d-287ef3236356@linaro.org> (raw)
In-Reply-To: <6eed14fe-31e7-f0ab-3e80-6fa9847e10e4@hpe.com>

Hi Brian,


在 11/9/2017 12:00 AM, Brian J. Johnson 写道:
> On 11/08/2017 07:34 AM, Heyi Guo wrote:
>>
>>
>> On 11/08/2017 05:07 PM, Gerd Hoffmann wrote:
>>> On Wed, Nov 08, 2017 at 04:44:37PM +0800, Heyi Guo wrote:
>>>>
>>>> 在 11/8/2017 4:34 PM, Ni, Ruiyu 写道:
>>>>> No.
>>>>> Even a terminal tool can recognize F10, it still needs to 
>>>>> translate it into "ESC [ V"
>>>>> and send the three bytes to firmware.
>>>> Got it. But the 2 seconds timeout is not for this situation, right? If
>>>> terminal tool could translate and send the key sequence, I think it 
>>>> can
>>>> complete 3 bytes transfer in a very short time, isn't it? E.g. 9600 
>>>> baud / 8
>>>> = 1200 Bytes/s (ignore control bits).
>>>>
>>>> So 2 seconds timeout is still for user to enter the sequence "ESC [ V"
>>>> manually?
>>> No.  Alot of software has this kind of delay because it is recommended
>>> in some classic unix documentation to avoid mis-interpreting incomplete
>>> terminal control sequences coming from slow terminals.
>>>
>>> Where a "slow terminal" which actually would need such a long delay 
>>> is a
>>> physical terminal from the 70ies of the last century, or a virtual
>>> terminal hooked up over a *really* slow network connection.
>>>
>>> Reducing the delay from 2 seconds to roughly 0.2 seconds should be
>>> pretty safe, things are not that slow any more these days :)
>> That will be great if we can make such change :)
>>
>
> You'd be surprised how much delay you can get with a few layers of 
> firewalls, VPNs, and cross-country (or intercontinental) WAN links. 
> That's the advantage of serial:  you can tunnel it anywhere.
>
> Here's a quick workaround:  if you start typing other text after the 
> ESC, the terminal driver will see the new keystrokes and resolve the 
> ESC immediately, without the delay.  For instance, at the shell 
> prompt, type something, press ESC to clear the line, then just start 
> typing new text without waiting for the timeout. The line will be 
> cleared and the new text will appear correctly, without delay.
>
> On setup screens, I usually hit escape to return to the previous 
> screen, then hit one of the arrow keys to cause the ESC to be 
> processed without the timeout.  That works pretty well in practice.
>
> I'd think a PCD to control this delay would be appropriate, though.
Can we really use a PCD in TerminalDxe? I remember some experts in the 
community said that TerminalDxe is a pure UEFI driver; it can't use PCD 
since PCD is not defined in UEFI spec.

Thanks,

Gary (Heyi Guo)



  reply	other threads:[~2017-11-24  7:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-08  7:04 [MdeModulePkg/TerminalDxe] Why do we delay 2s for ESC being pressed? Heyi Guo
2017-11-08  7:24 ` Zeng, Star
2017-11-08  7:55   ` Ni, Ruiyu
2017-11-08  8:30     ` Heyi Guo
2017-11-08  8:34       ` Ni, Ruiyu
2017-11-08  8:44         ` Heyi Guo
2017-11-08  8:46           ` Ni, Ruiyu
2017-11-08  8:51             ` Heyi Guo
2017-11-08  9:07           ` Gerd Hoffmann
2017-11-08 13:34             ` Heyi Guo
2017-11-08 16:00               ` Brian J. Johnson
2017-11-24  7:21                 ` Heyi Guo [this message]
2017-11-28 17:55                   ` Brian J. Johnson
2017-11-29  4:18                     ` Andrew Fish

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-list 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=110d99fc-0021-a59b-ad8d-287ef3236356@linaro.org \
    --to=devel@edk2.groups.io \
    /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