|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [XEN PATCH v14 8/8] Add xentrace to vmware_port
On 19.08.2020 18:52, Don Slutz wrote:
> From: Don Slutz <dslutz@xxxxxxxxxxx>
>
> Also added missing TRAP_DEBUG & VLAPIC.
>
> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
> CC: Don Slutz <don.slutz@xxxxxxxxx>
> ---
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> v14:
> Reworked to current code.
> Added VMPORT_SEND because I wanted to see it during testing.
>
> v13:
> Please do this by extending the existing infrastructure rather
> than special-casing 7 on the side. (i.e. extend ND to take 7
> parameters, and introduce HVMTRACE_7D)
> = { d1, d2, d3, d4, d5, d6, d7 } will be far shorter, linewise.
I think this would have wanted to split into two patches right
at the time: One for the extension, and another for the new
VMware logic. But see below.
> @@ -62,6 +63,7 @@ static int vmport_ioport(int dir, uint32_t port, uint32_t
> bytes, uint32_t *val)
> if ( port == BDOOR_PORT && regs->eax == BDOOR_MAGIC )
> {
> uint32_t new_eax = ~0u;
> + uint16_t cmd = regs->ecx;
> uint64_t value;
> struct vcpu *curr = current;
> struct domain *currd = curr->domain;
> @@ -72,7 +74,7 @@ static int vmport_ioport(int dir, uint32_t port, uint32_t
> bytes, uint32_t *val)
> * leaving the high 32-bits unchanged, unlike what one would
> * expect to happen.
> */
> - switch ( regs->ecx & 0xffff )
> + switch ( cmd )
> {
> case BDOOR_CMD_GETMHZ:
> new_eax = currd->arch.tsc_khz / 1000;
> @@ -147,14 +149,22 @@ static int vmport_ioport(int dir, uint32_t port,
> uint32_t bytes, uint32_t *val)
> break;
>
> default:
> + HVMTRACE_6D(VMPORT_SEND, cmd, regs->ebx, regs->ecx,
> + regs->edx, regs->esi, regs->edi);
With cmd derived from regs->ecx, why pass the same value twice here?
> /* Let backing DM handle */
> return X86EMUL_UNHANDLEABLE;
> }
> + HVMTRACE_7D(VMPORT_HANDLED, cmd, new_eax, regs->ebx, regs->ecx,
> + regs->edx, regs->esi, regs->edi);
None of the cases making it here consumes or alter regs->edi. Why
record / report its value? Without this, the entire widening to 7
parameters becomes unnecessary for now, afaics.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |