Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752861AbbKXFP2 (ORCPT ); Tue, 24 Nov 2015 00:15:28 -0500 Received: from mail-wm0-f47.google.com ([74.125.82.47]:35753 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751910AbbKXFPM (ORCPT ); Tue, 24 Nov 2015 00:15:12 -0500 MIME-Version: 1.0 In-Reply-To: References: Date: Mon, 23 Nov 2015 22:15:10 -0700 Message-ID: Subject: Re: Linux 4.3 kallsyms_lookup_name not returning per_cpu symbol values From: Jeffrey Merkey To: linux-kernel Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1915 Lines: 62 Got to the bottom of this one. bug closed. Jeff On 11/18/15, Jeffrey Merkey wrote: > kallsyms_lookup_name is not returning per_cpu symbols when called. > The symbols show up when you run something with the kallsyms_iter > struct but not through the regular interface. I have looked through > the code and I am not able to determine with certainty if its designed > this way or just busted. Any help with this would be appreciated. > > The following code does display the per_cpu symbols, they just don't > seem to show up when called from kallsyms_lookup_name. > > > struct kallsym_iter mdb_iter; > int mdb_kallsyms(char *str, int (*print)(char *s, ...)) > { > register loff_t pos = 0; > register struct kallsym_iter *iter = &mdb_iter; > > if (!print) > return 0; > > // set to beginning of the kallsyms list > reset_iter(iter, 0); > while (1) > { > // search the kallsyms list > if (!update_iter(iter, pos++)) > break; > > if (!iter->name[0]) > continue; > > // if an exclusion search was specified, skip non-matching entries > if (str && *str && !strstr(iter->name, str)) > continue; > > if (iter->module_name[0]) > { > if (print("%0*lx %c %s [%s]\n", (int)(2*sizeof(void*)), > iter->value, iter->type, iter->name, > iter->module_name)) > return 1; > } > else > { > if (print("%0*lx %c %s\n", (int)(2*sizeof(void*)), > iter->value, iter->type, iter->name)) > return 1; > } > } > return 0; > } > EXPORT_SYMBOL_GPL(mdb_kallsyms); > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/