[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH v1 05/10] pmu.h: introduce a stacktrace area
On 7/25/25 5:07 PM, Edwin Török wrote: > diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c > index a6117dfebf..024d0c1eb7 100644 > --- a/xen/arch/x86/cpu/vpmu_amd.c > +++ b/xen/arch/x86/cpu/vpmu_amd.c > @@ -543,7 +543,7 @@ static const struct arch_vpmu_ops *__init > common_init(void) > } > > if ( sizeof(struct xen_pmu_data) + > - 2 * sizeof(uint64_t) * num_counters > PAGE_SIZE ) > + 2 * sizeof(uint64_t) * num_counters > MAX_XEN_PMU_DATA_SIZE) > { > printk(XENLOG_WARNING > "VPMU: Register bank does not fit into VPMU shared page\n"); You've lost a space before the end of the parenthesis here > diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c > index 7ce98ee42e..9c8b5c1907 100644 > --- a/xen/arch/x86/cpu/vpmu_intel.c > +++ b/xen/arch/x86/cpu/vpmu_intel.c > @@ -967,7 +967,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void) > pmc_quirk = current_cpu_data.x86 == 6; > > if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt + > - sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE ) > + sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > > MAX_XEN_PMU_DATA_SIZE) > { > printk(XENLOG_WARNING > "VPMU: Register bank does not fit into VPMU share page\n"); and here > diff --git a/xen/include/public/arch-x86/pmu.h > b/xen/include/public/arch-x86/pmu.h > index 5bd0aa6f77..bdc8218cbe 100644 > --- a/xen/include/public/arch-x86/pmu.h > +++ b/xen/include/public/arch-x86/pmu.h > @@ -129,67 +146,86 @@ struct xen_pmu_arch { > typedef struct xen_pmu_arch xen_pmu_arch_t; > DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); > > + > /* Memory layout: > -* ╭─────────────────────╮ > -* │ struct xen_pmu_data │ > -* ╒══════════════╧═════════════════════╧═══════════════════════╕ ◁╮ > -* │ vcpu_id │ │ > -* ├────────────────────────────────────────────────────────────┤ │ > -* │ pcpu_id │ │ > -* ├────────────────────────────────────────────────────────────┤ │ > -* │ domain_id │ │ > -* ├────────────────────────────────────────────────────────────┤ │ > -* │██pad███████████████████████████████████████████████████████│ │ > -* ╞════╤═╤═══╤══════════════════╤══════════════════════════════╡ │ > -* │ pmu│ │ r │ regs │██pad█████████████████████████│ │ > -* ├────╯ ├───╯ (xen or guest) │██████████████████████████████│ │ > -* │ ╞══════════════════════╧══════════════════════════════╡ │ > -* │ │ pmu_flags │ │ > -* │ ╞═══╤════════════════════╤════════════════════════════╡ │ > -* │ │ l │ lapic_lvtpc │████████████████████████████│ │ > -* │ ├───╯ ███████████████████│██pad███████████████████████│ │ > -* │ │ ███████████████████│████████████████████████████│ │ > -* │ ╞═══╤═╤═══════╤═════╤════╪════╤═══════╤═══════════════╡ │ > -* │ │ c │ │ │ amd │ │ │ intel │ │█████│ │ > -* │ ├───┘ │ ╰─────╯ │ ╰───────╯ │█████│ │ > -* │ │ │ counter │ fixed_counters │█████│ │ > -* │ │ ├──────────────────┼──────────────────────┤█████│ │ > -* │ │ │ ctrls │ arch_counters │█████│ │ > -* │ │ ╞═════╤════════╤═══├──────────────────────┤█████│ │ > -* │ │ │ │ regs[] │ ┆│ global_ctrl │█████│ │ > -* │ │ │ └────────╯ ┆├──────────────────────┤█████│ │ > -* │ │ │struct ┆│ global_ovf_ctrl │█████│ │ > -* │ │ │xen_pmu_cntr_pair┆├──────────────────────┤█████│ │ > -* │ │ │[counters] ┆│ global_status │█████│ │ > -* │ │ │ ┆├──────────────────────┤█████│ │ > -* │ │ │ ┆│ fixed_ctrl │█████│ │ > -* │ │ │ ┆├──────────────────────┤█████│ │ > -* │ │ │ ┆│ ds_area │█████│ │ > -* │ │ │ ┆├──────────────────────┤█████│ │ > -* │ │ │ ┆│ pebs_enable │█pad█│ │ > -* │ │ │ ┆├──────────────────────┤█████│ │ > -* │ │ │ ▽│ debugctl │█████│ │ it looks like there is a stray space character here breaking up the vertical lines > -* │ │ │██████████████████╞═══════╤════════╤═════╡█████│ │ > -* │ │ │██████████████████│ │ regs[] │ ┆[0]│█████│ │ > -* │ │ │██████████████████│ └────────╯ ┆ │█████│ │ > -* │ │ │██████████████████│ uint64_t ┆ │█████│ │ > -* │ │ │██████████████████│ [fixed_counters] ┆ │█████│ │ > -* │ │ │██████████████████│ ┆ │█████│ │ > -* │ │ │██████████████████│ ┆ │█████│ │ > -* │ │ │██████████████████│ ─────────────────┆ │█████│ │ > -* │ │ │██████████████████│ struct ┆ │█████│ │ > -* │ │ │██████████████████│ xen_pmu_cntr_pair┆ │█████│ │ > -* │ │ ╘══════════════════╡ [arch_counters] ┆ ╞═════╡ │ > -* │ │ │ ┆ │ │ │ > -* │ │ │ ▽ │ │ │ same here > -* │ │ ╘══════════════════════╛ │ │ > -* │ ╘═════════════════════════════════════════════════════╡ │ > -* ╞════════════════════════════════════════════════════════════╡ │ > -* │████████████████████████████████████████████████████████████│ │ > -* ┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆ ┆ > -* ┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆ ┆ > -* │████████████████████████████████████████████████████████████│ │ PAGE_SIZE > -* ╘════════════════════════════════════════════════════════════╛ ◁╯ > + * ╭─────────────────────╮ > + * │ struct xen_pmu_data │ > + * ╒══════════════╧═════════════════════╧═══════════════════════╕ ◁╮ > + * │ vcpu_id │ │ > + * ├────────────────────────────────────────────────────────────┤ │ > + * │ pcpu_id │ │ > + * ├────────────────────────────────────────────────────────────┤ │ > + * │ domain_id │ │ > + * ├────────────────────────────────────────────────────────────┤ │ > + * │██pad███████████████████████████████████████████████████████│ │ > + * ╞════╤═╤═══╤══════════════════╤══════════════════════════════╡ │ > + * │ pmu│ │ r │ regs │██pad█████████████████████████│ │ > + * ├────╯ ├───╯ (xen or guest) │██████████████████████████████│ │ > + * │ ╞══════════════════════╧══════════════════════════════╡ │ > + * │ │ pmu_flags │ │ > + * │ ╞═══╤════════════════════╤════════════════════════════╡ │ > + * │ │ l │ lapic_lvtpc │████████████████████████████│ │ > + * │ ├───╯ ███████████████████│██pad███████████████████████│ │ > + * │ │ ███████████████████│████████████████████████████│ │ > + * │ ╞═══╤═╤═══════╤═════╤════╪════╤═══════╤═══════════════╡ │ > + * │ │ c │ │ │ amd │ │ │ intel │ │█████│ │ > + * │ ├───┘ │ ╰─────╯ │ ╰───────╯ │█████│ │ > + * │ │ │ counter │ fixed_counters │█████│ │ > + * │ │ ├──────────────────┼──────────────────────┤█████│ │ > + * │ │ │ ctrls │ arch_counters │█████│ │ > + * │ │ ╞═════╤════════╤═══├──────────────────────┤█████│ │ > + * │ │ │ │ regs[] │ ┆│ global_ctrl │█████│ │ > + * │ │ │ └────────╯ ┆├──────────────────────┤█████│ │ > + * │ │ │struct ┆│ global_ovf_ctrl │█████│ │ > + * │ │ │xen_pmu_cntr_pair┆├──────────────────────┤█████│ │ > + * │ │ │[counters] ┆│ global_status │█████│ │ > + * │ │ │ ┆├──────────────────────┤█████│ │ > + * │ │ │ ┆│ fixed_ctrl │█████│ │ > + * │ │ │ ┆├──────────────────────┤█████│ │ > + * │ │ │ ┆│ ds_area │█████│ │ > + * │ │ │ ┆├──────────────────────┤█████│ │ > + * │ │ │ ┆│ pebs_enable │█pad█│ │ > + * │ │ │ ┆├──────────────────────┤█████│ │ > + * │ │ │ ▽│ debugctl │█████│ │ and here > + * │ │ │██████████████████╞═══════╤════════╤═════╡█████│ │ > + * │ │ │██████████████████│ │ regs[] │ ┆[0]│█████│ │ > + * │ │ │██████████████████│ └────────╯ ┆ │█████│ │ > + * │ │ │██████████████████│ uint64_t ┆ │█████│ │ > + * │ │ │██████████████████│ [fixed_counters] ┆ │█████│ │ > + * │ │ │██████████████████│ ┆ │█████│ │ > + * │ │ │██████████████████│ ┆ │█████│ │ > + * │ │ │██████████████████│ ─────────────────┆ │█████│ │ > + * │ │ │██████████████████│ struct ┆ │█████│ │ > + * │ │ │██████████████████│ xen_pmu_cntr_pair┆ │█████│ │ > + * │ │ ╘══════════════════╡ [arch_counters] ┆ ╞═════╡ │ > + * │ │ │ ┆ │ │ │ > + * │ │ │ ▽ │ │ │ and here > + * │ │ ╘══════════════════════╛ │ │ > + * │ ╘═════════════════════════════════════════════════════╡ │ > + * ╞════════════════════════════════════════════════════════════╡ │ > + * │████████████████████████████████████████████████████████████│ │ > + * ┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆ ┆ > + * ┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆┆ ┆ > + * │████████████████████████████████████████████████████████████│ │ > + * |############################################################| | > + * |##########.------------------------------.##################| | > + * |##########| struct xen_pmu_hv_stacktrace |##################| | > + * +==========+==============================+==================+ | > + * | ^ [stacktrace_nr-1] | | > + * | : | | > + * | stacktrace[stacktrace_nr] : [0] | | > + * +------------------------------------------------------------+ | > + * | stacktrace_nr | | > + * +------------------------------------------------------------+ | > + * | guest_domain_id | | > + * +------------------------------------------------------------+ | > + * |##pad#######################################################| | > + * +=======+=+===+==================+===========================+ | > + * | guest | | r | regs |##pad######################| | > + * +-------. +---. (xen or guest) |###########################| | > + * | +======================+===========================+ | > + * | |##pad2############################################| | > PAGE_SIZE > + * +=========+==================================================+ <. > */ > > #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */ Andriy Sultanov | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |