[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTinK7Zqh=GfFLeyJLxA4u2ozyVj-Ja435iBJPV13@mail.gmail.com>
Date: Tue, 7 Dec 2010 13:16:48 -0800
From: David Sharp <dhsharp@...gle.com>
To: Avi Kivity <avi@...hat.com>
Cc: rostedt@...dmis.org, linux-kernel@...r.kernel.org,
mrubin@...gle.com, kvm-devel <kvm@...r.kernel.org>
Subject: Re: [PATCH 07/15] ftrace: fix event alignment: kvm:kvm_hv_hypercall
On Tue, Dec 7, 2010 at 1:22 AM, Avi Kivity <avi@...hat.com> wrote:
> On 12/06/2010 10:38 PM, David Sharp wrote:
>> On Sat, Dec 4, 2010 at 12:11 AM, Avi Kivity<avi@...hat.com> wrote:
>> > On 12/04/2010 02:13 AM, David Sharp wrote:
>> >>
>> >> Signed-off-by: David Sharp<dhsharp@...gle.com>
>> >> ---
>> >> 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 linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists