On Thu, Nov 2, 2023 at 11:28 AM Laszlo Ersek <ler...@redhat.com> wrote: > > On 11/1/23 02:12, Mike Maslenkin wrote: > > On Tue, Oct 31, 2023 at 7:52 PM Henz, Patrick <patrick.h...@hpe.com> wrote: > >> > >> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578 > >> > >> The implementation of XhcGetElapsedTicks did not account for > >> non-zero start and stop values for the performance counter > >> timer, potentially resulting in an incorrect elapsed tick > >> count getting returned to the caller. Account for non-zero > >> start and stop values when calculating the elapsed tick > >> count. > >> > >> Cc: Hao A Wu <hao.a...@intel.com> > >> Cc: Ray Ni <ray...@intel.com> > >> Signed-off-by: Patrick Henz <patrick.h...@hpe.com> > >> Reviewed-by: > >> --- > >> MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 4 ++-- > >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > >> b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > >> index 7a2e32a9dd..6cb97b7452 100644 > >> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > >> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > >> @@ -2389,7 +2389,7 @@ XhcGetElapsedTicks ( > >> // Counter counts upwards, check for an overflow condition > >> // > >> if (*PreviousTick > CurrentTick) { > >> - Delta = (mPerformanceCounterEndValue - *PreviousTick) + CurrentTick; > >> + Delta = (CurrentTick - mPerformanceCounterStartValue) + > >> (mPerformanceCounterEndValue - *PreviousTick); > >> } else { > >> Delta = CurrentTick - *PreviousTick; > >> } > >> @@ -2398,7 +2398,7 @@ XhcGetElapsedTicks ( > >> // Counter counts downwards, check for an underflow condition > >> // > >> if (*PreviousTick < CurrentTick) { > >> - Delta = (mPerformanceCounterStartValue - CurrentTick) + > >> *PreviousTick; > >> + Delta = (mPerformanceCounterStartValue - CurrentTick) + > >> (*PreviousTick - mPerformanceCounterEndValue); > >> } else { > >> Delta = *PreviousTick - CurrentTick; > >> } > >> -- > >> 2.34.1 > >> > >> > >> > >> ------------ > >> Groups.io Links: You receive all messages sent to this group. > >> View/Reply Online (#110434): https://edk2.groups.io/g/devel/message/110434 > >> Mute This Topic: https://groups.io/mt/102301510/1770412 > >> Group Owner: devel+ow...@edk2.groups.io > >> Unsubscribe: https://edk2.groups.io/g/devel/unsub > >> [mike.maslen...@gmail.com] > >> ------------ > >> > >> > > Hello, All > > > > Just curious why this patch was broken by google groups. > > > > Some patches to edk2 and edk2-redfish-client have unintended line > > breaks marked with "=", additional "0D" and additional "3D" to "=" > > Web shows https://edk2.groups.io/g/devel/message/110434 exactly as it > > saved by mailer. > > What do sender should setup to avoid this? > > I recommend selecting base64 content-transfer-encoding, rather than > quode-printable. Base64 will ensure that the embedded CRLFs (which are > used in the edk2 source tree) survive intact, and also that "git-am" can > cleanly apply the patch (as saved from the mailing list). > > Base64 is more robust than 8bit too. (If 8bit survived all mail servers > along the way, it would work fine as well.) > > ... According to my notes, git has always *ignored* the > > [sendemail] > transferEncoding = base64 > > stanza in my git config file. Which is why I have an alias around > git-send-email that open-codes > > git send-email --transfer-encoding=base64 ... > > So that's what I recommend. > > (BTW, our "BaseTools/Scripts/SetupGit.py" script sets > "sendemail.transferEncoding=8bit", but that is problematic for two > reasons: (1) git ignores it anyway, per my records mentioned above, (2) > 8bit is inferior to base64 in practice, when it comes to CRLF integrity > across all email servers.) > > ... Side comment: I can apply quoted-printable-encoded patches as well, > from the list, but that's only because I manually transcode them to > 8bit, before passing them to git-am. I use the following hairy script: > > ---------------------------- > #!/bin/bash > set -e -u -C > > TMPD=$(mktemp -d) > trap 'rm -f -r -- "$TMPD"' EXIT > > cd "$TMPD" > tee input | dos2unix | csplit -s - '/^$/' > HEAD_LINES=$(wc -l < xx00) > > head -n "$HEAD_LINES" input \ > | sed -r 's/^(Content-Transfer-Encoding: )quoted-printable/\18bit/' > > tail -n +$((HEAD_LINES + 1)) input \ > | perl -p -e 'use MIME::QuotedPrint; $_=MIME::QuotedPrint::decode($_);' \ > | unix2dos > ---------------------------- > > (The perl command is from Paolo Bonzini.)
Ooooooh, cool script! > > Summary: send your patches with > > git send-email --transfer-encoding=base64 ... I've been involved in EDK2 for the last 2.5 years and I still haven't found a consistent way to both send and apply patches :/ I usually use 8bit. FWIW, Rebecca started hosting a lore instance (https://openfw.io/edk2-devel/, although it doesn't seem to be feeling too well atm) and I tried to get b4 to work, to see if most of this process could be nicely automated. Sadly, CRLF problems galore :( -- Pedro -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110526): https://edk2.groups.io/g/devel/message/110526 Mute This Topic: https://groups.io/mt/102301510/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-