Re: [RFC PATCH 3/4] KVM: emulate: avoid per-byte copying in instruction fetches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 07/05/2014 06:36, Bandan Das ha scritto:
> +	_x = *(_type __aligned(1) *) &_fc->data[ctxt->_eip - _fc->start]; \
For my own understanding, how does the __aligned help here ?

Except for 16-byte SSE accesses, x86 doesn't distinguish aligned and unaligned accesses. You can read 4 bytes at 0x2345 and the processor will do the right thing. Still it's better to tell the compiler what we're doing.

Wouldn't
that result in unaligned accesses that will actually impact performance ?

These accesses *can* and will in fact be unaligned. For example, say you have "mov ax,0x1234" which is 0xb8 0x34 0x12. When you read it into the fetch cache, you will have data[0] == 0xb8, data[1] == 0x34, data[2] == 0x12. Fetching the 16-bit immediate from data[1] will then be an unaligned access.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux