Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-unstable
xen
xen.xentrace-74584a367051bc0d6f4b96fd360fa7bc65...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xen.xentrace-74584a367051bc0d6f4b96fd360fa7bc6538fc39.patch of Package xen
From: Olaf Hering <olaf@aepfle.de> Date: Mon, 19 Jun 2023 12:18:13 +0200 Subject: xentrace 74584a367051bc0d6f4b96fd360fa7bc6538fc39 Revert "xentrace: handle sparse cpu ids correctly in xen trace buffer handling" This reverts commit 74584a367051bc0d6f4b96fd360fa7bc6538fc39. --- tools/xentrace/xentrace.c | 2 +- xen/common/trace.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) --- a/tools/xentrace/xentrace.c +++ b/tools/xentrace/xentrace.c @@ -591,25 +591,25 @@ static unsigned int get_num_cpus(void) { xc_physinfo_t physinfo; int ret; ret = xc_physinfo(xc_handle, &physinfo); if ( ret != 0 ) { PERROR("Failure to get logical CPU count from Xen"); exit(EXIT_FAILURE); } - return physinfo.max_cpu_id + 1; + return physinfo.nr_cpus; } /** * event_init - setup to receive the VIRQ_TBUF event */ static void event_init(void) { int rc; xce_handle = xenevtchn_open(NULL, 0); if (xce_handle == NULL) { perror("event channel open"); --- a/xen/common/trace.c +++ b/xen/common/trace.c @@ -101,25 +101,25 @@ static uint32_t calc_tinfo_first_offset(void) * in the currently sized struct t_info and allows prod and cons to * reach double the value without overflow. * The t_info layout is fixed and cant be changed without breaking xentrace. * Initialize t_info_pages based on number of trace pages. */ static int calculate_tbuf_size(unsigned int pages, uint16_t t_info_first_offset) { struct t_buf dummy_size; typeof(dummy_size.prod) max_size; struct t_info dummy_pages; typeof(dummy_pages.tbuf_size) max_pages; typeof(dummy_pages.mfn_offset[0]) max_mfn_offset; - unsigned int max_cpus = nr_cpu_ids; + unsigned int max_cpus = num_online_cpus(); unsigned int t_info_words; /* force maximum value for an unsigned type */ max_size = -1; max_pages = -1; max_mfn_offset = -1; /* max size holds up to n pages */ max_size /= PAGE_SIZE; if ( max_size < max_pages ) max_pages = max_size; @@ -137,31 +137,31 @@ static int calculate_tbuf_size(unsigned int pages, uint16_t t_info_first_offset) max_pages = max_mfn_offset; if ( pages > max_pages ) { printk(XENLOG_INFO "xentrace: requested number of %u pages " "reduced to %u\n", pages, max_pages); pages = max_pages; } /* * NB this calculation is correct, because t_info_first_offset is - * in words, not bytes + * in words, not bytes, not bytes */ - t_info_words = nr_cpu_ids * pages + t_info_first_offset; + t_info_words = num_online_cpus() * pages + t_info_first_offset; t_info_pages = PFN_UP(t_info_words * sizeof(uint32_t)); printk(XENLOG_INFO "xentrace: requesting %u t_info pages " "for %u trace pages on %u cpus\n", - t_info_pages, pages, nr_cpu_ids); + t_info_pages, pages, num_online_cpus()); return pages; } /** * alloc_trace_bufs - performs initialization of the per-cpu trace buffers. * * This function is called at start of day in order to initialize the per-cpu * trace buffers. The trace buffers are then available for debugging use, via * the %TRACE_xD macros exported in <xen/trace.h>. * * This function may also be called later when enabling trace buffers * via the SET_SIZE hypercall.
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor