On Tue, Dec 7, 2010 at 1:22 AM, Avi Kivity <avi@xxxxxxxxxx> wrote: > On 12/06/2010 10:38 PM, David Sharp wrote: >> On Sat, Dec 4, 2010 at 12:11 AM, Avi Kivity<avi@xxxxxxxxxx> Âwrote: >> > ÂOn 12/04/2010 02:13 AM, David Sharp wrote: >> >> >> >> ÂSigned-off-by: David Sharp<dhsharp@xxxxxxxxxx> >> >> Â--- >> >>  Âarch/x86/kvm/trace.h |  Â8 ++++---- >> >>  Â1 files changed, 4 insertions(+), 4 deletions(-) >> >> >> >> Âdiff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h >> >> Âindex a6544b8..ab41fb0 100644 >> >> Â--- a/arch/x86/kvm/trace.h >> >> Â+++ b/arch/x86/kvm/trace.h >> >> Â@@ -62,21 +62,21 @@ TRACE_EVENT(kvm_hv_hypercall, >> >>     ÂTP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa), >> >> >> >>     ÂTP_STRUCT__entry( >> >> Â-        __field(    Â__u16,     Âcode      Â) >> >> Â-        __field(    Âbool,      fast      Â) >> >>         Â__field(    Â__u16,     Ârep_cnt     ) >> >>         Â__field(    Â__u16,     Ârep_idx     ) >> >>         Â__field(    Â__u64,     Âingpa      ) >> >>         Â__field(    Â__u64,     Âoutgpa     Â) >> >> Â+        __field(    Â__u16,     Âcode      Â) >> >> Â+        __field(    Âbool,      fast      Â) >> >>     Â), >> >> >> > >> > ÂLooks like a pessimisation. >> > >> > ÂBefore: 24 bytes >> > ÂAfter: 32 bytes >> > >> > Â(on a 64-bit machine, assuming no packing) >> >> This patch is predicated on packing the event structures. And since >> the ring buffer is 32-bit addressable, I don't attempt to improve >> alignment beyond 32-bit boundaries. > > I don't understand this. ÂCan you elaborate? ÂWhat does "32-bit addressable" > mean? The ring buffer gives you space that is a multiple of 4 bytes in length, and 32-bit aligned. Therefore it is useless to attempt to align the structure beyond 32-bit boundaries, eg, a 64-bit boundary, because it is unpredictable if the memory the structure will be written to is at a 64-bit boundary (addr % 8 could be 0 or 4). >ÂAnd "predicated on packing the event structures"? ÂIs the structure > __attribute__((packed)), or is it not? It is not packed in Linus' tree, but one of the patches before this patch in this patch series adds __attribute__((packed)). This patch assumes that the event packing patch has been applied. This patch should not be applied if the packing patch is not (hence, "predicated"). > > -- > error compiling committee.c: too many arguments to function > > -- 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