[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7 25/24] symbols/xsplice: Implement fast symbol names -> virtual addresses lookup
On Tue, Apr 12, 2016 at 10:03:12PM -0400, Konrad Rzeszutek Wilk wrote: > On Tue, Apr 12, 2016 at 04:59:02PM -0400, Konrad Rzeszutek Wilk wrote: > > The current mechanism is geared towards fast virtual address -> > > symbol names lookup. This is fine for the normal use cases > > (BUG_ON, WARN_ON, etc), but for xSplice - where we need to find > > hypervisor symbols - it is slow. > .. snip.. > > NEW CODE: > > Searching for symbols is simplified as we can do a binary search > > on symbol_names_sorted (and using symbols_markers_sorted). Since the > > symbols are sorted it takes on average 13 calls to symbols_expand_symbol. > > And there is a bug somewhere. The virtual address that was tied to > 'printk' actually ended up being tied to 'printed.21561'! > > As such, when reviewing this code be aware there is something I must have > missed! <blushes> diff --git a/xen/common/symbols.c b/xen/common/symbols.c index cfea93e..3d7e5b2 100644 --- a/xen/common/symbols.c +++ b/xen/common/symbols.c @@ -261,7 +261,7 @@ unsigned long symbols_lookup_by_name(const char *symname) else if ( rc > 0 ) low = mid + 1; else - return symbols_address(symbols_addresses_index_sorted[low]); + return symbols_address(symbols_addresses_index_sorted[mid]); } return 0; } Fixes it. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |