From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Slutz Subject: Re: [PATCH v5 04/17] xenctx: Add command line options -b (--bytes-per-line) and -l (--lines) Date: Sat, 22 Mar 2014 16:10:59 -0400 Message-ID: <532DEE53.5050602@terremark.com> References: <1395342425-16260-1-git-send-email-dslutz@verizon.com> <1395342425-16260-5-git-send-email-dslutz@verizon.com> <1395412371.19839.108.camel@kazak.uk.xensource.com> <532DEDC5.6020802@terremark.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <532DEDC5.6020802@terremark.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Don Slutz Cc: Ian Campbell , Stefano Stabellini , George Dunlap , Ian Jackson , xen-devel@lists.xen.org, Jan Beulich List-Id: xen-devel@lists.xenproject.org Grrr. Line wrapping strikes again. -Don Slutz On 03/22/14 16:08, Don Slutz wrote: > > On 03/21/14 10:32, Ian Campbell wrote: >> On Thu, 2014-03-20 at 15:06 -0400, Don Slutz wrote: >>> -b , --bytes-per-line >>> change the number of bytes per line output for >>> Stack. >>> (default 32) Note: rounded to native size (4 >>> or 8 bytes). >> I can just about see a use for this. > > This is much more useful when used with --decode-as-ascii or when you > have a wide "terminal". > >>> -l , --lines >>> change the number of lines output for Stack. >>> (default 5) >>> Can be specified as MAX. Note: Fewer lines >>> will be output >>> if Stack limit reached. >> What is this useful for which "less", "head" or "tail" can't achieve? > > By default only part of the stack is dumped: > > > > tools/xentrace/xenctx -s ~/zzm 4 -n 2 > rip: ffffffff81346876 io_serial_in+0x16 > flags: 00000002 nz > rsp: ffff8800385a5ab8 > rax: 000000000000006f rcx: 0000000000000000 rdx: 00000000000003fd > rbx: ffffffff81ff8f00 rsi: 0000000000000005 rdi: ffffffff81ff8f00 > rbp: ffff8800385a5ab8 r8: ffffffff81c03a10 r9: 0000000000000080 > r10: 0000000000000005 r11: 0000000000000046 r12: 000000000000270f > r13: 0000000000000020 r14: 0000000000000025 r15: ffffffff81346f20 > cs: 0010 ss: 0018 ds: 0000 es: 0000 > fs: 0000 @ 00007f07972f3700 > gs: 0000 @ ffff88000b400000/0000000000000000/ > Code (instr addr ffffffff81346876) > 48 89 e5 0f 1f 44 00 00 0f b6 4f 41 0f b7 57 08 d3 e6 01 f2 ec <0f> b6 > c0 c9 c3 0f 1f 44 00 00 55 > > > Stack: > ffff8800385a5ae8 ffffffff81346e64 ffffffff81ff8f00 0000000000000072 > 0000000000000064 0000000000000025 ffff8800385a5b08 ffffffff81346f46 > ffffffff81e3e430 ffffffff81ff8f00 ffff8800385a5b48 ffffffff813428de > ffffffff8100bc0e 0000000000000000 ffffffff81ff8f00 0000000000000001 > 0000000000000064 ffffffff81e3e40c ffff8800385a5b98 ffffffff813472ad > > Call Trace: > [] io_serial_in+0x16 <-- > [] wait_for_xmitr+0x24 > [] serial8250_console_putchar+0x26 > [] uart_console_write+0x3e > [] apic_timer_interrupt+0xe > [] serial8250_console_write+0xbd > [] __call_console_drivers+0x75 > [] _call_console_drivers+0x4a > [] release_console_sem+0x4e > [] vprintk+0x248 > [] printk+0x41 > > > Here is the same data with a bigger -l (domU is paused): > > tools/xentrace/xenctx -s ~/zzm 4 -n 2 -l 10 > rip: ffffffff81346876 io_serial_in+0x16 > flags: 00000002 nz > rsp: ffff8800385a5ab8 > rax: 000000000000006f rcx: 0000000000000000 rdx: 00000000000003fd > rbx: ffffffff81ff8f00 rsi: 0000000000000005 rdi: ffffffff81ff8f00 > rbp: ffff8800385a5ab8 r8: ffffffff81c03a10 r9: 0000000000000080 > r10: 0000000000000005 r11: 0000000000000046 r12: 000000000000270f > r13: 0000000000000020 r14: 0000000000000025 r15: ffffffff81346f20 > cs: 0010 ss: 0018 ds: 0000 es: 0000 > fs: 0000 @ 00007f07972f3700 > gs: 0000 @ ffff88000b400000/0000000000000000/ > Code (instr addr ffffffff81346876) > 48 89 e5 0f 1f 44 00 00 0f b6 4f 41 0f b7 57 08 d3 e6 01 f2 ec <0f> b6 > c0 c9 c3 0f 1f 44 00 00 55 > > > Stack: > ffff8800385a5ae8 ffffffff81346e64 ffffffff81ff8f00 0000000000000072 > 0000000000000064 0000000000000025 ffff8800385a5b08 ffffffff81346f46 > ffffffff81e3e430 ffffffff81ff8f00 ffff8800385a5b48 ffffffff813428de > ffffffff8100bc0e 0000000000000000 ffffffff81ff8f00 0000000000000001 > 0000000000000064 ffffffff81e3e40c ffff8800385a5b98 ffffffff813472ad > 00000000385a5cd8 0000000000000006 ffff8800385a5c08 ffffffff81affa00 > ffffffff81c03800 000000000001696c 0000000000000064 0000000000000046 > ffff8800385a5bc8 ffffffff8106b8f5 00000000000169d0 ffffffff81e2797c > 00000000000169d0 00000000000169d0 ffff8800385a5be8 ffffffff8106b95a > 206465697272616d 00000000fffff167 ffff8800385a5c28 ffffffff8106be6e > > Call Trace: > [] io_serial_in+0x16 <-- > [] wait_for_xmitr+0x24 > [] serial8250_console_putchar+0x26 > [] uart_console_write+0x3e > [] apic_timer_interrupt+0xe > [] serial8250_console_write+0xbd > [] __call_console_drivers+0x75 > [] _call_console_drivers+0x4a > [] release_console_sem+0x4e > [] vprintk+0x248 > [] printk+0x41 > > > "less", "head" or "tail" are unable to change xenctx, only control > what you see of xenctx's output. > > > >> >> In both cases though it seems to make the code more complicated for what >> seems to be a not all that useful increase in functionality. > > It is true that using the existing -S: > > tools/xentrace/xenctx -s ~/zzm 4 -S > rip: ffffffff81346876 io_serial_in+0x16 > flags: 00000002 nz > rsp: ffff8800385a5ab8 > rax: 000000000000006f rcx: 0000000000000000 rdx: 00000000000003fd > rbx: ffffffff81ff8f00 rsi: 0000000000000005 rdi: ffffffff81ff8f00 > rbp: ffff8800385a5ab8 r8: ffffffff81c03a10 r9: 0000000000000080 > r10: 0000000000000005 r11: 0000000000000046 r12: 000000000000270f > r13: 0000000000000020 r14: 0000000000000025 r15: ffffffff81346f20 > cs: 0010 ss: 0018 ds: 0000 es: 0000 > fs: 0000 @ 00007f07972f3700 > gs: 0000 @ ffff88000b400000/0000000000000000/ > Code (instr addr ffffffff81346876) > 48 89 e5 0f 1f 44 00 00 0f b6 4f 41 0f b7 57 08 d3 e6 01 f2 ec <0f> b6 > c0 c9 c3 0f 1f 44 00 00 55 > > > Stack: > ffff8800385a5ae8 ffffffff81346e64 ffffffff81ff8f00 0000000000000072 > 0000000000000064 0000000000000025 ffff8800385a5b08 ffffffff81346f46 > ffffffff81e3e430 ffffffff81ff8f00 ffff8800385a5b48 ffffffff813428de > ffffffff8100bc0e 0000000000000000 ffffffff81ff8f00 0000000000000001 > 0000000000000064 ffffffff81e3e40c ffff8800385a5b98 ffffffff813472ad > > Stack Trace: > * [] io_serial_in+0x16 <-- > ffff8800385a5ae8 > [] wait_for_xmitr+0x24 > ffffffff81ff8f00 > 0000000000000072 > 0000000000000064 > 0000000000000025 > ffff8800385a5b08 > [] serial8250_console_putchar+0x26 > ffffffff81e3e430 > ffffffff81ff8f00 > ffff8800385a5b48 > [] uart_console_write+0x3e > [] apic_timer_interrupt+0xe > 0000000000000000 > ffffffff81ff8f00 > 0000000000000001 > 0000000000000064 > ffffffff81e3e40c > ffff8800385a5b98 > [] serial8250_console_write+0xbd > 00000000385a5cd8 > 0000000000000006 > ffff8800385a5c08 > ffffffff81affa00 > ffffffff81c03800 > 000000000001696c > 0000000000000064 > 0000000000000046 > ffff8800385a5bc8 > [] __call_console_drivers+0x75 > 00000000000169d0 > ffffffff81e2797c > 00000000000169d0 > 00000000000169d0 > ffff8800385a5be8 > [] _call_console_drivers+0x4a > 206465697272616d > 00000000fffff167 > ffff8800385a5c28 > [] release_console_sem+0x4e > ffff8800385a5c18 > ffff8800385a5c6d > ffffffff81ea7b24 > 0000000000000064 > ffff8800385a5c58 > 0000000000000034 > ffff8800385a5cc8 > [] vprintk+0x248 > ffff8800385a5c98 > 0000000000000246 > 7420666f00000000 > ffff8800385a5ca8 > ffff8800385a5c68 > 343931206e692072 > 7365727065722035 > ffff8800385a5ca8 > 0000000000002710 > 0000000000002710 > ffffffff81c03a10 > 00000000d863e02e > ffff8800385a5d28 > ffff8800385a5d38 > 000000000000003b > 00000000021b9010 > 00007f07972b1010 > 0000000000000003 > ffff8800385a5d28 > [] printk+0x41 > 6874202c00000010 > ffff8800385a5d38 > ffff8800385a5cf8 > 656e696863616d20 > 616820796c6e6f20 > ffff8800385a5d38 > 0000000000002710 > 0000000000002710 > ffffffff81c03a10 > 0000000000000080 > ffff8800385a5db8 > ffffffffa00a919d > 696261706163206e > 6977202c7974696c > 20612074756f6874 > 206c6172746e6563 > 742079726f6d656d > 2065726f7473206f > 736d6172676f7270 > 74616420646e6120 > 754a206e49202e61 > 2c3534393120656e > 6f76206e686f4a20 > 6e616d75654e206e > 000000007570206e > 00000000d863e02e > ffff8800385a5dc8 > 000000000000003a > ffff8800385a5e48 > ffffffffa00a91e8 > 2064656873696c62 > 2072657061702061 > 64656c7469746e65 > 2074737269462720 > 666f207466617264 > 726f706572206120 > 656874206f742074 > 2c27434156444520 > 6820657265687720 > 6e696c74756f2065 > 6565726874206465 > 6320636973616220 > 000000006f706d6f > 00000000d863e02e > ffff8800385a5e58 > 0000000000000039 > ffff8800385a5ed8 > ffffffffa00a91e8 > 6f662073746e656e > 726f747320612072 > 72676f72702d6465 > 75706d6f63206d61 > 293128203a726574 > 726f6d656d206120 > 6961746e6f632079 > 746f6220676e696e > 6120617461642068 > 7274736e6920646e > 3b736e6f69746375 > 6320612029322820 > 0000000075636c61 > 00000000d863e02e > ffff8800385a5ee8 > 0000000000000038 > ffff8800385a5f68 > ffffffffa00a91e8 > 7520676e6974616c > 617061632074696e > 7020666f20656c62 > 6e696d726f667265 > 612068746f622067 > 6974656d68746972 > 6f6c20646e612063 > 706f206c61636967 > 736e6f6974617265 > 20656874206e6f20 > 6e61202c61746164 > 2061202933282064 > 00000000746e6f63 > 00000000d863e02e > ffff8800385a5f78 > 0000000000000037 > ffff8800385a5ff8 > ffffffffa00a91e8 > 74696e75206c6f72 > 65746e69206f7420 > 6e69207465727072 > 6f69746375727473 > 65726f747320736e > 6d656d206e692064 > 20646e612079726f > 63656e20656b616d > 6120797261737365 > 202e736e6f697463 > 2073692073696854 > 63206f7320656874 > 00000000656c6c61 > 00000000d863e02e > ffff8800385a6008 > 0000000000000036 > ffff8800385a6088 > > > And other tools, you can reformat this output into what -l gives. > > > It is not that each change makes a big difference, that happens when > several are used at one time: > > > tools/xentrace/xenctx -s ~/zzm 4 -l 200 -D -t -b 64 > rip: ffffffff81346876 io_serial_in+0x16 > flags: 00000002 nz > rsp: ffff8800385a5ab8 > rax: 000000000000006f rcx: 0000000000000000 rdx: 00000000000003fd > rbx: ffffffff81ff8f00 rsi: 0000000000000005 rdi: ffffffff81ff8f00 > rbp: ffff8800385a5ab8 r8: ffffffff81c03a10 r9: 0000000000000080 > r10: 0000000000000005 r11: 0000000000000046 r12: 000000000000270f > r13: 0000000000000020 r14: 0000000000000025 r15: ffffffff81346f20 > cs: 0010 ss: 0018 ds: 0000 es: 0000 > fs: 0000 @ 00007f07972f3700 > gs: 0000 @ ffff88000b400000/0000000000000000/ > Code (instr addr ffffffff81346876) > 48 89 e5 0f 1f 44 00 00 0f b6 4f 41 0f b7 57 08 d3 e6 01 f2 ec <0f> b6 > c0 c9 c3 0f 1f 44 00 00 55 > > > Stack: > ffff8800385a5ab8: ffff8800385a5ae8 ffffffff81346e64 ffffffff81ff8f00 > 0000000000000072 0000000000000064 0000000000000025 ffff8800385a5b08 > ffffffff81346f46 > .ZZ8....dn4.............r.......d.......%........[Z8....Fo4..... > ffff8800385a5af8: ffffffff81e3e430 ffffffff81ff8f00 ffff8800385a5b48 > ffffffff813428de ffffffff8100bc0e 0000000000000000 ffffffff81ff8f00 > 0000000000000001 > 0...............H[Z8.....(4..................................... > ffff8800385a5b38: 0000000000000064 ffffffff81e3e40c ffff8800385a5b98 > ffffffff813472ad 00000000385a5cd8 0000000000000006 ffff8800385a5c08 > ffffffff81affa00 > d................[Z8.....r4......\Z8.............\Z8............ > ffff8800385a5b78: ffffffff81c03800 000000000001696c 0000000000000064 > 0000000000000046 ffff8800385a5bc8 ffffffff8106b8f5 00000000000169d0 > ffffffff81e2797c > .8......li......d.......F........[Z8.............i......|y...... > ffff8800385a5bb8: 00000000000169d0 00000000000169d0 ffff8800385a5be8 > ffffffff8106b95a 206465697272616d 00000000fffff167 ffff8800385a5c28 > ffffffff8106be6e .i.......i.......[Z8....Z.......married > g.......(\Z8....n....... > ffff8800385a5bf8: ffff8800385a5c18 ffff8800385a5c6d ffffffff81ea7b24 > 0000000000000064 ffff8800385a5c58 0000000000000034 ffff8800385a5cc8 > ffffffff8106c628 > .\Z8....m\Z8....${......d.......X\Z8....4........\Z8....(....... > ffff8800385a5c38: ffff8800385a5c98 0000000000000246 7420666f00000000 > ffff8800385a5ca8 ffff8800385a5c68 343931206e692072 7365727065722035 > ffff8800385a5ca8 .\Z8....F...........of t.\Z8....h\Z8....r in 1945 > repres.\Z8.... > ffff8800385a5c78: 0000000000002710 0000000000002710 ffffffff81c03a10 > 00000000d863e02e ffff8800385a5d28 ffff8800385a5d38 000000000000003b > 00000000021b9010 > .'.......'.......:........c.....(]Z8....8]Z8....;............... > ffff8800385a5cb8: 00007f07972b1010 0000000000000003 ffff8800385a5d28 > ffffffff814fd363 6874202c00000010 ffff8800385a5d38 ffff8800385a5cf8 > 656e696863616d20 ..+.............(]Z8....c.O........., > th8]Z8.....\Z8.... machine > ffff8800385a5cf8: 616820796c6e6f20 ffff8800385a5d38 0000000000002710 > 0000000000002710 ffffffff81c03a10 0000000000000080 ffff8800385a5db8 > ffffffffa00a919d only > ha8]Z8.....'.......'.......:...............]Z8............ > ffff8800385a5d38: 696261706163206e 6977202c7974696c 20612074756f6874 > 206c6172746e6563 742079726f6d656d 2065726f7473206f 736d6172676f7270 > 74616420646e6120 n capability, without a central memory to store > programs and dat > ffff8800385a5d78: 754a206e49202e61 2c3534393120656e 6f76206e686f4a20 > 6e616d75654e206e 000000007570206e 00000000d863e02e ffff8800385a5dc8 > 000000000000003a a. In June 1945, John von Neumann > pu......c......]Z8....:....... > ffff8800385a5db8: ffff8800385a5e48 ffffffffa00a91e8 2064656873696c62 > 2072657061702061 64656c7469746e65 2074737269462720 666f207466617264 > 726f706572206120 H^Z8............blished a paper entitled 'First draft > of a repor > ffff8800385a5df8: 656874206f742074 2c27434156444520 6820657265687720 > 6e696c74756f2065 6565726874206465 6320636973616220 000000006f706d6f > 00000000d863e02e t to the EDVAC', where he outlined three basic > compo......c..... > ffff8800385a5e38: ffff8800385a5e58 0000000000000039 ffff8800385a5ed8 > ffffffffa00a91e8 6f662073746e656e 726f747320612072 72676f72702d6465 > 75706d6f63206d61 X^Z8....9........^Z8............nents for a > stored-program compu > ffff8800385a5e78: 293128203a726574 726f6d656d206120 6961746e6f632079 > 746f6220676e696e 6120617461642068 7274736e6920646e 3b736e6f69746375 > 6320612029322820 ter: (1) a memory containing both data and > instructions; (2) a c > ffff8800385a5eb8: 0000000075636c61 00000000d863e02e ffff8800385a5ee8 > 0000000000000038 ffff8800385a5f68 ffffffffa00a91e8 7520676e6974616c > 617061632074696e > alcu......c......^Z8....8.......h_Z8............lating unit capa > ffff8800385a5ef8: 7020666f20656c62 6e696d726f667265 612068746f622067 > 6974656d68746972 6f6c20646e612063 706f206c61636967 736e6f6974617265 > 20656874206e6f20 ble of performing both arithmetic and logical > operations on the > ffff8800385a5f38: 6e61202c61746164 2061202933282064 00000000746e6f63 > 00000000d863e02e ffff8800385a5f78 0000000000000037 ffff8800385a5ff8 > ffffffffa00a91e8 data, and (3) a > cont......c.....x_Z8....7........_Z8............ > ffff8800385a5f78: 74696e75206c6f72 65746e69206f7420 6e69207465727072 > 6f69746375727473 65726f747320736e 6d656d206e692064 20646e612079726f > 63656e20656b616d rol unit to interpret instructions stored in memory > and make nec > ffff8800385a5fb8: 6120797261737365 202e736e6f697463 2073692073696854 > 63206f7320656874 00000000656c6c61 00000000d863e02e ffff8800385a6008 > 0000000000000036 essary actions. This is the so > calle......c......`Z8....6....... > ffff8800385a5ff8: ffff8800385a6088 .`Z8.... > > Call Trace: > [] io_serial_in+0x16 <-- > [] wait_for_xmitr+0x24 > [] serial8250_console_putchar+0x26 > [] uart_console_write+0x3e > [] apic_timer_interrupt+0xe > [] serial8250_console_write+0xbd > [] __call_console_drivers+0x75 > [] _call_console_drivers+0x4a > [] release_console_sem+0x4e > [] vprintk+0x248 > [] printk+0x41 > > > -Don Slutz > >>> Signed-off-by: Don Slutz >>> --- >> Ian. >> >