From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Borislav Petkov <bp@alien8.de>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Nikolay Borisov <nik.borisov@suse.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "Rafael J. Wysocki" <rafael@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Elena Reshetova <elena.reshetova@intel.com>,
Jun Nakajima <jun.nakajima@intel.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
"Kalra, Ashish" <ashish.kalra@amd.com>,
Sean Christopherson <seanjc@google.com>,
"Huang, Kai" <kai.huang@intel.com>,
Ard Biesheuvel <ardb@kernel.org>, Baoquan He <bhe@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"K. Y. Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
kexec@lists.infradead.org, linux-hyperv@vger.kernel.org,
linux-acpi@vger.kernel.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHv11 05/19] x86/relocate_kernel: Use named labels for less confusion
Date: Wed, 29 May 2024 13:33:35 +0100 [thread overview]
Message-ID: <55bc0649-c017-49ab-905d-212f140a403f@citrix.com> (raw)
In-Reply-To: <20240529112852.GBZlcRdI3oqBtjKxAV@fat_crate.local>
On 29/05/2024 12:28 pm, Borislav Petkov wrote:
> On Wed, May 29, 2024 at 02:17:29PM +0300, Kirill A. Shutemov wrote:
>>> That jmp 1f becomes redundant now as it simply jumps 1 line below.
>>>
>> Nothing changed wrt this jump. It dates back to initial kexec
>> implementation.
>>
>> See 5234f5eb04ab ("[PATCH] kexec: x86_64 kexec implementation").
>>
>> But I don't see functional need in it.
>>
>> Anyway, it is outside of the scope of the patch.
> Yap, Kirill did what Nikolay should've done - git archeology. Please
> don't forget to do that next time.
>
> And back in the day they didn't comment non-obvious things because
> commenting is for losers. :-\
>
> So that unconditional forward jump either flushes branch prediction on
> some old uarch or something else weird, uarch-special.
>
> I doubt we can remove it just like that.
>
> Lemme add Andy - he should know.
Seems I've gained a reputation...
jmp 1f dates back to ye olde 8086, which started the whole trend of the
instruction pointer just being a figment of the ISA's imagination[1].
Hardware maintains the pointer to the next byte to fetch (the prefetch
queue was up to 6 bytes), and there was a micro-op to subtract the
current length of the prefetch queue from the accumulator.
In those days, the prefetch queue was not coherent with main memory, and
jumps (being a discontinuity in the instruction stream) simply flushed
the prefetch queue.
This was necessary after modifying executable code, because otherwise
you could end up executing stale bytes from the prefetch queue and then
non-stale bytes thereafter. (Otherwise known as the way to distinguish
the 8086 from the 8088 because the latter only had a 4 byte prefetch queue.)
Anyway. It's how you used to spell "serialising operation" before that
term ever entered the architecture. Linux still supports CPUs prior to
the Pentium, so still needs to care about prefetch queues in the 486.
However, this example appears to be in 64bit code and following a write
to CR4 which will be fully serialising, so it's probably copy&paste from
32bit code where it would be necessary in principle.
~Andrew
[1]
https://www.righto.com/2023/01/inside-8086-processors-instruction.html#fn:pc
In fact, anyone who hasn't should read the entire series on the 8086,
https://www.righto.com/p/index.html
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2024-05-29 12:33 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20240528095522.509667-1-kirill.shutemov@linux.intel.com>
2024-05-28 10:01 ` [PATCHv11 00/19] x86/tdx: Add kexec support Rafael J. Wysocki
[not found] ` <20240528095522.509667-7-kirill.shutemov@linux.intel.com>
2024-05-28 11:12 ` [PATCHv11 06/19] x86/kexec: Keep CR4.MCE set during kexec for TDX guest Huang, Kai
2024-05-29 11:39 ` Nikolay Borisov
[not found] ` <20240528095522.509667-2-kirill.shutemov@linux.intel.com>
2024-05-28 13:47 ` [PATCHv11 01/19] x86/acpi: Extract ACPI MADT wakeup code into a separate file Borislav Petkov
[not found] ` <20240528095522.509667-11-kirill.shutemov@linux.intel.com>
2024-05-29 10:42 ` [PATCHv11 10/19] x86/mm: Add callbacks to prepare encrypted memory for kexec Borislav Petkov
[not found] ` <20240602123903.2121883-1-kirill.shutemov@linux.intel.com>
2024-06-02 12:42 ` [PATCHv11.1 " Kirill A. Shutemov
2024-06-04 16:16 ` [PATCHv11 " Dave Hansen
[not found] ` <20240528095522.509667-6-kirill.shutemov@linux.intel.com>
2024-05-29 10:47 ` [PATCHv11 05/19] x86/relocate_kernel: Use named labels for less confusion Nikolay Borisov
2024-05-29 11:17 ` Kirill A. Shutemov
2024-05-29 11:28 ` Borislav Petkov
2024-05-29 12:33 ` Andrew Cooper [this message]
2024-05-29 15:15 ` Borislav Petkov
2024-06-04 0:24 ` H. Peter Anvin
2024-06-04 9:15 ` Borislav Petkov
2024-06-04 15:21 ` Kirill A. Shutemov
2024-06-04 17:57 ` Borislav Petkov
2024-06-11 18:26 ` H. Peter Anvin
2024-06-12 9:22 ` Kirill A. Shutemov
2024-06-12 23:06 ` Andrew Cooper
2024-06-12 23:25 ` H. Peter Anvin
2024-06-03 14:43 ` H. Peter Anvin
2024-06-12 12:10 ` Nikolay Borisov
2024-06-03 22:43 ` H. Peter Anvin
2024-05-30 23:36 ` [PATCH v7 0/3] x86/snp: Add kexec support Ashish Kalra
2024-05-30 23:36 ` [PATCH v7 1/3] efi/x86: Fix EFI memory map corruption with kexec Ashish Kalra
2024-05-31 9:12 ` Alexander Kuleshov
2024-06-03 8:56 ` Borislav Petkov
2024-06-03 13:06 ` Kalra, Ashish
2024-06-03 13:39 ` Mike Rapoport
2024-06-03 14:01 ` Kalra, Ashish
2024-06-03 14:46 ` Borislav Petkov
2024-06-03 15:31 ` Mike Rapoport
2024-06-03 16:48 ` Kalra, Ashish
2024-06-03 16:57 ` Borislav Petkov
2024-06-03 17:08 ` Kalra, Ashish
2024-06-03 17:12 ` Borislav Petkov
2024-06-04 22:12 ` Kalra, Ashish
2024-06-04 22:35 ` Kalra, Ashish
2024-06-05 1:48 ` Dave Young
2024-06-05 1:52 ` Dave Young
2024-06-05 1:58 ` Dave Young
2024-06-05 2:08 ` Kalra, Ashish
2024-06-05 2:28 ` Dave Young
2024-06-05 11:09 ` Borislav Petkov
2024-06-06 1:52 ` Dave Young
2024-06-05 2:14 ` Kalra, Ashish
2024-06-03 17:05 ` Kalra, Ashish
2024-06-03 17:10 ` Borislav Petkov
2024-06-04 1:23 ` Dave Young
2024-06-04 9:43 ` Borislav Petkov
2024-06-04 11:09 ` Dave Young
2024-06-04 18:02 ` Borislav Petkov
2024-06-05 2:53 ` Dave Young
2024-06-05 7:42 ` Borislav Petkov
2024-06-05 8:17 ` Ard Biesheuvel
2024-06-05 11:15 ` Borislav Petkov
2024-06-03 15:29 ` Mike Rapoport
2024-06-03 16:56 ` Kalra, Ashish
2024-06-03 17:41 ` Mike Rapoport
2024-05-30 23:37 ` [PATCH v7 2/3] x86/boot/compressed: Skip Video Memory access in Decompressor for SEV-ES/SNP Ashish Kalra
2024-06-05 20:14 ` Borislav Petkov
2024-05-30 23:37 ` [PATCH v7 3/3] x86/snp: Convert shared memory back to private on kexec Ashish Kalra
[not found] ` <20240528095522.509667-12-kirill.shutemov@linux.intel.com>
2024-05-31 15:14 ` [PATCHv11 11/19] x86/tdx: " Borislav Petkov
2024-05-31 17:34 ` Kalra, Ashish
2024-05-31 18:06 ` Borislav Petkov
2024-06-02 14:20 ` Kirill A. Shutemov
[not found] ` <20240602142303.3263551-1-kirill.shutemov@linux.intel.com>
2024-06-03 8:37 ` [PATCHv11.1 " Borislav Petkov
2024-06-04 15:32 ` Kirill A. Shutemov
2024-06-04 15:47 ` Dave Hansen
2024-06-04 16:14 ` Kirill A. Shutemov
2024-06-04 18:05 ` Borislav Petkov
2024-06-05 12:21 ` Kirill A. Shutemov
2024-06-05 16:24 ` Borislav Petkov
2024-06-06 12:39 ` Kirill A. Shutemov
2024-06-04 16:27 ` [PATCHv11 " Dave Hansen
2024-06-05 12:43 ` Kirill A. Shutemov
2024-06-05 16:05 ` Dave Hansen
[not found] ` <20240528095522.509667-19-kirill.shutemov@linux.intel.com>
2024-06-03 8:39 ` [PATCHv11 18/19] x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method Borislav Petkov
2024-06-07 15:14 ` Kirill A. Shutemov
2024-06-10 13:40 ` Borislav Petkov
2024-06-10 14:01 ` Kirill A. Shutemov
2024-06-11 15:47 ` Kirill A. Shutemov
2024-06-11 19:46 ` Borislav Petkov
2024-06-12 9:24 ` Kirill A. Shutemov
2024-06-12 9:29 ` Borislav Petkov
2024-06-13 13:41 ` Kirill A. Shutemov
2024-06-13 14:56 ` Borislav Petkov
2024-06-14 14:06 ` Tom Lendacky
2024-06-18 12:20 ` Kirill A. Shutemov
2024-06-21 13:38 ` Borislav Petkov
[not found] ` <20240528095522.509667-10-kirill.shutemov@linux.intel.com>
2024-06-04 16:08 ` [PATCHv11 09/19] x86/tdx: Account shared memory Dave Hansen
2024-06-04 16:24 ` Kirill A. Shutemov
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=55bc0649-c017-49ab-905d-212f140a403f@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=adrian.hunter@intel.com \
--cc=ardb@kernel.org \
--cc=ashish.kalra@amd.com \
--cc=bhe@redhat.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=elena.reshetova@intel.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jun.nakajima@intel.com \
--cc=kai.huang@intel.com \
--cc=kexec@lists.infradead.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=kys@microsoft.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nik.borisov@suse.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=rick.p.edgecombe@intel.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox