From nobody Sun May 24 19:33:15 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1779463302; cv=none; d=zohomail.com; s=zohoarc; b=ZAWKmQKAUQcFiyIgNavOmuxve0TgOC5sAIzaqWesDOmTvSdVOLAdzDX9WZgGdILuXShBZIBaRIsFmqZSicpDBLgdgzIzvfyhQbbbWWlZQfRibCPXptLLoX6VwYrNaoHnziflNt+czyUQyVh8s1XjbZZHWIpHTK32Esw54SB87l0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779463302; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0gtEy/TKWNMRa8HbImrFhVuemzU/aU6A58QyV+4lRq8=; b=d95oM0z0cYu6KnVpQt3ReBrzaCW4mpgrbC/vss7yoKZgH4X/w2aJap4qIX3k+FBTf5IS2OfBBWGd/AxXCTMkuOZxmwC6SvSROGvSJNn8HMmSKORrmKkUzM8huQiXwkl81O8etllsi9Db6DWPTpq9IoUPVMnRp/1xe+uWPJkCfdk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1779463302662475.9771001491298; Fri, 22 May 2026 08:21:42 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1316986.1586301 (Exim 4.92) (envelope-from ) id 1wQRgl-0004cB-AV; Fri, 22 May 2026 15:21:27 +0000 Received: by outflank-mailman (output) from mailman id 1316986.1586301; Fri, 22 May 2026 15:21:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQRgl-0004c4-7R; Fri, 22 May 2026 15:21:27 +0000 Received: by outflank-mailman (input) for mailman id 1316986; Fri, 22 May 2026 15:21:26 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQRgk-0004bU-0d for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:21:26 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQRgj-007385-6Z for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:25 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a107474-2eae-0a2a0a5409dd-0a2a4505b378-2 for ; Fri, 22 May 2026 17:21:25 +0200 Received: from [195.135.223.131] (helo=smtp-out2.suse.de) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a107474-aaa8-0a2a45050019-c387df83c356-3 for ; Fri, 22 May 2026 17:21:25 +0200 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id A39AD67CF3; Fri, 22 May 2026 15:21:23 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6765E593A8; Fri, 22 May 2026 15:21:23 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id KGomGHN0EGqFHwAAD6G6ig (envelope-from ); Fri, 22 May 2026 15:21:23 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1779463284; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0gtEy/TKWNMRa8HbImrFhVuemzU/aU6A58QyV+4lRq8=; b=knOvWJxqLEbZsqZ/12jKynptTSPZZ8mcm/H1vh5n25yo7u4vEQYRHni9ssjMHo3KS2GBPj EW2XsAIG0/ACRDaj5LpCQK18oOME/NvvBrrO9EGMwz0leb9FUtP/wafuyPr2/T5YrfaHPN 06NOtYASFynBPmc+4IBLr5SM2Hiu3I0= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1779463283; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0gtEy/TKWNMRa8HbImrFhVuemzU/aU6A58QyV+4lRq8=; b=IPM2b6PLDn3U/LQmXOAjd6W7Y5PJqlQ6yv/Hl59HGVGwb8MkNApRRu7+mBqiF3eZpv4cvt oW02/9yiacnedlFv1icPuSNLnR/XD3DZqbnsZHoDZL4meT5cpHfnH5xIySrYUAGRJgeTBF ZOnKJeqdQMqz4gg4+MVO+vtEuTvcCpY= From: Juergen Gross To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , xen-devel@lists.xenproject.org Subject: [PATCH 1/3] x86/xen: Guard PV-only stuff in xen-ops.h with CONFIG_XEN_PV Date: Fri, 22 May 2026 17:21:12 +0200 Message-ID: <20260522152114.77319-2-jgross@suse.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260522152114.77319-1-jgross@suse.com> References: <20260522152114.77319-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.80 X-Spam-Level: X-Spamd-Result: default: False [-6.80 / 50.00]; REPLY(-4.00)[]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-0.998]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCVD_TLS_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCPT_COUNT_SEVEN(0.00)[10]; internal_greylist_whitelist(0.00)[10.150.64.97]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid] X-Spam-Flag: NO X-purgate-ID: tlsNG-c201ff/1779463285-E318B443-ED6AF8A5/0/0 X-purgate-type: clean X-purgate-size: 11424 X-ZohoMail-DKIM: pass (identity @suse.com) (identity @suse.com) X-ZM-MESSAGEID: 1779463305184158500 Content-Type: text/plain; charset="utf-8" A lot of arch/x86/xen/xen-ops.h is meant to be for PV only. Guard all of it with CONFIG_XEN_PV in order to avoid someone misusing it in non-PV builds. Additionally any 64-bit tests for now guarded items can be dropped. Move the enum pt_level definition to mmu_pv.c, as it is used only there. Signed-off-by: Juergen Gross --- arch/x86/xen/mmu_pv.c | 8 ++ arch/x86/xen/xen-ops.h | 240 ++++++++++++++++++++--------------------- 2 files changed, 123 insertions(+), 125 deletions(-) diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c index 3eee5f84f8a7..cd80406be9c6 100644 --- a/arch/x86/xen/mmu_pv.c +++ b/arch/x86/xen/mmu_pv.c @@ -84,6 +84,14 @@ =20 #include "xen-ops.h" =20 +enum pt_level { + PT_PGD, + PT_P4D, + PT_PUD, + PT_PMD, + PT_PTE +}; + /* * Prototypes for functions called via PV_CALLEE_SAVE_REGS_THUNK() in order * to avoid warnings with "-Wmissing-prototypes". diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index f6c331b20fad..a27ab1f50cf9 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h @@ -12,28 +12,24 @@ =20 #include =20 +#ifdef CONFIG_XEN_PV + #include =20 /* These are code, but not functions. Defined in entry.S */ extern const char xen_failsafe_callback[]; =20 -void xen_entry_SYSENTER_compat(void); -#ifdef CONFIG_X86_64 -void xen_entry_SYSCALL_64(void); -void xen_entry_SYSCALL_compat(void); -#endif +DECLARE_PER_CPU(unsigned long, xen_cr3); =20 extern void *xen_initial_gdt; +extern cpumask_var_t xen_cpu_initialized_map; =20 struct trap_info; void xen_copy_trap_info(struct trap_info *traps); =20 -DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info); -DECLARE_PER_CPU(unsigned long, xen_cr3); - -extern struct start_info *xen_start_info; -extern struct shared_info xen_dummy_shared_info; -extern struct shared_info *HYPERVISOR_shared_info; +void xen_entry_SYSENTER_compat(void); +void xen_entry_SYSCALL_64(void); +void xen_entry_SYSCALL_compat(void); =20 void xen_setup_mfn_list_list(void); void xen_build_mfn_list_list(void); @@ -44,13 +40,10 @@ void __init xen_pt_check_e820(void); =20 void xen_mm_pin_all(void); void xen_mm_unpin_all(void); -#ifdef CONFIG_X86_64 void __init xen_relocate_p2m(void); -#endif void __init xen_do_remap_nonram(void); void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr, unsigned long size); - void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size, const char *component); unsigned long __ref xen_chk_extra_mem(unsigned long pfn); @@ -59,17 +52,119 @@ void __init xen_remap_memory(void); phys_addr_t __init xen_find_free_area(phys_addr_t size); char * __init xen_memory_setup(void); void __init xen_arch_setup(void); -void xen_banner(void); void xen_enable_syscall(void); -void xen_vcpu_restore(void); +void __init xen_build_dynamic_phys_to_machine(void); +void __init xen_vmalloc_p2m_tree(void); +void xen_init_irq_ops(void); +void xen_setup_vcpu_info_placement(void); +void __init xen_init_apic(void); + +__visible void xen_irq_enable_direct(void); +__visible void xen_irq_disable_direct(void); +__visible unsigned long xen_save_fl_direct(void); + +__visible unsigned long xen_read_cr2(void); +__visible unsigned long xen_read_cr2_direct(void); + +/* These are not functions, and cannot be called normally */ +__visible void xen_iret(void); + +void xen_force_evtchn_callback(void); + +void xen_pv_pre_suspend(void); +void xen_pv_post_suspend(int suspend_cancelled); +void xen_start_kernel(struct start_info *si); + +void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags); +void xen_init_mmu_ops(void); + +/* Multicalls */ +struct multicall_space +{ + struct multicall_entry *mc; + void *args; +}; + +/* Allocate room for a multicall and its args */ +struct multicall_space __xen_mc_entry(size_t args); + +DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags); + +/* Call to start a batch of multiple __xen_mc_entry()s. Must be + paired with xen_mc_issue() */ +static inline void xen_mc_batch(void) +{ + unsigned long flags; + + /* need to disable interrupts until this entry is complete */ + local_irq_save(flags); + trace_xen_mc_batch(xen_get_lazy_mode()); + __this_cpu_write(xen_mc_irq_flags, flags); +} + +static inline struct multicall_space xen_mc_entry(size_t args) +{ + xen_mc_batch(); + return __xen_mc_entry(args); +} + +/* Flush all pending multicalls */ +void xen_mc_flush(void); + +/* Issue a multicall if we're not in a lazy mode */ +static inline void xen_mc_issue(unsigned mode) +{ + trace_xen_mc_issue(mode); + + if ((xen_get_lazy_mode() & mode) =3D=3D 0) + xen_mc_flush(); + + /* restore flags saved in xen_mc_batch */ + local_irq_restore(this_cpu_read(xen_mc_irq_flags)); +} + +/* Set up a callback to be called when the current batch is flushed */ +void xen_mc_callback(void (*fn)(void *), void *data); + +/* + * Try to extend the arguments of the previous multicall command. The + * previous command's op must match. If it does, then it attempts to + * extend the argument space allocated to the multicall entry by + * arg_size bytes. + * + * The returned multicall_space will return with mc pointing to the + * command on success, or NULL on failure, and args pointing to the + * newly allocated space. + */ +struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_siz= e); + +extern bool is_xen_pmu; + +irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id); +bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read); +int pmu_apic_update(uint32_t reg); +u64 xen_read_pmc(int counter); + +void xen_hypercall_pv(void); + +#else + +static inline void xen_pv_pre_suspend(void) {} +static inline void xen_pv_post_suspend(int suspend_cancelled) {} =20 +#endif /* CONFIG_XEN_PV */ + +DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info); + +extern struct start_info *xen_start_info; +extern struct shared_info xen_dummy_shared_info; +extern struct shared_info *HYPERVISOR_shared_info; + +void xen_banner(void); +void xen_vcpu_restore(void); void xen_hvm_init_shared_info(void); void xen_unplug_emulated_devices(void); =20 -void __init xen_build_dynamic_phys_to_machine(void); -void __init xen_vmalloc_p2m_tree(void); - -void xen_init_irq_ops(void); void xen_setup_timer(int cpu); void xen_setup_runstate_info(int cpu); void xen_teardown_timer(int cpu); @@ -83,13 +178,10 @@ bool xen_vcpu_stolen(int vcpu); =20 void xen_vcpu_setup(int cpu); void xen_vcpu_info_reset(int cpu); -void xen_setup_vcpu_info_placement(void); =20 #ifdef CONFIG_SMP void xen_smp_init(void); void __init xen_hvm_smp_init(void); - -extern cpumask_var_t xen_cpu_initialized_map; #else static inline void xen_smp_init(void) {} static inline void xen_hvm_smp_init(void) {} @@ -125,8 +217,6 @@ static inline void __init xen_init_vga(const struct dom= 0_vga_console_info *info, =20 void xen_add_preferred_consoles(void); =20 -void __init xen_init_apic(void); - #ifdef CONFIG_XEN_EFI extern void xen_efi_init(struct boot_params *boot_params); #else @@ -135,16 +225,6 @@ static inline void __init xen_efi_init(struct boot_par= ams *boot_params) } #endif =20 -__visible void xen_irq_enable_direct(void); -__visible void xen_irq_disable_direct(void); -__visible unsigned long xen_save_fl_direct(void); - -__visible unsigned long xen_read_cr2(void); -__visible unsigned long xen_read_cr2_direct(void); - -/* These are not functions, and cannot be called normally */ -__visible void xen_iret(void); - extern int xen_panic_handler_init(void); =20 int xen_cpuhp_setup(int (*cpu_up_prepare_cb)(unsigned int), @@ -153,16 +233,6 @@ int xen_cpuhp_setup(int (*cpu_up_prepare_cb)(unsigned = int), void xen_pin_vcpu(int cpu); =20 void xen_emergency_restart(void); -void xen_force_evtchn_callback(void); - -#ifdef CONFIG_XEN_PV -void xen_pv_pre_suspend(void); -void xen_pv_post_suspend(int suspend_cancelled); -void xen_start_kernel(struct start_info *si); -#else -static inline void xen_pv_pre_suspend(void) {} -static inline void xen_pv_post_suspend(int suspend_cancelled) {} -#endif =20 #ifdef CONFIG_XEN_PVHVM void xen_hvm_post_suspend(int suspend_cancelled); @@ -186,83 +256,9 @@ void xen_add_extra_mem(unsigned long start_pfn, unsign= ed long n_pfns); =20 struct dentry * __init xen_init_debugfs(void); =20 -enum pt_level { - PT_PGD, - PT_P4D, - PT_PUD, - PT_PMD, - PT_PTE -}; - bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn); -void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags); -unsigned long xen_read_cr2_direct(void); -void xen_init_mmu_ops(void); void xen_hvm_init_mmu_ops(void); =20 -/* Multicalls */ -struct multicall_space -{ - struct multicall_entry *mc; - void *args; -}; - -/* Allocate room for a multicall and its args */ -struct multicall_space __xen_mc_entry(size_t args); - -DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags); - -/* Call to start a batch of multiple __xen_mc_entry()s. Must be - paired with xen_mc_issue() */ -static inline void xen_mc_batch(void) -{ - unsigned long flags; - - /* need to disable interrupts until this entry is complete */ - local_irq_save(flags); - trace_xen_mc_batch(xen_get_lazy_mode()); - __this_cpu_write(xen_mc_irq_flags, flags); -} - -static inline struct multicall_space xen_mc_entry(size_t args) -{ - xen_mc_batch(); - return __xen_mc_entry(args); -} - -/* Flush all pending multicalls */ -void xen_mc_flush(void); - -/* Issue a multicall if we're not in a lazy mode */ -static inline void xen_mc_issue(unsigned mode) -{ - trace_xen_mc_issue(mode); - - if ((xen_get_lazy_mode() & mode) =3D=3D 0) - xen_mc_flush(); - - /* restore flags saved in xen_mc_batch */ - local_irq_restore(this_cpu_read(xen_mc_irq_flags)); -} - -/* Set up a callback to be called when the current batch is flushed */ -void xen_mc_callback(void (*fn)(void *), void *data); - -/* - * Try to extend the arguments of the previous multicall command. The - * previous command's op must match. If it does, then it attempts to - * extend the argument space allocated to the multicall entry by - * arg_size bytes. - * - * The returned multicall_space will return with mc pointing to the - * command on success, or NULL on failure, and args pointing to the - * newly allocated space. - */ -struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_siz= e); - -extern bool is_xen_pmu; - -irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id); #ifdef CONFIG_XEN_HAVE_VPMU void xen_pmu_init(int cpu); void xen_pmu_finish(int cpu); @@ -270,9 +266,6 @@ void xen_pmu_finish(int cpu); static inline void xen_pmu_init(int cpu) {} static inline void xen_pmu_finish(int cpu) {} #endif -bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read); -int pmu_apic_update(uint32_t reg); -u64 xen_read_pmc(int counter); =20 #ifdef CONFIG_SMP =20 @@ -321,9 +314,6 @@ static inline void xen_smp_intr_free_pv(unsigned int cp= u) {} static inline void xen_smp_count_cpus(void) { } #endif /* CONFIG_SMP */ =20 -#ifdef CONFIG_XEN_PV -void xen_hypercall_pv(void); -#endif void xen_hypercall_hvm(void); void xen_hypercall_amd(void); void xen_hypercall_intel(void); --=20 2.54.0 From nobody Sun May 24 19:33:15 2026 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5889472768 for ; Fri, 22 May 2026 15:21:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779463304; cv=none; b=DNLEqyAKtbzdcr46OMTw4WS7jCl0qO2viCWecQ6g378agXIWGluQ5PgRZELX+JrssaSMDTMev8BIqHjZaMxrZhDvOSGBrnJAAiLYkRLEQodZl8K+5I7MyXXSFrLfJUZHZWAJ3w8lfNOf1qHg0hV/bkJh17zJcl+xQmB4Pmqy23w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779463304; c=relaxed/simple; bh=kL9HLy2U0FxzTvsrjk37010gdPtNgyG1J9qDxhceLUg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nfYAcG+6BTtzMkkuFMMBzyZKl8ZdSlSWsFrahk/2LsV7rN6qTeVMOaoHn6sB4mJkmQQU8IoLW7dKY8Y4Yr9swtJYcAj7ktYQAFZl5rNn8ZV5kgbimI4sHJ8H3VEUEg9b9Ju9jNz8T9yKHR9pCTjSFZckkFVTOv9tKeYOtUnzozY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 22DE567CFC; Fri, 22 May 2026 15:21:29 +0000 (UTC) Authentication-Results: smtp-out2.suse.de; none Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EDE02593A8; Fri, 22 May 2026 15:21:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id Zp3+OHh0EGqeHwAAD6G6ig (envelope-from ); Fri, 22 May 2026 15:21:28 +0000 From: Juergen Gross To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Juergen Gross , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers Subject: [PATCH 2/3] x86/xen: Cleanup Xen related trace points Date: Fri, 22 May 2026 17:21:13 +0200 Message-ID: <20260522152114.77319-3-jgross@suse.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260522152114.77319-1-jgross@suse.com> References: <20260522152114.77319-1-jgross@suse.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 50.00]; REPLY(-4.00)[] X-Rspamd-Queue-Id: 22DE567CFC X-Spam-Score: -4.00 X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Flag: NO X-Spam-Level: Content-Type: text/plain; charset="utf-8" Since dropping Xen-PV support for 32-bit, include/trace/events/xen.h contains several stale trace point definitions. Remove them. Signed-off-by: Juergen Gross --- include/trace/events/xen.h | 62 ++------------------------------------ 1 file changed, 3 insertions(+), 59 deletions(-) diff --git a/include/trace/events/xen.h b/include/trace/events/xen.h index 0577f0cdd231..e3f139f0bc78 100644 --- a/include/trace/events/xen.h +++ b/include/trace/events/xen.h @@ -129,9 +129,10 @@ TRACE_EVENT(xen_mc_extend_args, __entry->res =3D=3D XEN_MC_XE_NO_SPACE ? "NO_SPACE" : "???") ); =20 -TRACE_DEFINE_SIZEOF(pteval_t); /* mmu */ -DECLARE_EVENT_CLASS(xen_mmu__set_pte, +TRACE_DEFINE_SIZEOF(pteval_t); + +TRACE_EVENT(xen_mmu_set_pte, TP_PROTO(pte_t *ptep, pte_t pteval), TP_ARGS(ptep, pteval), TP_STRUCT__entry( @@ -146,13 +147,6 @@ DECLARE_EVENT_CLASS(xen_mmu__set_pte, (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval) ); =20 -#define DEFINE_XEN_MMU_SET_PTE(name) \ - DEFINE_EVENT(xen_mmu__set_pte, name, \ - TP_PROTO(pte_t *ptep, pte_t pteval), \ - TP_ARGS(ptep, pteval)) - -DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte); - TRACE_DEFINE_SIZEOF(pmdval_t); =20 TRACE_EVENT(xen_mmu_set_pmd, @@ -170,37 +164,6 @@ TRACE_EVENT(xen_mmu_set_pmd, (int)sizeof(pmdval_t) * 2, (unsigned long long)__entry->pmdval) ); =20 -#ifdef CONFIG_X86_PAE -DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte_atomic); - -TRACE_EVENT(xen_mmu_pte_clear, - TP_PROTO(struct mm_struct *mm, unsigned long addr, pte_t *ptep), - TP_ARGS(mm, addr, ptep), - TP_STRUCT__entry( - __field(struct mm_struct *, mm) - __field(unsigned long, addr) - __field(pte_t *, ptep) - ), - TP_fast_assign(__entry->mm =3D mm; - __entry->addr =3D addr; - __entry->ptep =3D ptep), - TP_printk("mm %p addr %lx ptep %p", - __entry->mm, __entry->addr, __entry->ptep) - ); - -TRACE_EVENT(xen_mmu_pmd_clear, - TP_PROTO(pmd_t *pmdp), - TP_ARGS(pmdp), - TP_STRUCT__entry( - __field(pmd_t *, pmdp) - ), - TP_fast_assign(__entry->pmdp =3D pmdp), - TP_printk("pmdp %p", __entry->pmdp) - ); -#endif - -#if CONFIG_PGTABLE_LEVELS >=3D 4 - TRACE_DEFINE_SIZEOF(pudval_t); =20 TRACE_EVENT(xen_mmu_set_pud, @@ -236,24 +199,6 @@ TRACE_EVENT(xen_mmu_set_p4d, (int)sizeof(p4dval_t) * 2, (unsigned long long)pgd_val(native_make= _pgd(__entry->p4dval)), (int)sizeof(p4dval_t) * 2, (unsigned long long)__entry->p4dval) ); -#else - -TRACE_EVENT(xen_mmu_set_pud, - TP_PROTO(pud_t *pudp, pud_t pudval), - TP_ARGS(pudp, pudval), - TP_STRUCT__entry( - __field(pud_t *, pudp) - __field(pudval_t, pudval) - ), - TP_fast_assign(__entry->pudp =3D pudp; - __entry->pudval =3D native_pud_val(pudval)), - TP_printk("pudp %p pudval %0*llx (raw %0*llx)", - __entry->pudp, - (int)sizeof(pudval_t) * 2, (unsigned long long)pgd_val(native_make= _pgd(__entry->pudval)), - (int)sizeof(pudval_t) * 2, (unsigned long long)__entry->pudval) - ); - -#endif =20 DECLARE_EVENT_CLASS(xen_mmu_ptep_modify_prot, TP_PROTO(struct mm_struct *mm, unsigned long addr, @@ -452,7 +397,6 @@ TRACE_EVENT(xen_cpu_set_ldt, __entry->addr, __entry->entries) ); =20 - #endif /* _TRACE_XEN_H */ =20 /* This part must be outside protection */ --=20 2.54.0 From nobody Sun May 24 19:33:15 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1779463311; cv=none; d=zohomail.com; s=zohoarc; b=gbqGiegfistrON+dMz0Daj91ZANNnIIRbHWMXjm3FeTZaCb2AeV70E7z6oBvnEtIfgwUxlvOPtT1nIEZNnJs8hOhl/D4PIyterV4oY83a5pkburzySMi1R+a+8ckDlTVtY/FkgL864ri8bjq8rbQSZ26UfFP2ThhDXHESLDNQd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779463311; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PCDUi9/RCG0k6XPy+CbzV9Ct7VcOObJCbIUaokAKjPU=; b=ALbDtqN9fYp9WCFktplzzNCc3bFWzmsTSbIt15PQj0qCzhjYUY+rnk4R9ni3SoMxypreS+fLJtpyyjx47uU8M8Wn/JwEqVZ38458r8rpJs06CCPAGFrXot4Wu3dfa7kIjD84fRJtUcU9G3OssTzE29efWnTIX2y/2gvY6toRhxk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1779463311973104.12773749947507; Fri, 22 May 2026 08:21:51 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1316989.1586311 (Exim 4.92) (envelope-from ) id 1wQRgv-0004zD-La; Fri, 22 May 2026 15:21:37 +0000 Received: by outflank-mailman (output) from mailman id 1316989.1586311; Fri, 22 May 2026 15:21:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQRgv-0004z4-Ik; Fri, 22 May 2026 15:21:37 +0000 Received: by outflank-mailman (input) for mailman id 1316989; Fri, 22 May 2026 15:21:35 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQRgt-0004uj-Ky for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:21:35 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQRgt-0073CX-1x for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:35 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a107474-2eae-0a2a0a5409dd-0a2a4505b378-14 for ; Fri, 22 May 2026 17:21:34 +0200 Received: from [195.135.223.130] (helo=smtp-out1.suse.de) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a10747e-aaa8-0a2a45050019-c387df82c270-3 for ; Fri, 22 May 2026 17:21:34 +0200 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A91746BBD8; Fri, 22 May 2026 15:21:34 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6E048593A8; Fri, 22 May 2026 15:21:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 7o7QGX50EGrVHwAAD6G6ig (envelope-from ); Fri, 22 May 2026 15:21:34 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1779463294; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PCDUi9/RCG0k6XPy+CbzV9Ct7VcOObJCbIUaokAKjPU=; b=ewOWPVBKcmYLjAU7Tr8kN9vFuA5Jbq9hNeqRydeQiqFBUFrbN2jv/DswfEYISBRAhs7+MV DjrK4bU2bD359aaojUm1QcL02Rs9tGNzvQUxpvq19tqjcbBVcu1Q4S/3cDFcnYUYQsTbQl r41viA0p71FsSdvJ/nPJsJlDPZjWeBw= Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1779463294; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PCDUi9/RCG0k6XPy+CbzV9Ct7VcOObJCbIUaokAKjPU=; b=ewOWPVBKcmYLjAU7Tr8kN9vFuA5Jbq9hNeqRydeQiqFBUFrbN2jv/DswfEYISBRAhs7+MV DjrK4bU2bD359aaojUm1QcL02Rs9tGNzvQUxpvq19tqjcbBVcu1Q4S/3cDFcnYUYQsTbQl r41viA0p71FsSdvJ/nPJsJlDPZjWeBw= From: Juergen Gross To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , xen-devel@lists.xenproject.org Subject: [PATCH 3/3] x86/xen: Remove Xen debugfs support Date: Fri, 22 May 2026 17:21:14 +0200 Message-ID: <20260522152114.77319-4-jgross@suse.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260522152114.77319-1-jgross@suse.com> References: <20260522152114.77319-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.80 X-Spam-Level: X-Spamd-Result: default: False [-6.80 / 50.00]; REPLY(-4.00)[]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-0.998]; MIME_GOOD(-0.10)[text/plain]; RCVD_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid]; internal_greylist_whitelist(0.00)[10.150.64.97]; FROM_EQ_ENVFROM(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_SEVEN(0.00)[10]; R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)]; RCVD_TLS_ALL(0.00)[] X-Spam-Flag: NO X-purgate-ID: tlsNG-c201ff/1779463294-DA374443-8E72E2CF/0/0 X-purgate-type: clean X-purgate-size: 4613 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1779463313976154100 Content-Type: text/plain; charset="utf-8" The only Xen file in debugfs is for dumping the p2m table when running as a Xen PV guest. This might have been useful when the PV code was young, but there haven't been any p2m related bugs requiring the p2m dump since ages. Remove the code and the related config option. Signed-off-by: Juergen Gross --- Kind of RFC, as there might be different opinions. The only time I have used the p2m dump was when I reworked the p2m coding more than 10 years ago. An alternative would be to make CONFIG_XEN_DEBUG_FS dependant on CONFIG_XEN_PV and to fix the help text (it is completely wrong, as it enables neither statistics output, nor tuning options, nor is it relevant to performance at all - the only existing functionality isn't mentioned either). Signed-off-by: Juergen Gross --- arch/x86/xen/Kconfig | 7 ------- arch/x86/xen/Makefile | 2 -- arch/x86/xen/debugfs.c | 16 --------------- arch/x86/xen/p2m.c | 45 ------------------------------------------ arch/x86/xen/xen-ops.h | 2 -- 5 files changed, 72 deletions(-) delete mode 100644 arch/x86/xen/debugfs.c diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig index aa4040fd9215..51b53ce66efb 100644 --- a/arch/x86/xen/Kconfig +++ b/arch/x86/xen/Kconfig @@ -65,13 +65,6 @@ config XEN_PVHVM_GUEST help Support running as a Xen PVHVM guest. =20 -config XEN_DEBUG_FS - bool "Enable Xen debug and tuning parameters in debugfs" - depends on XEN && DEBUG_FS - help - Enable statistics output and various tuning options in debugfs. - Enabling this option may incur a significant performance overhead. - config XEN_PVH bool "Xen PVH guest support" depends on XEN && XEN_PVHVM && ACPI diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile index a9ec8c9f5c5d..717264ae269b 100644 --- a/arch/x86/xen/Makefile +++ b/arch/x86/xen/Makefile @@ -43,8 +43,6 @@ obj-$(CONFIG_XEN_PVHVM_SMP) +=3D smp_hvm.o =20 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+=3D spinlock.o =20 -obj-$(CONFIG_XEN_DEBUG_FS) +=3D debugfs.o - obj-$(CONFIG_XEN_DOM0) +=3D vga.o =20 obj-$(CONFIG_XEN_EFI) +=3D efi.o diff --git a/arch/x86/xen/debugfs.c b/arch/x86/xen/debugfs.c deleted file mode 100644 index b8c9f2a7d9b6..000000000000 --- a/arch/x86/xen/debugfs.c +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include -#include -#include - -#include "xen-ops.h" - -static struct dentry *d_xen_debug; - -struct dentry * __init xen_init_debugfs(void) -{ - if (!d_xen_debug) - d_xen_debug =3D debugfs_create_dir("xen", NULL); - return d_xen_debug; -} - diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index 2dd12b61a230..d007ccf6e7a1 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c @@ -883,48 +883,3 @@ void __init xen_add_remap_nonram(phys_addr_t maddr, ph= ys_addr_t paddr, =20 nr_nonram_remap++; } - -#ifdef CONFIG_XEN_DEBUG_FS -#include -static int p2m_dump_show(struct seq_file *m, void *v) -{ - static const char * const type_name[] =3D { - [P2M_TYPE_IDENTITY] =3D "identity", - [P2M_TYPE_MISSING] =3D "missing", - [P2M_TYPE_PFN] =3D "pfn", - [P2M_TYPE_UNKNOWN] =3D "abnormal"}; - unsigned long pfn, first_pfn; - int type, prev_type; - - prev_type =3D xen_p2m_elem_type(0); - first_pfn =3D 0; - - for (pfn =3D 0; pfn < xen_p2m_size; pfn++) { - type =3D xen_p2m_elem_type(pfn); - if (type !=3D prev_type) { - seq_printf(m, " [0x%lx->0x%lx] %s\n", first_pfn, pfn, - type_name[prev_type]); - prev_type =3D type; - first_pfn =3D pfn; - } - } - seq_printf(m, " [0x%lx->0x%lx] %s\n", first_pfn, pfn, - type_name[prev_type]); - return 0; -} - -DEFINE_SHOW_ATTRIBUTE(p2m_dump); - -static struct dentry *d_mmu_debug; - -static int __init xen_p2m_debugfs(void) -{ - struct dentry *d_xen =3D xen_init_debugfs(); - - d_mmu_debug =3D debugfs_create_dir("mmu", d_xen); - - debugfs_create_file("p2m", 0600, d_mmu_debug, NULL, &p2m_dump_fops); - return 0; -} -fs_initcall(xen_p2m_debugfs); -#endif /* CONFIG_XEN_DEBUG_FS */ diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index a27ab1f50cf9..6808010ac379 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h @@ -254,8 +254,6 @@ static inline void xen_hvm_post_suspend(int suspend_can= celled) {} =20 void xen_add_extra_mem(unsigned long start_pfn, unsigned long n_pfns); =20 -struct dentry * __init xen_init_debugfs(void); - bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn); void xen_hvm_init_mmu_ops(void); =20 --=20 2.54.0