[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/4] xenctx: remove remnants of ia64 support
>>> On 12.04.13 at 15:13, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote: > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> > --- > tools/xentrace/xenctx.c | 302 > +---------------------------------------------- > 1 files changed, 1 insertions(+), 301 deletions(-) > > diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c > index 62327f7..70a5455 100644 > --- a/tools/xentrace/xenctx.c > +++ b/tools/xentrace/xenctx.c > @@ -49,18 +49,6 @@ int guest_word_size = sizeof (unsigned long); > /* Word-length of the context record we get from xen */ > int ctxt_word_size = sizeof (unsigned long); > int guest_protected_mode = 1; > -#elif defined (__ia64__) > -/* On ia64, we can't translate virtual address to physical address. */ > -#define NO_TRANSLATION > -typedef size_t guest_word_t; > - > -/* Which registers should be displayed. */ > -int disp_cr_regs; > -int disp_ar_regs; > -int disp_br_regs; > -int disp_bank_regs; > -int disp_tlb; > - > #elif defined(__arm__) > #define NO_TRANSLATION > typedef uint64_t guest_word_t; > @@ -442,248 +430,6 @@ static guest_word_t > frame_pointer(vcpu_guest_context_any_t *ctx) > return ctx->x64.user_regs.rbp; > } > > -#elif defined(__ia64__) > - > -#define PTE_ED_SHIFT 52 > -#define PTE_ED_MASK 1 > -#define PTE_PPN_SHIFT 12 > -#define PTE_PPN_MASK 0x3fffffffff > -#define PTE_AR_SHIFT 9 > -#define PTE_AR_MASK 7 > -#define PTE_PL_SHIFT 7 > -#define PTE_PL_MASK 3 > -#define PTE_D_SHIFT 6 > -#define PTE_D_MASK 1 > -#define PTE_A_SHIFT 5 > -#define PTE_A_MASK 1 > -#define PTE_MA_SHIFT 2 > -#define PTE_MA_MASK 7 > -#define PTE_P_SHIFT 0 > -#define PTE_P_MASK 1 > -#define ITIR_KEY_SHIFT 8 > -#define ITIR_KEY_MASK 0xffffff > -#define ITIR_PS_SHIFT 2 > -#define ITIR_PS_MASK 0x3f > -#define ITIR_PS_MIN 12 > -#define ITIR_PS_MAX 28 > -#define RR_RID_SHIFT 8 > -#define RR_RID_MASK 0xffffff > -#define PSR_BN (1UL << 44) > -#define CFM_SOF_MASK 0x3f > - > -static void print_tr(int i, const struct ia64_tr_entry *tr) > -{ > - int ps_val, ma_val; > - unsigned long pa; > - > - static const char ps[][5] = {" 4K", " 8K", " 16K", " ", > - " 64K", " ", "256K", " ", > - " 1M", " ", " 4M", " ", > - " 16M", " ", " 64M", " ", > - "256M"}; > - static const char ma[][4] = {"WB ", " ", " ", " ", > - "UC ", "UCE", "WC ", "Nat"}; > - > - ps_val = tr->itir >> ITIR_PS_SHIFT & ITIR_PS_MASK; > - ma_val = tr->pte >> PTE_MA_SHIFT & PTE_MA_MASK; > - pa = (tr->pte >> PTE_PPN_SHIFT & PTE_PPN_MASK) << PTE_PPN_SHIFT; > - pa = (pa >> ps_val) << ps_val; > - printf(" [%d] %ld %06lx %016lx %013lx %02x %s %ld %ld %ld %ld " > - "%ld %d %s %06lx\n", i, > - tr->pte >> PTE_P_SHIFT & PTE_P_MASK, > - tr->rid >> RR_RID_SHIFT & RR_RID_MASK, > - tr->vadr, pa, ps_val, > - ((ps_val >= ITIR_PS_MIN && ps_val <= ITIR_PS_MAX) ? > - ps[ps_val - ITIR_PS_MIN] : " "), > - tr->pte >> PTE_ED_SHIFT & PTE_ED_MASK, > - tr->pte >> PTE_PL_SHIFT & PTE_PL_MASK, > - tr->pte >> PTE_AR_SHIFT & PTE_AR_MASK, > - tr->pte >> PTE_A_SHIFT & PTE_A_MASK, > - tr->pte >> PTE_D_SHIFT & PTE_D_MASK, > - ma_val, ma[ma_val], > - tr->itir >> ITIR_KEY_SHIFT & ITIR_KEY_MASK); > -} > - > -void print_ctx(vcpu_guest_context_any_t *ctx) > -{ > - struct vcpu_guest_context_regs *regs = &ctx->c.regs; > - struct vcpu_tr_regs *tr = &ctx->c.regs.tr; > - int i; > - unsigned int rbs_size, cfm_sof; > - > - printf(" ip: %016lx ", regs->ip); > - print_symbol(regs->ip); > - printf("\n"); > - printf(" psr: %016lx ", regs->psr); > - printf(" cfm: %016lx ", regs->cfm); > - printf(" pr: %016lx\n", regs->pr); > - > - if (disp_br_regs) { > - printf(" b0: %016lx ", regs->b[0]); > - printf(" b1: %016lx ", regs->b[1]); > - printf(" b2: %016lx\n", regs->b[2]); > - printf(" b3: %016lx ", regs->b[3]); > - printf(" b4: %016lx ", regs->b[4]); > - printf(" b5: %016lx\n", regs->b[5]); > - printf(" b6: %016lx ", regs->b[6]); > - printf(" b7: %016lx\n", regs->b[7]); > - } else { > - printf(" b0: %016lx\n", regs->b[0]); > - } > - > - if (disp_cr_regs) { > - printf ("\n" > - " CR:\n"); > - printf(" dcr: %016lx ", regs->cr.dcr); > - printf(" itm: %016lx ", regs->cr.itm); > - printf(" iva: %016lx\n", regs->cr.iva); > - printf(" pta: %016lx ", regs->cr.pta); > - printf(" ipsr: %016lx ", regs->cr.ipsr); > - printf(" isr: %016lx\n", regs->cr.isr); > - printf(" iip: %016lx ", regs->cr.iip); > - printf(" ifa: %016lx ", regs->cr.ifa); > - printf(" itir: %016lx\n", regs->cr.itir); > - printf(" iipa: %016lx ", regs->cr.iipa); > - printf(" ifs: %016lx ", regs->cr.ifs); > - printf(" iim: %016lx\n", regs->cr.iim); > - printf(" iha: %016lx ", regs->cr.iha); > - printf(" lid: %016lx ", regs->cr.lid); > - printf(" ivr: %016lx\n", regs->cr.ivr); > - printf(" tpr: %016lx ", regs->cr.tpr); > - printf(" eoi: %016lx ", regs->cr.eoi); > - printf(" irr0: %016lx\n", regs->cr.irr[0]); > - printf(" irr1: %016lx ", regs->cr.irr[1]); > - printf(" irr2: %016lx ", regs->cr.irr[2]); > - printf(" irr3: %016lx\n", regs->cr.irr[3]); > - printf(" itv: %016lx ", regs->cr.itv); > - printf(" pmv: %016lx ", regs->cr.pmv); > - printf(" cmcv: %016lx\n", regs->cr.cmcv); > - printf(" lrr0: %016lx ", regs->cr.lrr0); > - printf(" lrr1: %016lx ", regs->cr.lrr1); > - printf(" ev_cb:%016lx\n", ctx->c.event_callback_ip); > - > - } > - if (disp_ar_regs) { > - printf ("\n" > - " AR:\n"); > - printf(" kr0: %016lx ", regs->ar.kr[0]); > - printf(" kr1: %016lx ", regs->ar.kr[1]); > - printf(" kr2: %016lx\n", regs->ar.kr[2]); > - printf(" kr3: %016lx ", regs->ar.kr[3]); > - printf(" kr4: %016lx ", regs->ar.kr[4]); > - printf(" kr5: %016lx\n", regs->ar.kr[5]); > - printf(" kr6: %016lx ", regs->ar.kr[6]); > - printf(" kr7: %016lx ", regs->ar.kr[7]); > - printf(" rsc: %016lx\n", regs->ar.rsc); > - printf(" bsp: %016lx ", regs->ar.bsp); > - printf(" bsps: %016lx ", regs->ar.bspstore); > - printf(" rnat: %016lx\n", regs->ar.rnat); > - printf(" csd: %016lx ", regs->ar.csd); > - printf(" ccv: %016lx ", regs->ar.ccv); > - printf(" unat: %016lx\n", regs->ar.unat); > - printf(" fpsr: %016lx ", regs->ar.fpsr); > - printf(" itc: %016lx\n", regs->ar.itc); > - printf(" pfs: %016lx ", regs->ar.pfs); > - printf(" lc: %016lx ", regs->ar.lc); > - printf(" ec: %016lx\n", regs->ar.ec); > - } > - printf("\n"); > - printf(" r1: %016lx ", regs->r[1]); > - printf(" r2: %016lx ", regs->r[2]); > - printf(" r3: %016lx\n", regs->r[3]); > - printf(" r4: %016lx ", regs->r[4]); > - printf(" r5: %016lx ", regs->r[5]); > - printf(" r6: %016lx\n", regs->r[6]); > - printf(" r7: %016lx ", regs->r[7]); > - printf(" r8: %016lx ", regs->r[8]); > - printf(" r9: %016lx\n", regs->r[9]); > - printf(" r10: %016lx ", regs->r[10]); > - printf(" r11: %016lx ", regs->r[11]); > - printf(" sp: %016lx\n", regs->r[12]); > - printf(" tp: %016lx ", regs->r[13]); > - printf(" r14: %016lx ", regs->r[14]); > - printf(" r15: %016lx\n", regs->r[15]); > - if (disp_bank_regs) { > - printf(" Bank %d (current) Bank %d\n", > - (regs->psr & PSR_BN) ? 1 : 0, (regs->psr & PSR_BN) ? 0 : 1); > - printf ("16:%016lx ", regs->r[16]); > - printf ("17:%016lx ", regs->r[17]); > - printf ("16:%016lx ", regs->bank[0]); > - printf ("17:%016lx\n", regs->bank[1]); > - printf ("18:%016lx ", regs->r[18]); > - printf ("19:%016lx ", regs->r[19]); > - printf ("18:%016lx ", regs->bank[2]); > - printf ("19:%016lx\n", regs->bank[3]); > - printf ("20:%016lx ", regs->r[20]); > - printf ("21:%016lx ", regs->r[21]); > - printf ("20:%016lx ", regs->bank[4]); > - printf ("21:%016lx\n", regs->bank[5]); > - printf ("22:%016lx ", regs->r[22]); > - printf ("23:%016lx ", regs->r[23]); > - printf ("22:%016lx ", regs->bank[6]); > - printf ("23:%016lx\n", regs->bank[7]); > - printf ("24:%016lx ", regs->r[24]); > - printf ("25:%016lx ", regs->r[25]); > - printf ("24:%016lx ", regs->bank[8]); > - printf ("25:%016lx\n", regs->bank[9]); > - printf ("26:%016lx ", regs->r[26]); > - printf ("27:%016lx ", regs->r[27]); > - printf ("26:%016lx ", regs->bank[10]); > - printf ("27:%016lx\n", regs->bank[11]); > - printf ("28:%016lx ", regs->r[28]); > - printf ("29:%016lx ", regs->r[29]); > - printf ("28:%016lx ", regs->bank[12]); > - printf ("29:%016lx\n", regs->bank[13]); > - printf ("30:%016lx ", regs->r[30]); > - printf ("31:%016lx ", regs->r[31]); > - printf ("30:%016lx ", regs->bank[14]); > - printf ("31:%016lx\n", regs->bank[15]); > - } else { > - printf(" r16: %016lx ", regs->r[16]); > - printf(" r17: %016lx ", regs->r[17]); > - printf(" r18: %016lx\n", regs->r[18]); > - printf(" r19: %016lx ", regs->r[19]); > - printf(" r20: %016lx ", regs->r[20]); > - printf(" r21: %016lx\n", regs->r[21]); > - printf(" r22: %016lx ", regs->r[22]); > - printf(" r23: %016lx ", regs->r[23]); > - printf(" r24: %016lx\n", regs->r[24]); > - printf(" r25: %016lx ", regs->r[25]); > - printf(" r26: %016lx ", regs->r[26]); > - printf(" r27: %016lx\n", regs->r[27]); > - printf(" r28: %016lx ", regs->r[28]); > - printf(" r29: %016lx ", regs->r[29]); > - printf(" r30: %016lx\n", regs->r[30]); > - printf(" r31: %016lx\n", regs->r[31]); > - } > - > - printf("\n"); > - rbs_size = (regs->ar.bsp - regs->ar.bspstore) / 8; > - cfm_sof = (regs->cfm & CFM_SOF_MASK); > - for (i = 0; i < cfm_sof; i++) { > - int off = cfm_sof - i; > - unsigned int rbs_off = > - (((62 - ((rbs_size + regs->rbs_voff) % 63) + off)) / 63) + off; > - if (rbs_off > rbs_size) > - break; > - printf(" r%02d: %016lx%s", 32 + i, > - regs->rbs[rbs_size - rbs_off], > - (i % 3) != 2 ? " " : "\n"); > - } > - if ((i % 3) != 0) > - printf ("\n"); > - > - if (disp_tlb) { > - printf("\n itr: P rid va pa ps ed > pl " > - "ar a d ma key\n"); > - for (i = 0; i < 8; i++) > - print_tr(i, &tr->itrs[i]); > - printf("\n dtr: P rid va pa ps ed > pl " > - "ar a d ma key\n"); > - for (i = 0; i < 8; i++) > - print_tr(i, &tr->dtrs[i]); > - } > -} > #elif defined(__arm__) > static void print_ctx(vcpu_guest_context_any_t *ctx) > { > @@ -940,12 +686,7 @@ static void usage(void) > printf(" -S --stack-trace print a complete stack trace.\n"); > printf(" -k, --kernel-start\n"); > printf(" set user/kernel split. (default > 0xc0000000)\n"); > -#ifdef __ia64__ > - printf(" -r LIST, --regs=LIST display more registers.\n"); > - printf(" -a --all same as --regs=tlb,cr,ar,br,bk\n"); > -#else > printf(" -a --all display more registers\n"); > -#endif > printf(" -C --all-vcpus print info for all vcpus\n"); > } > > @@ -953,19 +694,12 @@ int main(int argc, char **argv) > { > int ch; > int ret; > - static const char *sopts = "fs:hak:SC" > -#ifdef __ia64__ > - "r:" > -#endif > - ; > + static const char *sopts = "fs:hak:SC"; > 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'}, > -#ifdef __ia64__ > - {"regs", 1, NULL, 'r'}, > -#endif > {"all", 0, NULL, 'a'}, > {"all-vcpus", 0, NULL, 'C'}, > {"help", 0, NULL, 'h'}, > @@ -986,43 +720,9 @@ int main(int argc, char **argv) > case 'S': > xenctx.stack_trace = 1; > break; > -#ifdef __ia64__ > - case 'r': > - { > - char *r; > - > - r = strtok(optarg, ","); > - while (r) { > - if (strcmp (r, "cr") == 0) > - disp_cr_regs = 1; > - else if (strcmp (r, "ar") == 0) > - disp_ar_regs = 1; > - else if (strcmp (r, "br") == 0) > - disp_br_regs = 1; > - else if (strcmp (r, "bk") == 0) > - disp_bank_regs = 1; > - else if (strcmp (r, "tlb") == 0) > - disp_tlb = 1; > - else { > - fprintf(stderr,"unknown register set %s\n", r); > - exit(-1); > - } > - r = strtok(NULL, "'"); > - } > - } > - break; > - case 'a': > - disp_cr_regs = 1; > - disp_ar_regs = 1; > - disp_br_regs = 1; > - disp_bank_regs = 1; > - disp_tlb = 1; > - break; > -#else > case 'a': > xenctx.disp_all = 1; > break; > -#endif > case 'C': > xenctx.all_vcpus = 1; > break; > -- > 1.7.9.1 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |