All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Slutz <dslutz@verizon.com>
To: Jan Beulich <JBeulich@suse.com>, Don Slutz <dslutz@verizon.com>
Cc: Ian Campbell <ian.campbell@citrix.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	George Dunlap <george.dunlap@eu.citrix.com>,
	Don Slutz <Don@CloudSwitch.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 04/16] xenctx: Add -2 (--two-pages) option to switch stack size to 8KiB
Date: Wed, 13 Nov 2013 12:19:33 -0500	[thread overview]
Message-ID: <5283B4A5.1010005@terremark.com> (raw)
In-Reply-To: <528257E7020000780010281A@nat28.tlf.novell.com>

On 11/12/13 10:31, Jan Beulich wrote:
>>>> On 11.11.13 at 19:15, Don Slutz <dslutz@verizon.com> wrote:
>> @@ -823,18 +826,20 @@ static void usage(void)
>>           kernel_start);
>>       printf("  -a, --all          display more registers\n");
>>       printf("  -C, --all-vcpus    print info for all vcpus\n");
>> +    printf("  -2, --two-pages    assume the kernel was compiled with 8KiB stacks.\n");
> I think it was IanC who had pointed out on the previous version
> that this would benefit from making fully flexible (i.e. also
> allowing larger stack sizes).
>
> Jan
>
Here is a fully flexible version:

 From 81f8af696816c02d13a6b29f6bb6ae8c4d99250d Mon Sep 17 00:00:00 2001
From: Don Slutz <Don@CloudSwitch.com>
Date: Mon, 2 Jul 2012 18:48:52 -0400
Subject: [PATCH] xenctx: Add -m (--multiple_pages) option to output larger
  stack

Important: This is the stack size to display not the configured
stack size.

Using pictures (for a 3 page configured system):

        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+
        |                  |
        |                  |
        |                  |
SP --> |                  |
        |                  |
        +------------------+

Display using "-m 1" since the used stack pages is 1.

        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+
        |                  |
SP --> |                  |
        |                  |
        |                  |
        |                  |
        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+

Display using "-m 2" since the used stack pages is 1.

        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
SP --> |                  |
        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+
        |                  |
        |                  |
        |                  |
        |                  |
        |                  |
        +------------------+

Display using "-m 3" since the used stack pages is 1.

Signed-off-by: Don Slutz <Don@CloudSwitch.com>
---
  tools/xentrace/xenctx.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c
index 841078d..2be5b08 100644
--- a/tools/xentrace/xenctx.c
+++ b/tools/xentrace/xenctx.c
@@ -35,6 +35,7 @@ static struct xenctx {
      int frame_ptrs;
      int stack_trace;
      int disp_all;
+    int multiple_pages;
      int all_vcpus;
      int self_paused;
      xc_dominfo_t dominfo;
@@ -650,6 +651,8 @@ static int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width)

      stack_limit = ((stack_pointer(ctx) + XC_PAGE_SIZE)
                     & ~((guest_word_t) XC_PAGE_SIZE - 1));
+    if (xenctx.multiple_pages > 1)
+        stack_limit += (xenctx.multiple_pages - 1) * XC_PAGE_SIZE;
      printf("\n");
      printf("Stack:\n");
      for (i=1; i<5 && stack < stack_limit; i++) {
@@ -823,18 +826,21 @@ static void usage(void)
          kernel_start);
      printf("  -a, --all          display more registers\n");
      printf("  -C, --all-vcpus    print info for all vcpus\n");
+    printf("  -m PAGES, --multiple-pages=PAGES\n");
+    printf("                     assume the kernel was compiled with PAGES (default 1) of stacks.\n");
  }

  int main(int argc, char **argv)
  {
      int ch;
      int ret;
-    static const char *sopts = "fs:hak:SC";
+    static const char *sopts = "fs:hak:SCm:";
      static const struct option lopts[] = {
          {"stack-trace", 0, NULL, 'S'},
          {"symbol-table", 1, NULL, 's'},
          {"frame-pointers", 0, NULL, 'f'},
          {"kernel-start", 1, NULL, 'k'},
+        {"multiple-pages", 0, NULL, 'm'},
          {"all", 0, NULL, 'a'},
          {"all-vcpus", 0, NULL, 'C'},
          {"help", 0, NULL, 'h'},
@@ -858,6 +864,9 @@ int main(int argc, char **argv)
          case 'a':
              xenctx.disp_all = 1;
              break;
+        case 'm':
+            xenctx.multiple_pages = strtol(optarg, NULL, 0);
+            break;
          case 'C':
              xenctx.all_vcpus = 1;
              break;
-- 
1.7.11.7

  reply	other threads:[~2013-11-13 17:20 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-11 18:15 [PATCH v3 00/16] xenctx: Many changes Don Slutz
2013-11-11 18:15 ` [PATCH v3 01/16] xenctx: clean up usage output Don Slutz
2013-11-13 17:24   ` Don Slutz
2013-11-11 18:15 ` [PATCH v3 02/16] xenctx: Correct check for xc_interface_open failing (prevents SIGSEGV) Don Slutz
2013-11-14 12:04   ` Don Slutz
2013-11-11 18:15 ` [PATCH v3 03/16] xenctx: Clean up stack trace when hypercall_page not in symbol table Don Slutz
2013-11-11 18:15 ` [PATCH v3 04/16] xenctx: Add -2 (--two-pages) option to switch stack size to 8KiB Don Slutz
2013-11-12 15:31   ` Jan Beulich
2013-11-13 17:19     ` Don Slutz [this message]
2013-11-11 18:15 ` [PATCH v3 05/16] xenctx: Add command line options -b and -l Don Slutz
2013-11-11 18:15 ` [PATCH v3 06/16] xenctx: Add command line option -D (--decode-as-ascii) Don Slutz
2013-11-11 18:15 ` [PATCH v3 07/16] xenctx: Add command line option -t (--tag-stack-dump) Don Slutz
2013-11-11 18:15 ` [PATCH v3 08/16] xenctx: Change print_symbol to do the space before Don Slutz
2013-11-11 18:15 ` [PATCH v3 09/16] xenctx: More info on failed to map page Don Slutz
2013-11-11 18:15 ` [PATCH v3 10/16] xenctx: Add command line option -T (--tag-call-trace) Don Slutz
2013-11-11 18:15 ` [PATCH v3 11/16] xenctx: Add -m <maddr> option to dump memory at maddr Don Slutz
2013-11-11 18:15 ` [PATCH v3 12/16] xenctx: Add -d <daddr> option to dump memory at daddr as a stack Don Slutz
2013-11-11 18:15 ` [PATCH v3 13/16] xenctx: change is_kernel_text() into kernel_addr() Don Slutz
2013-11-11 18:15 ` [PATCH v3 14/16] xenctx: Add convert of more registers to symbols Don Slutz
2013-11-11 18:15 ` [PATCH v3 15/16] xenctx: Add output of vcpu value and state for --all-vcpus Don Slutz
2013-11-11 18:15 ` [PATCH v3 16/16] MAINTAINERS: Add XENCTX maintainer Don Slutz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5283B4A5.1010005@terremark.com \
    --to=dslutz@verizon.com \
    --cc=Don@CloudSwitch.com \
    --cc=JBeulich@suse.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.