[Crash-utility] [PATCH] xen: support changed item in struct domain
Dietmar Hahn
dietmar.hahn at ts.fujitsu.com
Thu Mar 12 13:26:22 UTC 2015
Am Mittwoch 11 März 2015, 11:03:31 schrieb Dave Anderson:
>
> ----- Original Message -----
> > Hi,
> >
> > with xen version 4.2.5 in struct domain the item is_paused_by_controller
> > got changed to controller_pause_count and hence crash doesn't work on
> > newer xen environments.
> > This patch allows to support older and newer xen versions.
> >
> > Dietmar.
>
> Queued for crash-7.1.1:
>
> https://github.com/crash-utility/crash/commit/eff086f2d43541d22e9b2136dfc210e47f761853
Thanks a lot!
Dietmar.
>
> Thanks,
> Dave
>
> >
> >
> > diff -pNaur crash-7.1.0-org/xen_hyper.c crash-7.1.0/xen_hyper.c
> > --- crash-7.1.0-org/xen_hyper.c 2015-02-06 19:44:11.000000000 +0100
> > +++ crash-7.1.0/xen_hyper.c 2015-03-11 12:02:17.000000000 +0100
> > @@ -218,7 +218,12 @@ xen_hyper_domain_init(void)
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_is_polling, "domain", "is_polling");
> >
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_is_dying, "domain", "is_dying");
> > + /*
> > + * With Xen 4.2.5 is_paused_by_controller changed to
> > + * controller_pause_count.
> > + */
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_is_paused_by_controller, "domain",
> > "is_paused_by_controller");
> > + XEN_HYPER_MEMBER_OFFSET_INIT(domain_controller_pause_count, "domain",
> > "controller_pause_count");
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_is_shutting_down, "domain",
> > "is_shutting_down");
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_is_shut_down, "domain",
> > "is_shut_down");
> > XEN_HYPER_MEMBER_OFFSET_INIT(domain_vcpu, "domain", "vcpu");
> > @@ -1269,7 +1274,12 @@ xen_hyper_store_domain_context(struct xe
> > *(dp + XEN_HYPER_OFFSET(domain_is_polling))) {
> > dc->domain_flags |= XEN_HYPER_DOMS_polling;
> > }
> > - if (*(dp + XEN_HYPER_OFFSET(domain_is_paused_by_controller))) {
> > + if (XEN_HYPER_VALID_MEMBER(domain_is_paused_by_controller) &&
> > + *(dp + XEN_HYPER_OFFSET(domain_is_paused_by_controller))) {
> > + dc->domain_flags |= XEN_HYPER_DOMS_ctrl_pause;
> > + }
> > + if (XEN_HYPER_VALID_MEMBER(domain_controller_pause_count) &&
> > + *(dp + XEN_HYPER_OFFSET(domain_controller_pause_count))) {
> > dc->domain_flags |= XEN_HYPER_DOMS_ctrl_pause;
> > }
> > if (*(dp + XEN_HYPER_OFFSET(domain_is_dying))) {
> > diff -pNaur crash-7.1.0-org/xen_hyper_defs.h crash-7.1.0/xen_hyper_defs.h
> > --- crash-7.1.0-org/xen_hyper_defs.h 2015-02-06 19:44:11.000000000 +0100
> > +++ crash-7.1.0/xen_hyper_defs.h 2015-03-11 12:02:17.000000000 +0100
> > @@ -678,6 +678,10 @@ struct xen_hyper_offset_table {
> > long domain_debugger_attached;
> > long domain_is_polling;
> > long domain_is_dying;
> > + /*
> > + * This changed from xen-4.2.5 to domain_controller_pause_count.
> > + * See below!
> > + */
> > long domain_is_paused_by_controller;
> > long domain_is_shutting_down;
> > long domain_is_shut_down;
> > @@ -752,6 +756,8 @@ struct xen_hyper_offset_table {
> > long vcpu_runstate_info_state;
> > long vcpu_runstate_info_state_entry_time;
> > long vcpu_runstate_info_time;
> > + /* domain - changed item see domain_is_paused_by_controller */
> > + long domain_controller_pause_count;
> > };
> >
> > /*
> > diff -pNaur crash-7.1.0-org/xen_hyper_dump_tables.c
> > crash-7.1.0/xen_hyper_dump_tables.c
> > --- crash-7.1.0-org/xen_hyper_dump_tables.c 2015-02-06 19:44:11.000000000
> > +0100
> > +++ crash-7.1.0/xen_hyper_dump_tables.c 2015-03-11 12:05:59.000000000 +0100
> > @@ -784,8 +784,11 @@ xen_hyper_dump_xen_hyper_offset_table(ch
> > }
> > XEN_HYPER_PRI(fp, len, "domain_is_dying: ", buf, flag,
> > (buf, "%ld\n", xen_hyper_offset_table.domain_is_dying));
> > + /* Only one of next both exists but print both, ones value is -1. */
> > XEN_HYPER_PRI(fp, len, "domain_is_paused_by_controller: ", buf, flag,
> > (buf, "%ld\n", xen_hyper_offset_table.domain_is_paused_by_controller));
> > + XEN_HYPER_PRI(fp, len, "domain_controller_pause_count: ", buf, flag,
> > + (buf, "%ld\n", xen_hyper_offset_table.domain_controller_pause_count));
> > XEN_HYPER_PRI(fp, len, "domain_is_shutting_down: ", buf, flag,
> > (buf, "%ld\n", xen_hyper_offset_table.domain_is_shutting_down));
> > XEN_HYPER_PRI(fp, len, "domain_is_shut_down: ", buf, flag,
> >
> >
> >
> > --
> > Company details: http://ts.fujitsu.com/imprint.html
> >
> > --
> > Crash-utility mailing list
> > Crash-utility at redhat.com
> > https://www.redhat.com/mailman/listinfo/crash-utility
> >
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
>
--
Company details: http://ts.fujitsu.com/imprint.html
More information about the Crash-utility
mailing list