From: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, ebiederm@xmission.com, akpm@linux-foundation.org, stanislav.kinsburskii@gmail.com, corbet@lwn.net, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, linux-mm@kvack.org, kys@microsoft.com, jgowans@amazon.com, wei.liu@kernel.org, arnd@arndb.de, gregkh@linuxfoundation.org, graf@amazon.de, pbonzini@redhat.com, bhe@redhat.com, dave.hansen@intel.com, kirill.shutemov@intel.com Subject: [RFC PATCH v3 1/3] x86/boot/e820: Expose kexec range update, remove and table update functions Date: Wed, 04 Oct 2023 15:23:15 -0700 [thread overview] Message-ID: <169645819587.11424.5389114333710932782.stgit@skinsburskii.> (raw) In-Reply-To: <169645773092.11424.7258549771090599226.stgit@skinsburskii.> This functions are to be used to reserve memory regions in kexec kernel by other kernel subsystems. Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> --- arch/x86/include/asm/e820/api.h | 4 ++++ arch/x86/kernel/e820.c | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index e8f58ddd06d9..24bb8da928bb 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -22,6 +22,10 @@ extern void e820__print_table(char *who); extern int e820__update_table(struct e820_table *table); extern void e820__update_table_print(void); +extern u64 e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type); +extern u64 e820__range_remove_kexec(u64 start, u64 size, enum e820_type old_type, bool check_type); +extern void e820__update_table_kexec(void); + extern unsigned long e820__end_of_ram_pfn(void); extern unsigned long e820__end_of_low_ram_pfn(void); diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index fb8cf953380d..f339815029f7 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -532,13 +532,12 @@ u64 __init e820__range_update(u64 start, u64 size, enum e820_type old_type, enum return __e820__range_update(e820_table, start, size, old_type, new_type); } -static u64 __init e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type) +u64 __init e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type) { return __e820__range_update(e820_table_kexec, start, size, old_type, new_type); } -/* Remove a range of memory from the E820 table: */ -u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type) +u64 __init __e820__range_remove(struct e820_table *table, u64 start, u64 size, enum e820_type old_type, bool check_type) { int i; u64 end; @@ -553,8 +552,8 @@ u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool e820_print_type(old_type); pr_cont("\n"); - for (i = 0; i < e820_table->nr_entries; i++) { - struct e820_entry *entry = &e820_table->entries[i]; + for (i = 0; i < table->nr_entries; i++) { + struct e820_entry *entry = &table->entries[i]; u64 final_start, final_end; u64 entry_end; @@ -599,6 +598,16 @@ u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool return real_removed_size; } +u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type) +{ + return __e820__range_remove(e820_table, start, size, old_type, check_type); +} + +u64 __init e820__range_remove_kexec(u64 start, u64 size, enum e820_type old_type, bool check_type) +{ + return __e820__range_remove(e820_table_kexec, start, size, old_type, check_type); +} + void __init e820__update_table_print(void) { if (e820__update_table(e820_table)) @@ -608,7 +617,7 @@ void __init e820__update_table_print(void) e820__print_table("modified"); } -static void __init e820__update_table_kexec(void) +void __init e820__update_table_kexec(void) { e820__update_table(e820_table_kexec); }
WARNING: multiple messages have this Message-ID (diff)
From: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, ebiederm@xmission.com, akpm@linux-foundation.org, stanislav.kinsburskii@gmail.com, corbet@lwn.net, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, linux-mm@kvack.org, kys@microsoft.com, jgowans@amazon.com, wei.liu@kernel.org, arnd@arndb.de, gregkh@linuxfoundation.org, graf@amazon.de, pbonzini@redhat.com, bhe@redhat.com, dave.hansen@intel.com, kirill.shutemov@intel.com Subject: [RFC PATCH v3 1/3] x86/boot/e820: Expose kexec range update, remove and table update functions Date: Wed, 04 Oct 2023 15:23:15 -0700 [thread overview] Message-ID: <169645819587.11424.5389114333710932782.stgit@skinsburskii.> (raw) In-Reply-To: <169645773092.11424.7258549771090599226.stgit@skinsburskii.> This functions are to be used to reserve memory regions in kexec kernel by other kernel subsystems. Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> --- arch/x86/include/asm/e820/api.h | 4 ++++ arch/x86/kernel/e820.c | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index e8f58ddd06d9..24bb8da928bb 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -22,6 +22,10 @@ extern void e820__print_table(char *who); extern int e820__update_table(struct e820_table *table); extern void e820__update_table_print(void); +extern u64 e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type); +extern u64 e820__range_remove_kexec(u64 start, u64 size, enum e820_type old_type, bool check_type); +extern void e820__update_table_kexec(void); + extern unsigned long e820__end_of_ram_pfn(void); extern unsigned long e820__end_of_low_ram_pfn(void); diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index fb8cf953380d..f339815029f7 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -532,13 +532,12 @@ u64 __init e820__range_update(u64 start, u64 size, enum e820_type old_type, enum return __e820__range_update(e820_table, start, size, old_type, new_type); } -static u64 __init e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type) +u64 __init e820__range_update_kexec(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type) { return __e820__range_update(e820_table_kexec, start, size, old_type, new_type); } -/* Remove a range of memory from the E820 table: */ -u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type) +u64 __init __e820__range_remove(struct e820_table *table, u64 start, u64 size, enum e820_type old_type, bool check_type) { int i; u64 end; @@ -553,8 +552,8 @@ u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool e820_print_type(old_type); pr_cont("\n"); - for (i = 0; i < e820_table->nr_entries; i++) { - struct e820_entry *entry = &e820_table->entries[i]; + for (i = 0; i < table->nr_entries; i++) { + struct e820_entry *entry = &table->entries[i]; u64 final_start, final_end; u64 entry_end; @@ -599,6 +598,16 @@ u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool return real_removed_size; } +u64 __init e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type) +{ + return __e820__range_remove(e820_table, start, size, old_type, check_type); +} + +u64 __init e820__range_remove_kexec(u64 start, u64 size, enum e820_type old_type, bool check_type) +{ + return __e820__range_remove(e820_table_kexec, start, size, old_type, check_type); +} + void __init e820__update_table_print(void) { if (e820__update_table(e820_table)) @@ -608,7 +617,7 @@ void __init e820__update_table_print(void) e820__print_table("modified"); } -static void __init e820__update_table_kexec(void) +void __init e820__update_table_kexec(void) { e820__update_table(e820_table_kexec); } _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2023-10-04 22:23 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-10-04 22:23 [RFC PATCH v3 0/3] Introduce persistent memory pool Stanislav Kinsburskii 2023-10-04 22:23 ` Stanislav Kinsburskii 2023-10-04 22:23 ` Stanislav Kinsburskii [this message] 2023-10-04 22:23 ` [RFC PATCH v3 1/3] x86/boot/e820: Expose kexec range update, remove and table update functions Stanislav Kinsburskii 2023-10-05 0:51 ` kernel test robot 2023-10-05 10:10 ` kernel test robot 2023-10-05 13:52 ` kernel test robot 2023-10-04 22:23 ` [RFC PATCH v3 2/3] pmpool: Introduce persistent memory pool Stanislav Kinsburskii 2023-10-04 22:23 ` Stanislav Kinsburskii 2023-10-04 22:23 ` [RFC PATCH v3 3/3] pmpool: Mark reserved range as "kernel reserved" in kexec e820 table Stanislav Kinsburskii 2023-10-04 22:23 ` Stanislav Kinsburskii 2023-10-05 15:58 ` kernel test robot 2023-11-06 15:04 ` kernel test robot
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=169645819587.11424.5389114333710932782.stgit@skinsburskii. \ --to=skinsburskii@linux.microsoft.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=bhe@redhat.com \ --cc=bp@alien8.de \ --cc=corbet@lwn.net \ --cc=dave.hansen@intel.com \ --cc=dave.hansen@linux.intel.com \ --cc=ebiederm@xmission.com \ --cc=graf@amazon.de \ --cc=gregkh@linuxfoundation.org \ --cc=hpa@zytor.com \ --cc=jgowans@amazon.com \ --cc=kexec@lists.infradead.org \ --cc=kirill.shutemov@intel.com \ --cc=kys@microsoft.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mingo@redhat.com \ --cc=pbonzini@redhat.com \ --cc=stanislav.kinsburskii@gmail.com \ --cc=tglx@linutronix.de \ --cc=wei.liu@kernel.org \ --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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.