On Tue, Sep 18, 2018 at 08:21:09AM -0400, Prarit Bhargava wrote: > On 09/17/2018 07:36 PM, Daniel Thompson wrote: > > On Mon, Sep 17, 2018 at 07:08:44PM -0400, Prarit Bhargava wrote: > >> > >> > >> On 09/17/2018 06:46 PM, Daniel Thompson wrote: > >>> On Tue, Sep 11, 2018 at 01:29:42PM -0400, Prarit Bhargava wrote: > >>>> As a test I hacked the buffer size to 16 and entered kdb: > >>>> > >>>> [16]kdb> > >>>> 117661 symbols are found. But only first 30 symbols will be printed. > >>>> You can change the environment variable DTABCOUNT. > >>>> irq_stack_union __per_cpu_start cpu_debug_store cpu_tss_rw gdt_page > >>>> exception_stack... entry_stack_sto... espfix_waddr espfix_stack > >>>> cpu_llc_id cpu_llc_shared_... cpu_core_map cpu_sibling_map cpu_info > >>>> cpu_number this_cpu_off x86_cpu_to_acpi... x86_cpu_to_apic... > >>>> x86_bios_cpu_ap... sched_core_prio... cpu_loops_per_j... pmc_prev_left > >>>> cpu_hw_events bts_ctx insn_buffer pt_ctx xen_vcpu_info xen_vcpu_id > >>>> xen_vcpu mc_buffer ... > >>> > >>> I don't quite understand what is being tested here (I thought the code > >>> you changed was only reached after tab is pressed twice) and you haven't > >>> shared what conclusion you have drawn from this test. > >>> > >> Hi Daniel, my apologies. Here's a more detailed explanation. > >> > >> I didn't feel comfortable submitting the code without testing and the > >> problem is > >> that I couldn't think of a kernel symbol that was 128 bytes in size that > >> would > >> be truncated so that ellipses would be printed out. What I decided to do > >> is > >> apply my patch *and* change the buffer size to 16, then rebuilt the kernel, > >> booted the kernel, and selected the ttyS0 as the buffer console. I > >> entered kdb > >> using "echo g > /proc/sysrq-trigger" and hit tab twice to test the code. > >> > >> The above output confirms that the code is working as expected. Any symbol > >> larger than 15 is truncated and appended with ellipses, for example > >> "cpu_llc_shared_...". Symbols smaller than 15 are fully output, for > >> example, > >> cpu_llc_id. > >> > >> IOW, it looks like the code works as expected. > > > > I cannot replicate the ellipsis behaviour my filling the read buffer > > until it is full (256 character command) and then deleting a few > > characters and then trying to tab complete. > > > > I'm not sure if I have misunderstood the code or your test! Can you > > share the change you made for testing as a patch? > > > > Sure ... sorry for the cut-and-paste but it's a one line patch.
Ok. That was what I thought but I cannot reproduce this behaviour (which is hardly suprising since I cannot find any code to issue an ellipsis). Forgive my asking... I'm at a conference so I'm both busy and slightly jet lagged so the mistake could easily be on my side, but is there any chance you have written a v2 patch but not posted it to the ML yet ;-) ? Daniel. > > diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c > index 6a4b41484afe..51c38922f2ba 100644 > --- a/kernel/debug/kdb/kdb_io.c > +++ b/kernel/debug/kdb/kdb_io.c > @@ -209,7 +209,7 @@ static char *kdb_read(char *buffer, size_t bufsize) > char *lastchar; > char *p_tmp; > char tmp; > - static char tmpbuffer[CMD_BUFLEN]; > + static char tmpbuffer[16]; /* ellipses for symbols larger than 15 */ > int len = strlen(buffer); > int len_tmp; > int tab = 0; > > P. > > > > > Daniel. > > > >> > >> P. > >> > >>> > >>> Daniel. > >>> _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport