All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Cleanup vmlinux.lds.S
@ 2024-03-13  7:58 Wei Yang
  2024-03-13  7:58 ` [PATCH 1/4] vmlinux.lds.h: fix a typo in comment Wei Yang
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-13  7:58 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel, Wei Yang

To support 32/64 bits system, we have some definition conditionally. while
some definition is duplicated:

* __PHYSICAL_START has the same definition as LOAD_PHYSICAL_ADDR
* LOAD_OFFSET could be defined directly to __START_KERNEL_map 

After these cleanup, we could reduce some complexity of vmlinux.lds.S.

Wei Yang (4):
  vmlinux.lds.h: fix a typo in comment
  x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET
  x86/vmlinux.lds.S: take __START_KERNEL out conditional definition

 arch/x86/include/asm/boot.h       | 5 -----
 arch/x86/include/asm/page_types.h | 8 +++++---
 arch/x86/kernel/vmlinux.lds.S     | 7 +------
 include/asm-generic/vmlinux.lds.h | 2 +-
 4 files changed, 7 insertions(+), 15 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/4] vmlinux.lds.h: fix a typo in comment
  2024-03-13  7:58 [PATCH 0/4] Cleanup vmlinux.lds.S Wei Yang
@ 2024-03-13  7:58 ` Wei Yang
  2024-03-13 10:39   ` [tip: x86/build] vmlinux.lds.h: Fix " tip-bot2 for Wei Yang
  2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 19+ messages in thread
From: Wei Yang @ 2024-03-13  7:58 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel, Wei Yang

One extra 'i' is used.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 include/asm-generic/vmlinux.lds.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 5dd3a61d673d..514d3002ad8a 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -3,7 +3,7 @@
  * linker scripts.
  *
  * A minimal linker scripts has following content:
- * [This is a sample, architectures may have special requiriements]
+ * [This is a sample, architectures may have special requirements]
  *
  * OUTPUT_FORMAT(...)
  * OUTPUT_ARCH(...)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13  7:58 [PATCH 0/4] Cleanup vmlinux.lds.S Wei Yang
  2024-03-13  7:58 ` [PATCH 1/4] vmlinux.lds.h: fix a typo in comment Wei Yang
@ 2024-03-13  7:58 ` Wei Yang
  2024-03-13 10:29   ` Ingo Molnar
                     ` (2 more replies)
  2024-03-13  7:58 ` [PATCH 3/4] x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET Wei Yang
  2024-03-13  7:58 ` [PATCH 4/4] x86/vmlinux.lds.S: take __START_KERNEL out conditional definition Wei Yang
  3 siblings, 3 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-13  7:58 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel, Wei Yang

Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
which is only used to define __START_KERNEL.

Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
<asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
<asm/page_types.h>.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 arch/x86/include/asm/boot.h       | 5 -----
 arch/x86/include/asm/page_types.h | 8 +++++---
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
index a38cc0afc90a..12cbc57d0128 100644
--- a/arch/x86/include/asm/boot.h
+++ b/arch/x86/include/asm/boot.h
@@ -6,11 +6,6 @@
 #include <asm/pgtable_types.h>
 #include <uapi/asm/boot.h>
 
-/* Physical address where kernel should be loaded. */
-#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
-				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
-				& ~(CONFIG_PHYSICAL_ALIGN - 1))
-
 /* Minimum kernel alignment, as a power of two */
 #ifdef CONFIG_X86_64
 # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
index 86bd4311daf8..acc1620fd121 100644
--- a/arch/x86/include/asm/page_types.h
+++ b/arch/x86/include/asm/page_types.h
@@ -31,10 +31,12 @@
 
 #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
 
-#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
-				      CONFIG_PHYSICAL_ALIGN)
+/* Physical address where kernel should be loaded. */
+#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
+				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
+				& ~(CONFIG_PHYSICAL_ALIGN - 1))
 
-#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
+#define __START_KERNEL		(__START_KERNEL_map + LOAD_PHYSICAL_ADDR)
 
 #ifdef CONFIG_X86_64
 #include <asm/page_64_types.h>
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 3/4] x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET
  2024-03-13  7:58 [PATCH 0/4] Cleanup vmlinux.lds.S Wei Yang
  2024-03-13  7:58 ` [PATCH 1/4] vmlinux.lds.h: fix a typo in comment Wei Yang
  2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
@ 2024-03-13  7:58 ` Wei Yang
  2024-03-13 10:39   ` [tip: x86/build] x86/vmlinux.lds.S: Remove " tip-bot2 for Wei Yang
  2024-03-13  7:58 ` [PATCH 4/4] x86/vmlinux.lds.S: take __START_KERNEL out conditional definition Wei Yang
  3 siblings, 1 reply; 19+ messages in thread
From: Wei Yang @ 2024-03-13  7:58 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel, Wei Yang

In vmlinux.lds.S, we define LOAD_OFFSET conditionally to __PAGE_OFFSET
or __START_KERNEL_map. While __START_KERNEL_map is already defined to
the same value with the same condition.

So it is fine to define LOAD_OFFSET to __START_KERNEL_map directly.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 arch/x86/kernel/vmlinux.lds.S | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 56451fd2099e..88dcf9366949 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -15,11 +15,7 @@
  * put it inside the section definition.
  */
 
-#ifdef CONFIG_X86_32
-#define LOAD_OFFSET __PAGE_OFFSET
-#else
 #define LOAD_OFFSET __START_KERNEL_map
-#endif
 
 #define RUNTIME_DISCARD_EXIT
 #define EMITS_PT_NOTE
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 4/4] x86/vmlinux.lds.S: take __START_KERNEL out conditional definition
  2024-03-13  7:58 [PATCH 0/4] Cleanup vmlinux.lds.S Wei Yang
                   ` (2 preceding siblings ...)
  2024-03-13  7:58 ` [PATCH 3/4] x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET Wei Yang
@ 2024-03-13  7:58 ` Wei Yang
  2024-03-13 10:39   ` [tip: x86/build] x86/vmlinux.lds.S: Take " tip-bot2 for Wei Yang
  3 siblings, 1 reply; 19+ messages in thread
From: Wei Yang @ 2024-03-13  7:58 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel, Wei Yang

If CONFIG_X86_32, the section start address is defined to be
"LOAD_OFFSET + LOAD_PHYSICAL_ADDR", which is the same as
__START_KERNEL_map.

Let's take it out to remove the complexity.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 arch/x86/kernel/vmlinux.lds.S | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 88dcf9366949..a20409b0a3f2 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -110,11 +110,10 @@ PHDRS {
 
 SECTIONS
 {
+	. = __START_KERNEL;
 #ifdef CONFIG_X86_32
-	. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
 	phys_startup_32 = ABSOLUTE(startup_32 - LOAD_OFFSET);
 #else
-	. = __START_KERNEL;
 	phys_startup_64 = ABSOLUTE(startup_64 - LOAD_OFFSET);
 #endif
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
@ 2024-03-13 10:29   ` Ingo Molnar
  2024-03-14  0:54     ` Wei Yang
  2024-03-14  3:23     ` Wei Yang
  2024-03-13 10:29   ` Nikolay Borisov
  2024-03-22 10:59   ` [tip: x86/build] x86/boot: Replace " tip-bot2 for Wei Yang
  2 siblings, 2 replies; 19+ messages in thread
From: Ingo Molnar @ 2024-03-13 10:29 UTC (permalink / raw)
  To: Wei Yang; +Cc: tglx, mingo, bp, dave.hansen, x86, linux-kernel


* Wei Yang <richard.weiyang@gmail.com> wrote:

> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
> which is only used to define __START_KERNEL.
> 
> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
> <asm/page_types.h>.
> 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> ---
>  arch/x86/include/asm/boot.h       | 5 -----
>  arch/x86/include/asm/page_types.h | 8 +++++---
>  2 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
> index a38cc0afc90a..12cbc57d0128 100644
> --- a/arch/x86/include/asm/boot.h
> +++ b/arch/x86/include/asm/boot.h
> @@ -6,11 +6,6 @@
>  #include <asm/pgtable_types.h>
>  #include <uapi/asm/boot.h>
>  
> -/* Physical address where kernel should be loaded. */
> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
> -
>  /* Minimum kernel alignment, as a power of two */
>  #ifdef CONFIG_X86_64
>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
> index 86bd4311daf8..acc1620fd121 100644
> --- a/arch/x86/include/asm/page_types.h
> +++ b/arch/x86/include/asm/page_types.h
> @@ -31,10 +31,12 @@
>  
>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>  
> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
> -				      CONFIG_PHYSICAL_ALIGN)
> +/* Physical address where kernel should be loaded. */
> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))

I agree with this simplification, but the ALIGN() expression is far easier 
to read, so please keep that one instead of the open-coded version.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
  2024-03-13 10:29   ` Ingo Molnar
@ 2024-03-13 10:29   ` Nikolay Borisov
  2024-03-14  0:54     ` Wei Yang
  2024-03-22 10:59   ` [tip: x86/build] x86/boot: Replace " tip-bot2 for Wei Yang
  2 siblings, 1 reply; 19+ messages in thread
From: Nikolay Borisov @ 2024-03-13 10:29 UTC (permalink / raw)
  To: Wei Yang, tglx, mingo, bp, dave.hansen; +Cc: x86, linux-kernel



On 13.03.24 г. 9:58 ч., Wei Yang wrote:
> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
> which is only used to define __START_KERNEL.
> 
> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
> <asm/page_types.h>.
> 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> ---
>   arch/x86/include/asm/boot.h       | 5 -----
>   arch/x86/include/asm/page_types.h | 8 +++++---
>   2 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
> index a38cc0afc90a..12cbc57d0128 100644
> --- a/arch/x86/include/asm/boot.h
> +++ b/arch/x86/include/asm/boot.h
> @@ -6,11 +6,6 @@
>   #include <asm/pgtable_types.h>
>   #include <uapi/asm/boot.h>
>   
> -/* Physical address where kernel should be loaded. */
> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
> -
>   /* Minimum kernel alignment, as a power of two */
>   #ifdef CONFIG_X86_64
>   # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
> index 86bd4311daf8..acc1620fd121 100644
> --- a/arch/x86/include/asm/page_types.h
> +++ b/arch/x86/include/asm/page_types.h
> @@ -31,10 +31,12 @@
>   
>   #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>   
> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
> -				      CONFIG_PHYSICAL_ALIGN)
> +/* Physical address where kernel should be loaded. */
> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))

Why don't you simply define LOAD_PHYSICAL_ADDR via 
ALIGN(CONFIG_PHYSICAL_START, CONFIG_PHYSICAL_ALING) it's way more readable.

>   
> -#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
> +#define __START_KERNEL		(__START_KERNEL_map + LOAD_PHYSICAL_ADDR)
>   
>   #ifdef CONFIG_X86_64
>   #include <asm/page_64_types.h>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [tip: x86/build] x86/vmlinux.lds.S: Take __START_KERNEL out conditional definition
  2024-03-13  7:58 ` [PATCH 4/4] x86/vmlinux.lds.S: take __START_KERNEL out conditional definition Wei Yang
@ 2024-03-13 10:39   ` tip-bot2 for Wei Yang
  0 siblings, 0 replies; 19+ messages in thread
From: tip-bot2 for Wei Yang @ 2024-03-13 10:39 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: Wei Yang, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the x86/build branch of tip:

Commit-ID:     9b67ce2c121fbf11c0c7b6216c08200fda23c9af
Gitweb:        https://git.kernel.org/tip/9b67ce2c121fbf11c0c7b6216c08200fda23c9af
Author:        Wei Yang <richard.weiyang@gmail.com>
AuthorDate:    Wed, 13 Mar 2024 07:58:39 
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 13 Mar 2024 11:29:11 +01:00

x86/vmlinux.lds.S: Take __START_KERNEL out conditional definition

If CONFIG_X86_32=y, the section start address is defined to be
"LOAD_OFFSET + LOAD_PHYSICAL_ADDR", which is the same as
__START_KERNEL_map.

Unify it with the 64-bit definition to simplify the code.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240313075839.8321-5-richard.weiyang@gmail.com
---
 arch/x86/kernel/vmlinux.lds.S | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 88dcf93..a20409b 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -110,11 +110,10 @@ PHDRS {
 
 SECTIONS
 {
+	. = __START_KERNEL;
 #ifdef CONFIG_X86_32
-	. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
 	phys_startup_32 = ABSOLUTE(startup_32 - LOAD_OFFSET);
 #else
-	. = __START_KERNEL;
 	phys_startup_64 = ABSOLUTE(startup_64 - LOAD_OFFSET);
 #endif
 

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [tip: x86/build] x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET
  2024-03-13  7:58 ` [PATCH 3/4] x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET Wei Yang
@ 2024-03-13 10:39   ` tip-bot2 for Wei Yang
  2024-03-13 13:18     ` Borislav Petkov
  0 siblings, 1 reply; 19+ messages in thread
From: tip-bot2 for Wei Yang @ 2024-03-13 10:39 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: Wei Yang, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the x86/build branch of tip:

Commit-ID:     a5cffd056ef52280c07a7f6a3b3faacf6b318e8e
Gitweb:        https://git.kernel.org/tip/a5cffd056ef52280c07a7f6a3b3faacf6b318e8e
Author:        Wei Yang <richard.weiyang@gmail.com>
AuthorDate:    Wed, 13 Mar 2024 07:58:38 
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 13 Mar 2024 11:29:10 +01:00

x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET

In vmlinux.lds.S, we define LOAD_OFFSET conditionally to __PAGE_OFFSET
or __START_KERNEL_map. While __START_KERNEL_map is already defined to
the same value with the same condition.

So it is fine to define LOAD_OFFSET to __START_KERNEL_map directly.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240313075839.8321-4-richard.weiyang@gmail.com
---
 arch/x86/kernel/vmlinux.lds.S | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 56451fd..88dcf93 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -15,11 +15,7 @@
  * put it inside the section definition.
  */
 
-#ifdef CONFIG_X86_32
-#define LOAD_OFFSET __PAGE_OFFSET
-#else
 #define LOAD_OFFSET __START_KERNEL_map
-#endif
 
 #define RUNTIME_DISCARD_EXIT
 #define EMITS_PT_NOTE

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [tip: x86/build] vmlinux.lds.h: Fix a typo in comment
  2024-03-13  7:58 ` [PATCH 1/4] vmlinux.lds.h: fix a typo in comment Wei Yang
@ 2024-03-13 10:39   ` tip-bot2 for Wei Yang
  0 siblings, 0 replies; 19+ messages in thread
From: tip-bot2 for Wei Yang @ 2024-03-13 10:39 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: Wei Yang, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the x86/build branch of tip:

Commit-ID:     1793f69326266269a8117d3f5324ac78db18931c
Gitweb:        https://git.kernel.org/tip/1793f69326266269a8117d3f5324ac78db18931c
Author:        Wei Yang <richard.weiyang@gmail.com>
AuthorDate:    Wed, 13 Mar 2024 07:58:36 
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 13 Mar 2024 11:29:10 +01:00

vmlinux.lds.h: Fix a typo in comment

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240313075839.8321-2-richard.weiyang@gmail.com
---
 include/asm-generic/vmlinux.lds.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 5dd3a61..514d300 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -3,7 +3,7 @@
  * linker scripts.
  *
  * A minimal linker scripts has following content:
- * [This is a sample, architectures may have special requiriements]
+ * [This is a sample, architectures may have special requirements]
  *
  * OUTPUT_FORMAT(...)
  * OUTPUT_ARCH(...)

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [tip: x86/build] x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET
  2024-03-13 10:39   ` [tip: x86/build] x86/vmlinux.lds.S: Remove " tip-bot2 for Wei Yang
@ 2024-03-13 13:18     ` Borislav Petkov
  2024-03-14  0:59       ` Wei Yang
  0 siblings, 1 reply; 19+ messages in thread
From: Borislav Petkov @ 2024-03-13 13:18 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-tip-commits, Wei Yang, Ingo Molnar, x86

On Wed, Mar 13, 2024 at 10:39:58AM -0000, tip-bot2 for Wei Yang wrote:
> -#ifdef CONFIG_X86_32
> -#define LOAD_OFFSET __PAGE_OFFSET
> -#else
>  #define LOAD_OFFSET __START_KERNEL_map
> -#endif

And, as a next step, you can get rid of LOAD_OFFSET completely and use
__START_KERNEL_map everywhere.

Even less ifdeffery.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13 10:29   ` Ingo Molnar
@ 2024-03-14  0:54     ` Wei Yang
  2024-03-14  3:23     ` Wei Yang
  1 sibling, 0 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-14  0:54 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Wei Yang, tglx, mingo, bp, dave.hansen, x86, linux-kernel

On Wed, Mar 13, 2024 at 11:29:33AM +0100, Ingo Molnar wrote:
>
>* Wei Yang <richard.weiyang@gmail.com> wrote:
>
>> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
>> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
>> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
>> which is only used to define __START_KERNEL.
>> 
>> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
>> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
>> <asm/page_types.h>.
>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> ---
>>  arch/x86/include/asm/boot.h       | 5 -----
>>  arch/x86/include/asm/page_types.h | 8 +++++---
>>  2 files changed, 5 insertions(+), 8 deletions(-)
>> 
>> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
>> index a38cc0afc90a..12cbc57d0128 100644
>> --- a/arch/x86/include/asm/boot.h
>> +++ b/arch/x86/include/asm/boot.h
>> @@ -6,11 +6,6 @@
>>  #include <asm/pgtable_types.h>
>>  #include <uapi/asm/boot.h>
>>  
>> -/* Physical address where kernel should be loaded. */
>> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>> -
>>  /* Minimum kernel alignment, as a power of two */
>>  #ifdef CONFIG_X86_64
>>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
>> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
>> index 86bd4311daf8..acc1620fd121 100644
>> --- a/arch/x86/include/asm/page_types.h
>> +++ b/arch/x86/include/asm/page_types.h
>> @@ -31,10 +31,12 @@
>>  
>>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>>  
>> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
>> -				      CONFIG_PHYSICAL_ALIGN)
>> +/* Physical address where kernel should be loaded. */
>> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>
>I agree with this simplification, but the ALIGN() expression is far easier 
>to read, so please keep that one instead of the open-coded version.

Sure, will send v2.

>
>Thanks,
>
>	Ingo

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13 10:29   ` Nikolay Borisov
@ 2024-03-14  0:54     ` Wei Yang
  0 siblings, 0 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-14  0:54 UTC (permalink / raw)
  To: Nikolay Borisov; +Cc: Wei Yang, tglx, mingo, bp, dave.hansen, x86, linux-kernel

On Wed, Mar 13, 2024 at 12:29:37PM +0200, Nikolay Borisov wrote:
>
>
>On 13.03.24 г. 9:58 ч., Wei Yang wrote:
>> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
>> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
>> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
>> which is only used to define __START_KERNEL.
>> 
>> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
>> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
>> <asm/page_types.h>.
>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> ---
>>   arch/x86/include/asm/boot.h       | 5 -----
>>   arch/x86/include/asm/page_types.h | 8 +++++---
>>   2 files changed, 5 insertions(+), 8 deletions(-)
>> 
>> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
>> index a38cc0afc90a..12cbc57d0128 100644
>> --- a/arch/x86/include/asm/boot.h
>> +++ b/arch/x86/include/asm/boot.h
>> @@ -6,11 +6,6 @@
>>   #include <asm/pgtable_types.h>
>>   #include <uapi/asm/boot.h>
>> -/* Physical address where kernel should be loaded. */
>> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>> -
>>   /* Minimum kernel alignment, as a power of two */
>>   #ifdef CONFIG_X86_64
>>   # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
>> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
>> index 86bd4311daf8..acc1620fd121 100644
>> --- a/arch/x86/include/asm/page_types.h
>> +++ b/arch/x86/include/asm/page_types.h
>> @@ -31,10 +31,12 @@
>>   #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
>> -				      CONFIG_PHYSICAL_ALIGN)
>> +/* Physical address where kernel should be loaded. */
>> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>
>Why don't you simply define LOAD_PHYSICAL_ADDR via
>ALIGN(CONFIG_PHYSICAL_START, CONFIG_PHYSICAL_ALING) it's way more readable.
>

Sure, will do it.

>> -#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
>> +#define __START_KERNEL		(__START_KERNEL_map + LOAD_PHYSICAL_ADDR)
>>   #ifdef CONFIG_X86_64
>>   #include <asm/page_64_types.h>

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [tip: x86/build] x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET
  2024-03-13 13:18     ` Borislav Petkov
@ 2024-03-14  0:59       ` Wei Yang
  0 siblings, 0 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-14  0:59 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: linux-kernel, linux-tip-commits, Wei Yang, Ingo Molnar, x86

On Wed, Mar 13, 2024 at 02:18:33PM +0100, Borislav Petkov wrote:
>On Wed, Mar 13, 2024 at 10:39:58AM -0000, tip-bot2 for Wei Yang wrote:
>> -#ifdef CONFIG_X86_32
>> -#define LOAD_OFFSET __PAGE_OFFSET
>> -#else
>>  #define LOAD_OFFSET __START_KERNEL_map
>> -#endif
>
>And, as a next step, you can get rid of LOAD_OFFSET completely and use
>__START_KERNEL_map everywhere.
>
>Even less ifdeffery.

You mean remove the definition of LOAD_OFFSET?

I have tried this, but I found this is used in vmlinux.lds.h. So I don't
figure out a way to get rid of it.

>
>-- 
>Regards/Gruss,
>    Boris.
>
>https://people.kernel.org/tglx/notes-about-netiquette

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13 10:29   ` Ingo Molnar
  2024-03-14  0:54     ` Wei Yang
@ 2024-03-14  3:23     ` Wei Yang
  2024-03-14  9:25       ` Ingo Molnar
  1 sibling, 1 reply; 19+ messages in thread
From: Wei Yang @ 2024-03-14  3:23 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Wei Yang, tglx, mingo, bp, dave.hansen, x86, linux-kernel

On Wed, Mar 13, 2024 at 11:29:33AM +0100, Ingo Molnar wrote:
>
>* Wei Yang <richard.weiyang@gmail.com> wrote:
>
>> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
>> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
>> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
>> which is only used to define __START_KERNEL.
>> 
>> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
>> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
>> <asm/page_types.h>.
>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> ---
>>  arch/x86/include/asm/boot.h       | 5 -----
>>  arch/x86/include/asm/page_types.h | 8 +++++---
>>  2 files changed, 5 insertions(+), 8 deletions(-)
>> 
>> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
>> index a38cc0afc90a..12cbc57d0128 100644
>> --- a/arch/x86/include/asm/boot.h
>> +++ b/arch/x86/include/asm/boot.h
>> @@ -6,11 +6,6 @@
>>  #include <asm/pgtable_types.h>
>>  #include <uapi/asm/boot.h>
>>  
>> -/* Physical address where kernel should be loaded. */
>> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>> -
>>  /* Minimum kernel alignment, as a power of two */
>>  #ifdef CONFIG_X86_64
>>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
>> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
>> index 86bd4311daf8..acc1620fd121 100644
>> --- a/arch/x86/include/asm/page_types.h
>> +++ b/arch/x86/include/asm/page_types.h
>> @@ -31,10 +31,12 @@
>>  
>>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>>  
>> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
>> -				      CONFIG_PHYSICAL_ALIGN)
>> +/* Physical address where kernel should be loaded. */
>> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>
>I agree with this simplification, but the ALIGN() expression is far easier 
>to read, so please keep that one instead of the open-coded version.
>

I just tried to define LOAD_PHYSICAL_ADDR by ALIGN, but face a compile error
on compressed/head_[32|64].o.

$ make arch/x86/boot/compressed/head_64.o
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  AS      arch/x86/boot/compressed/head_64.o
arch/x86/boot/compressed/head_64.S: Assembler messages:
arch/x86/boot/compressed/head_64.S:154: Error: junk (0x1000000,0x200000)' after expression
arch/x86/boot/compressed/head_64.S:154: Error: number of operands mismatch for 16' after expression
arch/x86/boot/compressed/head_64.S:157: Error: junk mov'
arch/x86/boot/compressed/head_64.S:330: Error: junk (0x1000000,0x200000)' after expression
arch/x86/boot/compressed/head_64.S:330: Error: number of operands mismatch for 16' after expression
arch/x86/boot/compressed/head_64.S:333: Error: junk movq'

If my understanding is correct, the reason is linkage.h defines ALIGN, which
is ".balign xxx". Maybe this is why original LOAD_PHYSICAL_ADDR doesn't use
ALIGN.

So is this ok to keep the open-coded definition?

>Thanks,
>
>	Ingo

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-14  3:23     ` Wei Yang
@ 2024-03-14  9:25       ` Ingo Molnar
  2024-03-15  0:57         ` Wei Yang
  0 siblings, 1 reply; 19+ messages in thread
From: Ingo Molnar @ 2024-03-14  9:25 UTC (permalink / raw)
  To: Wei Yang; +Cc: tglx, mingo, bp, dave.hansen, x86, linux-kernel


* Wei Yang <richard.weiyang@gmail.com> wrote:

> On Wed, Mar 13, 2024 at 11:29:33AM +0100, Ingo Molnar wrote:
> >
> >* Wei Yang <richard.weiyang@gmail.com> wrote:
> >
> >> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
> >> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
> >> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
> >> which is only used to define __START_KERNEL.
> >> 
> >> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
> >> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
> >> <asm/page_types.h>.
> >> 
> >> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> >> ---
> >>  arch/x86/include/asm/boot.h       | 5 -----
> >>  arch/x86/include/asm/page_types.h | 8 +++++---
> >>  2 files changed, 5 insertions(+), 8 deletions(-)
> >> 
> >> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
> >> index a38cc0afc90a..12cbc57d0128 100644
> >> --- a/arch/x86/include/asm/boot.h
> >> +++ b/arch/x86/include/asm/boot.h
> >> @@ -6,11 +6,6 @@
> >>  #include <asm/pgtable_types.h>
> >>  #include <uapi/asm/boot.h>
> >>  
> >> -/* Physical address where kernel should be loaded. */
> >> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> >> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> >> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
> >> -
> >>  /* Minimum kernel alignment, as a power of two */
> >>  #ifdef CONFIG_X86_64
> >>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
> >> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
> >> index 86bd4311daf8..acc1620fd121 100644
> >> --- a/arch/x86/include/asm/page_types.h
> >> +++ b/arch/x86/include/asm/page_types.h
> >> @@ -31,10 +31,12 @@
> >>  
> >>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
> >>  
> >> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
> >> -				      CONFIG_PHYSICAL_ALIGN)
> >> +/* Physical address where kernel should be loaded. */
> >> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
> >> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
> >> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
> >
> >I agree with this simplification, but the ALIGN() expression is far easier 
> >to read, so please keep that one instead of the open-coded version.
> >
> 
> I just tried to define LOAD_PHYSICAL_ADDR by ALIGN, but face a compile error
> on compressed/head_[32|64].o.
> 
> $ make arch/x86/boot/compressed/head_64.o
>   CALL    scripts/checksyscalls.sh
>   DESCEND objtool
>   INSTALL libsubcmd_headers
>   AS      arch/x86/boot/compressed/head_64.o
> arch/x86/boot/compressed/head_64.S: Assembler messages:
> arch/x86/boot/compressed/head_64.S:154: Error: junk (0x1000000,0x200000)' after expression
> arch/x86/boot/compressed/head_64.S:154: Error: number of operands mismatch for 16' after expression
> arch/x86/boot/compressed/head_64.S:157: Error: junk mov'
> arch/x86/boot/compressed/head_64.S:330: Error: junk (0x1000000,0x200000)' after expression
> arch/x86/boot/compressed/head_64.S:330: Error: number of operands mismatch for 16' after expression
> arch/x86/boot/compressed/head_64.S:333: Error: junk movq'
> 
> If my understanding is correct, the reason is linkage.h defines ALIGN, which
> is ".balign xxx". Maybe this is why original LOAD_PHYSICAL_ADDR doesn't use
> ALIGN.

linkage.h defines __ALIGN, which is different from ALIGN().

Also, a number of .S files seem to be using some sort of ALIGN() method 
within arch/x86/, according to:

   git grep 'ALIGN(' -- 'arch/x86/*.S'

> So is this ok to keep the open-coded definition?

It would be nice to figure out why ALIGN() appears to be working in other 
cases in .S files, while not in this case.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-14  9:25       ` Ingo Molnar
@ 2024-03-15  0:57         ` Wei Yang
  2024-03-16 17:44           ` Wei Yang
  0 siblings, 1 reply; 19+ messages in thread
From: Wei Yang @ 2024-03-15  0:57 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Wei Yang, tglx, mingo, bp, dave.hansen, x86, linux-kernel

On Thu, Mar 14, 2024 at 10:25:53AM +0100, Ingo Molnar wrote:
>
>* Wei Yang <richard.weiyang@gmail.com> wrote:
>
>> On Wed, Mar 13, 2024 at 11:29:33AM +0100, Ingo Molnar wrote:
>> >
>> >* Wei Yang <richard.weiyang@gmail.com> wrote:
>> >
>> >> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
>> >> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
>> >> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
>> >> which is only used to define __START_KERNEL.
>> >> 
>> >> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
>> >> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
>> >> <asm/page_types.h>.
>> >> 
>> >> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> >> ---
>> >>  arch/x86/include/asm/boot.h       | 5 -----
>> >>  arch/x86/include/asm/page_types.h | 8 +++++---
>> >>  2 files changed, 5 insertions(+), 8 deletions(-)
>> >> 
>> >> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
>> >> index a38cc0afc90a..12cbc57d0128 100644
>> >> --- a/arch/x86/include/asm/boot.h
>> >> +++ b/arch/x86/include/asm/boot.h
>> >> @@ -6,11 +6,6 @@
>> >>  #include <asm/pgtable_types.h>
>> >>  #include <uapi/asm/boot.h>
>> >>  
>> >> -/* Physical address where kernel should be loaded. */
>> >> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> >> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> >> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>> >> -
>> >>  /* Minimum kernel alignment, as a power of two */
>> >>  #ifdef CONFIG_X86_64
>> >>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
>> >> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
>> >> index 86bd4311daf8..acc1620fd121 100644
>> >> --- a/arch/x86/include/asm/page_types.h
>> >> +++ b/arch/x86/include/asm/page_types.h
>> >> @@ -31,10 +31,12 @@
>> >>  
>> >>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>> >>  
>> >> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
>> >> -				      CONFIG_PHYSICAL_ALIGN)
>> >> +/* Physical address where kernel should be loaded. */
>> >> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>> >> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>> >> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>> >
>> >I agree with this simplification, but the ALIGN() expression is far easier 
>> >to read, so please keep that one instead of the open-coded version.
>> >
>> 
>> I just tried to define LOAD_PHYSICAL_ADDR by ALIGN, but face a compile error
>> on compressed/head_[32|64].o.
>> 
>> $ make arch/x86/boot/compressed/head_64.o
>>   CALL    scripts/checksyscalls.sh
>>   DESCEND objtool
>>   INSTALL libsubcmd_headers
>>   AS      arch/x86/boot/compressed/head_64.o
>> arch/x86/boot/compressed/head_64.S: Assembler messages:
>> arch/x86/boot/compressed/head_64.S:154: Error: junk (0x1000000,0x200000)' after expression
>> arch/x86/boot/compressed/head_64.S:154: Error: number of operands mismatch for 16' after expression
>> arch/x86/boot/compressed/head_64.S:157: Error: junk mov'
>> arch/x86/boot/compressed/head_64.S:330: Error: junk (0x1000000,0x200000)' after expression
>> arch/x86/boot/compressed/head_64.S:330: Error: number of operands mismatch for 16' after expression
>> arch/x86/boot/compressed/head_64.S:333: Error: junk movq'
>> 
>> If my understanding is correct, the reason is linkage.h defines ALIGN, which
>> is ".balign xxx". Maybe this is why original LOAD_PHYSICAL_ADDR doesn't use
>> ALIGN.
>
>linkage.h defines __ALIGN, which is different from ALIGN().
>

linkage.h defines ALIGN to __ALIGN which is different from what we expect.

>Also, a number of .S files seem to be using some sort of ALIGN() method 
>within arch/x86/, according to:
>
>   git grep 'ALIGN(' -- 'arch/x86/*.S'

I tried below command by append '\<' to ALIGN 

    git grep '\<ALIGN(' -- 'arch/x86/*.S'

>
>> So is this ok to keep the open-coded definition?
>
>It would be nice to figure out why ALIGN() appears to be working in other 
>cases in .S files, while not in this case.
>

Here is grep result

arch/x86/boot/compressed/vmlinux.lds.S:	.data :	ALIGN(0x1000) {
arch/x86/boot/compressed/vmlinux.lds.S:		. = ALIGN(. + 4, 0x200);
arch/x86/boot/compressed/vmlinux.lds.S:	. = ALIGN(L1_CACHE_BYTES);
arch/x86/boot/compressed/vmlinux.lds.S:		. = ALIGN(8);	/* For convenience during zeroing */
arch/x86/boot/compressed/vmlinux.lds.S:       . = ALIGN(PAGE_SIZE);
arch/x86/boot/compressed/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);	/* keep ZO size page aligned */
arch/x86/kernel/vmlinux.lds.S:#define X86_ALIGN_RODATA_BEGIN	. = ALIGN(HPAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(HPAGE_SIZE);				\
arch/x86/kernel/vmlinux.lds.S:#define ALIGN_ENTRY_TEXT_BEGIN	. = ALIGN(PMD_SIZE);
arch/x86/kernel/vmlinux.lds.S:#define ALIGN_ENTRY_TEXT_END	. = ALIGN(PMD_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PMD_SIZE);					\
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);					\
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PMD_SIZE);					\
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);				\
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);		/* keep VO_INIT_SIZE page aligned */
arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(HPAGE_SIZE);
arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(HPAGE_SIZE);
arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(4);
arch/x86/realmode/rm/realmode.lds.S:		. = ALIGN(16);
arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(PAGE_SIZE);
arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(128);
arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(4);
arch/x86/um/vdso/vdso-layout.lds.S:	. = ALIGN(0x100);

It looks all happens in link script, not assembly source code.

And other grep result with "ALIGN" are:

    SYM_CODE_START_NOALIGN
    SYM_CODE_START_LOCAL_NOALIGN
    SYM_FUNC_START_NOALIGN
    SYM_FUNC_START_LOCAL_NOALIGN
    SYM_INNER_LABEL_ALIGN

which are defined in linkage.h.

>Thanks,
>
>	Ingo

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-15  0:57         ` Wei Yang
@ 2024-03-16 17:44           ` Wei Yang
  0 siblings, 0 replies; 19+ messages in thread
From: Wei Yang @ 2024-03-16 17:44 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: tglx, mingo, bp, dave.hansen, x86, linux-kernel

On Fri, Mar 15, 2024 at 12:57:37AM +0000, Wei Yang wrote:
>On Thu, Mar 14, 2024 at 10:25:53AM +0100, Ingo Molnar wrote:
>>
>>* Wei Yang <richard.weiyang@gmail.com> wrote:
>>
>>> On Wed, Mar 13, 2024 at 11:29:33AM +0100, Ingo Molnar wrote:
>>> >
>>> >* Wei Yang <richard.weiyang@gmail.com> wrote:
>>> >
>>> >> Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
>>> >> CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
>>> >> LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
>>> >> which is only used to define __START_KERNEL.
>>> >> 
>>> >> Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
>>> >> <asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
>>> >> <asm/page_types.h>.
>>> >> 
>>> >> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>>> >> ---
>>> >>  arch/x86/include/asm/boot.h       | 5 -----
>>> >>  arch/x86/include/asm/page_types.h | 8 +++++---
>>> >>  2 files changed, 5 insertions(+), 8 deletions(-)
>>> >> 
>>> >> diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
>>> >> index a38cc0afc90a..12cbc57d0128 100644
>>> >> --- a/arch/x86/include/asm/boot.h
>>> >> +++ b/arch/x86/include/asm/boot.h
>>> >> @@ -6,11 +6,6 @@
>>> >>  #include <asm/pgtable_types.h>
>>> >>  #include <uapi/asm/boot.h>
>>> >>  
>>> >> -/* Physical address where kernel should be loaded. */
>>> >> -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>>> >> -				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>>> >> -				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>>> >> -
>>> >>  /* Minimum kernel alignment, as a power of two */
>>> >>  #ifdef CONFIG_X86_64
>>> >>  # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
>>> >> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
>>> >> index 86bd4311daf8..acc1620fd121 100644
>>> >> --- a/arch/x86/include/asm/page_types.h
>>> >> +++ b/arch/x86/include/asm/page_types.h
>>> >> @@ -31,10 +31,12 @@
>>> >>  
>>> >>  #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
>>> >>  
>>> >> -#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
>>> >> -				      CONFIG_PHYSICAL_ALIGN)
>>> >> +/* Physical address where kernel should be loaded. */
>>> >> +#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
>>> >> +				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
>>> >> +				& ~(CONFIG_PHYSICAL_ALIGN - 1))
>>> >
>>> >I agree with this simplification, but the ALIGN() expression is far easier 
>>> >to read, so please keep that one instead of the open-coded version.
>>> >
>>> 
>>> I just tried to define LOAD_PHYSICAL_ADDR by ALIGN, but face a compile error
>>> on compressed/head_[32|64].o.
>>> 
>>> $ make arch/x86/boot/compressed/head_64.o
>>>   CALL    scripts/checksyscalls.sh
>>>   DESCEND objtool
>>>   INSTALL libsubcmd_headers
>>>   AS      arch/x86/boot/compressed/head_64.o
>>> arch/x86/boot/compressed/head_64.S: Assembler messages:
>>> arch/x86/boot/compressed/head_64.S:154: Error: junk (0x1000000,0x200000)' after expression
>>> arch/x86/boot/compressed/head_64.S:154: Error: number of operands mismatch for 16' after expression
>>> arch/x86/boot/compressed/head_64.S:157: Error: junk mov'
>>> arch/x86/boot/compressed/head_64.S:330: Error: junk (0x1000000,0x200000)' after expression
>>> arch/x86/boot/compressed/head_64.S:330: Error: number of operands mismatch for 16' after expression
>>> arch/x86/boot/compressed/head_64.S:333: Error: junk movq'
>>> 
>>> If my understanding is correct, the reason is linkage.h defines ALIGN, which
>>> is ".balign xxx". Maybe this is why original LOAD_PHYSICAL_ADDR doesn't use
>>> ALIGN.
>>
>>linkage.h defines __ALIGN, which is different from ALIGN().
>>
>
>linkage.h defines ALIGN to __ALIGN which is different from what we expect.
>
>>Also, a number of .S files seem to be using some sort of ALIGN() method 
>>within arch/x86/, according to:
>>
>>   git grep 'ALIGN(' -- 'arch/x86/*.S'
>
>I tried below command by append '\<' to ALIGN 
>
>    git grep '\<ALIGN(' -- 'arch/x86/*.S'
>
>>
>>> So is this ok to keep the open-coded definition?
>>
>>It would be nice to figure out why ALIGN() appears to be working in other 
>>cases in .S files, while not in this case.
>>
>
>Here is grep result
>
>arch/x86/boot/compressed/vmlinux.lds.S:	.data :	ALIGN(0x1000) {
>arch/x86/boot/compressed/vmlinux.lds.S:		. = ALIGN(. + 4, 0x200);
>arch/x86/boot/compressed/vmlinux.lds.S:	. = ALIGN(L1_CACHE_BYTES);
>arch/x86/boot/compressed/vmlinux.lds.S:		. = ALIGN(8);	/* For convenience during zeroing */
>arch/x86/boot/compressed/vmlinux.lds.S:       . = ALIGN(PAGE_SIZE);
>arch/x86/boot/compressed/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);	/* keep ZO size page aligned */
>arch/x86/kernel/vmlinux.lds.S:#define X86_ALIGN_RODATA_BEGIN	. = ALIGN(HPAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(HPAGE_SIZE);				\
>arch/x86/kernel/vmlinux.lds.S:#define ALIGN_ENTRY_TEXT_BEGIN	. = ALIGN(PMD_SIZE);
>arch/x86/kernel/vmlinux.lds.S:#define ALIGN_ENTRY_TEXT_END	. = ALIGN(PMD_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PMD_SIZE);					\
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);					\
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PMD_SIZE);					\
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);				\
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(8);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(PAGE_SIZE);		/* keep VO_INIT_SIZE page aligned */
>arch/x86/kernel/vmlinux.lds.S:	. = ALIGN(HPAGE_SIZE);
>arch/x86/kernel/vmlinux.lds.S:		. = ALIGN(HPAGE_SIZE);
>arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(4);
>arch/x86/realmode/rm/realmode.lds.S:		. = ALIGN(16);
>arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(PAGE_SIZE);
>arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(128);
>arch/x86/realmode/rm/realmode.lds.S:	. = ALIGN(4);
>arch/x86/um/vdso/vdso-layout.lds.S:	. = ALIGN(0x100);
>
>It looks all happens in link script, not assembly source code.
>
>And other grep result with "ALIGN" are:
>
>    SYM_CODE_START_NOALIGN
>    SYM_CODE_START_LOCAL_NOALIGN
>    SYM_FUNC_START_NOALIGN
>    SYM_FUNC_START_LOCAL_NOALIGN
>    SYM_INNER_LABEL_ALIGN
>
>which are defined in linkage.h.
>

Hi, Ingo

Take another look into the usage.

In linkage.h, we have following definition:

    #ifdef __ASSEMBLY__
    
    #ifndef LINKER_SCRIPT
    #define ALIGN __ALIGN
    #endif
    
    #endif

We would include linkage.h from .S and .lds.S. We both define __ASSEMBLY__ in
command line when building these target, but we would define LINKER_SCRIPT
when building .lds from .lds.S. This introduces the different behavior of
ALIGN.

    * For .S, ALING is replaced by __ALIGN and then to .balign xxx
    * For .lds, ALIGN is is not expanded, which is a lds keyword

Also linkage.h may be included in .c, e.g. head64.c. But we don't define
__ASSEMBLY__ in command line, which leads the ALIGN undefined until kernel.h
is included.

>>Thanks,
>>
>>	Ingo
>
>-- 
>Wei Yang
>Help you, Help me

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [tip: x86/build] x86/boot: Replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
  2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
  2024-03-13 10:29   ` Ingo Molnar
  2024-03-13 10:29   ` Nikolay Borisov
@ 2024-03-22 10:59   ` tip-bot2 for Wei Yang
  2 siblings, 0 replies; 19+ messages in thread
From: tip-bot2 for Wei Yang @ 2024-03-22 10:59 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: Wei Yang, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the x86/build branch of tip:

Commit-ID:     29b0aab841da3cade64c7e41e99e9f4645e65fb1
Gitweb:        https://git.kernel.org/tip/29b0aab841da3cade64c7e41e99e9f4645e65fb1
Author:        Wei Yang <richard.weiyang@gmail.com>
AuthorDate:    Wed, 13 Mar 2024 07:58:37 
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Fri, 22 Mar 2024 11:36:45 +01:00

x86/boot: Replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR

Both __PHYSICAL_START and LOAD_PHYSICAL_ADDR are defined to get aligned
CONFIG_PHYSICAL_START, so we can replace __PHYSICAL_START with
LOAD_PHYSICAL_ADDR. And then remove the definition of __PHYSICAL_START,
which is only used to define __START_KERNEL.

Since <asm/boot.h> includes <asm/pgtable_types.h>, which includes
<asm/page_types.h>, it is fine to move definition from <asm/boot.h> to
<asm/page_types.h>.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240313075839.8321-3-richard.weiyang@gmail.com
---
 arch/x86/include/asm/boot.h       | 5 -----
 arch/x86/include/asm/page_types.h | 8 +++++---
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
index a38cc0a..12cbc57 100644
--- a/arch/x86/include/asm/boot.h
+++ b/arch/x86/include/asm/boot.h
@@ -6,11 +6,6 @@
 #include <asm/pgtable_types.h>
 #include <uapi/asm/boot.h>
 
-/* Physical address where kernel should be loaded. */
-#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
-				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
-				& ~(CONFIG_PHYSICAL_ALIGN - 1))
-
 /* Minimum kernel alignment, as a power of two */
 #ifdef CONFIG_X86_64
 # define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
index 86bd431..acc1620 100644
--- a/arch/x86/include/asm/page_types.h
+++ b/arch/x86/include/asm/page_types.h
@@ -31,10 +31,12 @@
 
 #define VM_DATA_DEFAULT_FLAGS	VM_DATA_FLAGS_TSK_EXEC
 
-#define __PHYSICAL_START	ALIGN(CONFIG_PHYSICAL_START, \
-				      CONFIG_PHYSICAL_ALIGN)
+/* Physical address where kernel should be loaded. */
+#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
+				+ (CONFIG_PHYSICAL_ALIGN - 1)) \
+				& ~(CONFIG_PHYSICAL_ALIGN - 1))
 
-#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
+#define __START_KERNEL		(__START_KERNEL_map + LOAD_PHYSICAL_ADDR)
 
 #ifdef CONFIG_X86_64
 #include <asm/page_64_types.h>

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2024-03-22 10:59 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-13  7:58 [PATCH 0/4] Cleanup vmlinux.lds.S Wei Yang
2024-03-13  7:58 ` [PATCH 1/4] vmlinux.lds.h: fix a typo in comment Wei Yang
2024-03-13 10:39   ` [tip: x86/build] vmlinux.lds.h: Fix " tip-bot2 for Wei Yang
2024-03-13  7:58 ` [PATCH 2/4] x86/boot: replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR Wei Yang
2024-03-13 10:29   ` Ingo Molnar
2024-03-14  0:54     ` Wei Yang
2024-03-14  3:23     ` Wei Yang
2024-03-14  9:25       ` Ingo Molnar
2024-03-15  0:57         ` Wei Yang
2024-03-16 17:44           ` Wei Yang
2024-03-13 10:29   ` Nikolay Borisov
2024-03-14  0:54     ` Wei Yang
2024-03-22 10:59   ` [tip: x86/build] x86/boot: Replace " tip-bot2 for Wei Yang
2024-03-13  7:58 ` [PATCH 3/4] x86/vmlinux.lds.S: remove conditional definition of LOAD_OFFSET Wei Yang
2024-03-13 10:39   ` [tip: x86/build] x86/vmlinux.lds.S: Remove " tip-bot2 for Wei Yang
2024-03-13 13:18     ` Borislav Petkov
2024-03-14  0:59       ` Wei Yang
2024-03-13  7:58 ` [PATCH 4/4] x86/vmlinux.lds.S: take __START_KERNEL out conditional definition Wei Yang
2024-03-13 10:39   ` [tip: x86/build] x86/vmlinux.lds.S: Take " tip-bot2 for Wei Yang

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.