public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Andrew Fish <afish@apple.com>
To: "Brian J. Johnson" <brian.johnson@hpe.com>
Cc: Heyi Guo <heyi.guo@linaro.org>, Gerd Hoffmann <kraxel@redhat.com>,
	"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: Tue, 28 Nov 2017 20:18:11 -0800	[thread overview]
Message-ID: <2D610939-ABCA-45B6-B4DE-38CD61BFB9E9@apple.com> (raw)
In-Reply-To: <52afe6c7-2390-bbad-0159-514fdbb0413c@hpe.com>

Big picture I think the goal is to not make the driver depend on the PCD protocol. A fixed at build PCD is just part of the build system, so not an issue.

Thanks,

Andrew Fish

> On Nov 28, 2017, at 9:55 AM, Brian J. Johnson <brian.johnson@hpe.com> wrote:
> 
> On 11/24/2017 01:21 AM, Heyi Guo wrote:
>> 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)
> 
> Gary,
> 
> I'm not sure what the rules are for PCDs.  I'm just saying that if there's a good way to make the delay configurable for each platform, I wouldn't be against it.  2 seconds is a long time in some contexts.
> 
> -- 
> Brian J. Johnson
> Enterprise X86 Lab
> Hewlett Packard Enterprise
> brian.johnson@hpe.com <mailto:brian.johnson@hpe.com>
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>
> https://lists.01.org/mailman/listinfo/edk2-devel <https://lists.01.org/mailman/listinfo/edk2-devel>


      reply	other threads:[~2017-11-29  4:13 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
2017-11-28 17:55                   ` Brian J. Johnson
2017-11-29  4:18                     ` Andrew Fish [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-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=2D610939-ABCA-45B6-B4DE-38CD61BFB9E9@apple.com \
    --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