<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in kallsyms_internal.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>64e16609 - kallsyms: get rid of code for absolute kallsyms</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#64e16609</link>
        <description>kallsyms: get rid of code for absolute kallsymsCommit cf8e8658100d (&quot;arch: Remove Itanium (IA-64) architecture&quot;)removed the last use of the absolute kallsyms.Signed-off-by: Jann Horn &lt;jannh@google.com&gt;Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Link: https://lore.kernel.org/all/20240221202655.2423854-1-jannh@google.com/[masahiroy@kernel.org: rebase the code and reword the commit description]Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Wed, 21 Feb 2024 20:26:53 +0000</pubDate>
        <dc:creator>Jann Horn &lt;jannh@google.com&gt;</dc:creator>
    </item>
<item>
        <title>c442db3f - kbuild: remove PROVIDE() for kallsyms symbols</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#c442db3f</link>
        <description>kbuild: remove PROVIDE() for kallsyms symbolsThis reimplements commit 951bcae6c5a0 (&quot;kallsyms: Avoid weak referencesfor kallsyms symbols&quot;) because I am not a big fan of PROVIDE().As an alternative solution, this commit prepends one more kallsyms step.    KSYMS   .tmp_vmlinux.kallsyms0.S          # added    AS      .tmp_vmlinux.kallsyms0.o          # added    LD      .tmp_vmlinux.btf    BTF     .btf.vmlinux.bin.o    LD      .tmp_vmlinux.kallsyms1    NM      .tmp_vmlinux.kallsyms1.syms    KSYMS   .tmp_vmlinux.kallsyms1.S    AS      .tmp_vmlinux.kallsyms1.o    LD      .tmp_vmlinux.kallsyms2    NM      .tmp_vmlinux.kallsyms2.syms    KSYMS   .tmp_vmlinux.kallsyms2.S    AS      .tmp_vmlinux.kallsyms2.o    LD      vmlinuxStep 0 takes /dev/null as input, and generates .tmp_vmlinux.kallsyms0.o,which has a valid kallsyms format with the empty symbol list, and can belinked to vmlinux. Since it is really small, the added compile-time costis negligible.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Acked-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Reviewed-by: Nicolas Schier &lt;nicolas@fjasle.eu&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Mon, 10 Jun 2024 11:25:17 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>951bcae6 - kallsyms: Avoid weak references for kallsyms symbols</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#951bcae6</link>
        <description>kallsyms: Avoid weak references for kallsyms symbolskallsyms is a directory of all the symbols in the vmlinux binary, and socreating it is somewhat of a chicken-and-egg problem, as its non-zerosize affects the layout of the binary, and therefore the values of thesymbols.For this reason, the kernel is linked more than once, and the first passdoes not include any kallsyms data at all. For the linker to acceptthis, the symbol declarations describing the kallsyms metadata areemitted as having weak linkage, so they can remain unsatisfied. Duringthe subsequent passes, the weak references are satisfied by the kallsymsmetadata that was constructed based on information gathered from thepreceding passes.Weak references lead to somewhat worse codegen, because taking theiraddress may need to produce NULL (if the reference was unsatisfied), andthis is not usually supported by RIP or PC relative symbol references.Given that these references are ultimately always satisfied in the finallink, let&apos;s drop the weak annotation, and instead, provide fallbackdefinitions in the linker script that are only emitted if an unsatisfiedreference exists.While at it, drop the FRV specific annotation that these symbols residein .rodata - FRV is long gone.Tested-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt; # BootReviewed-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Link: https://lkml.kernel.org/r/20230504174320.3930345-1-ardb%40kernel.orgSigned-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Mon, 15 Apr 2024 16:20:43 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>19bd8981 - kallsyms: Reduce the memory occupied by kallsyms_seqs_of_names[]</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#19bd8981</link>
        <description>kallsyms: Reduce the memory occupied by kallsyms_seqs_of_names[]kallsyms_seqs_of_names[] records the symbol index sorted by address, themaximum value in kallsyms_seqs_of_names[] is the number of symbols. And2^24 = 16777216, which means that three bytes are enough to store theindex. This can help us save (1 * kallsyms_num_syms) bytes of memory.Signed-off-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;Signed-off-by: Luis Chamberlain &lt;mcgrof@kernel.org&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Wed, 02 Nov 2022 08:49:16 +0000</pubDate>
        <dc:creator>Zhen Lei &lt;thunder.leizhen@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>60443c88 - kallsyms: Improve the performance of kallsyms_lookup_name()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#60443c88</link>
        <description>kallsyms: Improve the performance of kallsyms_lookup_name()Currently, to search for a symbol, we need to expand the symbols in&apos;kallsyms_names&apos; one by one, and then use the expanded string forcomparison. It&apos;s O(n).If we sort names in ascending order like addresses, we can also usebinary search. It&apos;s O(log(n)).In order not to change the implementation of &quot;/proc/kallsyms&quot;, the tablekallsyms_names[] is still stored in a one-to-one correspondence with theaddress in ascending order.Add array kallsyms_seqs_of_names[], it&apos;s indexed by the sequence numberof the sorted names, and the corresponding content is the sequence numberof the sorted addresses. For example:Assume that the index of NameX in array kallsyms_seqs_of_names[] is &apos;i&apos;,the content of kallsyms_seqs_of_names[i] is &apos;k&apos;, then the correspondingaddress of NameX is kallsyms_addresses[k]. The offset in kallsyms_names[]is get_symbol_offset(k).Note that the memory usage will increase by (4 * kallsyms_num_syms)bytes, the next two patches will reduce (1 * kallsyms_num_syms) bytesand properly handle the case CONFIG_LTO_CLANG=y.Performance test results: (x86)Before:min=234, max=10364402, avg=5206926min=267, max=11168517, avg=5207587After:min=1016, max=90894, avg=7272min=1014, max=93470, avg=7293The average lookup performance of kallsyms_lookup_name() improved 715x.Signed-off-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;Signed-off-by: Luis Chamberlain &lt;mcgrof@kernel.org&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Wed, 02 Nov 2022 08:49:14 +0000</pubDate>
        <dc:creator>Zhen Lei &lt;thunder.leizhen@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>71f8c155 - kallsyms: move declarations to internal header</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/kallsyms_internal.h#71f8c155</link>
        <description>kallsyms: move declarations to internal headerPatch series &quot;Expose kallsyms data in vmcoreinfo note&quot;.The kernel can be configured to contain a lot of introspection ordebugging information built-in, such as ORC for unwinding stack traces,BTF for type information, and of course kallsyms.  Debuggers could usethis information to navigate a core dump or live system, but they need tobe able to find it.This patch series adds the necessary symbols into vmcoreinfo, which wouldallow a debugger to find and interpret the kallsyms table.  Using thekallsyms data, the debugger can then lookup any symbol, allowing it tofind ORC, BTF, or any other useful data.This would allow a live kernel, or core dump, to be debugged without anyDWARF debuginfo.  This is useful for many cases: the debuginfo may nothave been generated, or you may not want to deploy the large fileseverywhere you need them.I&apos;ve demonstrated a proof of concept for this at LSF/MM+BPF during alighting talk.  Using a work-in-progress branch of the drgn debugger, andan extended set of BTF generated by a patched version of dwarves, I&apos;vebeen able to open a core dump without any DWARF info and do basic taskssuch as enumerating slab caches, block devices, tasks, and doingbacktraces.  I hope this series can be a first step toward a newpossibility of &quot;DWARFless debugging&quot;.Related discussion around the BTF side of this:https://lore.kernel.org/bpf/586a6288-704a-f7a7-b256-e18a675927df@oracle.com/T/#uSome work-in-progress branches using this feature:https://github.com/brenns10/dwarves/tree/remove_percpu_restriction_1https://github.com/brenns10/drgn/tree/kallsyms_plus_btfThis patch (of 2):To include kallsyms data in the vmcoreinfo note, we must make the symboldeclarations visible outside of kallsyms.c.  Move these to a new internalheader file.Link: https://lkml.kernel.org/r/20220517000508.777145-1-stephen.s.brennan@oracle.comLink: https://lkml.kernel.org/r/20220517000508.777145-2-stephen.s.brennan@oracle.comSigned-off-by: Stephen Brennan &lt;stephen.s.brennan@oracle.com&gt;Acked-by: Baoquan He &lt;bhe@redhat.com&gt;Cc: Nick Desaulniers &lt;ndesaulniers@google.com&gt;Cc: Dave Young &lt;dyoung@redhat.com&gt;Cc: Kees Cook &lt;keescook@chromium.org&gt;Cc: Jiri Olsa &lt;jolsa@kernel.org&gt;Cc: Stephen Boyd &lt;swboyd@chromium.org&gt;Cc: Bixuan Cui &lt;cuibixuan@huawei.com&gt;Cc: David Vernet &lt;void@manifault.com&gt;Cc: Vivek Goyal &lt;vgoyal@redhat.com&gt;Cc: Sami Tolvanen &lt;samitolvanen@google.com&gt;Cc: &quot;Eric W. Biederman&quot; &lt;ebiederm@xmission.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/kernel/kallsyms_internal.h</description>
        <pubDate>Tue, 17 May 2022 00:05:07 +0000</pubDate>
        <dc:creator>Stephen Brennan &lt;stephen.s.brennan@oracle.com&gt;</dc:creator>
    </item>
</channel>
</rss>
