> by leaving there only the x86-specific part, i.e.:
>      struct {
>         uint8_t mov_to_msr_enabled          : 1;
>         uint8_t mov_to_msr_extended         : 1;
>      } monitor;
>
> and moving the rest directly into the domain structure, i.e. add @ the end
> of struct domain [@ xen/include/xen/sched.h]:
>      struct {
>         uint16_t write_ctrlreg_enabled       : 4;
>         uint16_t write_ctrlreg_sync          : 4;
>         uint16_t write_ctrlreg_onchangeonly  : 4;
>         uint16_t singlestep_enabled          : 1;
>         uint16_t software_breakpoint_enabled : 1;
>         uint16_t guest_request_enabled       : 1;
>         uint16_t guest_request_sync          : 1;
>      } monitor;
>

Beside guest_request_enable/sync I'm fairly sure all the other bits are x86
specific. For example the ctrlreg fields are 4 bits wide to correspond to
the 4 x86 CR regs for which we can get hardware events (VM_EVENT_X86_*).
You should not be moving those in that form into common. For ARM you should
create an arch specific monitor structure for events that you can actually
capture (SMC, etc.). So IMHO for 2 bits in common it's a waste to have
things moved up from arch.

Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to