All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: peter.maydell@linaro.org, pbonzini@redhat.com,
	qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH 1/2] memory: Align and add helper for comparing MemoryRegionSections
Date: Wed, 14 Aug 2019 18:44:30 +0100	[thread overview]
Message-ID: <20190814174430.GT2920@work-vm> (raw)
In-Reply-To: <64416580-ee29-8d75-4ad6-c1453d70afd6@redhat.com>

* Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> On 8/14/19 7:25 PM, Dr. David Alan Gilbert wrote:
> > * Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> >> Hi David,
> >>
> >> On 8/13/19 12:29 PM, Dr. David Alan Gilbert (git) wrote:
> >>> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >>>
> >>> MemoryRegionSection includes an Int128 'size' field;
> >>> on some platforms the compiler causes an alignment of this to
> >>> a 128bit boundary, leaving 8 bytes of dead space.
> >>> This deadspace can be filled with junk.
> >>>
> >>> Move the size field to the top avoiding unnecsssary alignment
> >>
> >> "unnecessary"
> > 
> > Oops thanks.
> > 
> >> This is enough change to be in its own commit.
> >>
> >> ---
> >>
> >>> and provide an 'eq' routine to safely compare MRS's.
> >>
> >> This is another change, and should be squashed in the next patch IMO.
> > 
> > OK, what I'll do is I'll split this one into two ; I feel better
> > having the extra function here separate from the next commit.
> 
> Thanks, feel free to add to both:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Thanks!

> >> Doesn't Clang warn about unused 'static inline' btw?
> > 
> > I was using gcc; but we seem to have loads of static inline's - what
> > would make this one different?
> 
> I guess I was confused with 'static (no-inline)' :)
> 
> >>>
> >>> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >>> ---
> >>>  include/exec/memory.h | 14 +++++++++++++-
> >>>  1 file changed, 13 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/include/exec/memory.h b/include/exec/memory.h
> >>> index 606250172a..ce62e847bd 100644
> >>> --- a/include/exec/memory.h
> >>> +++ b/include/exec/memory.h
> >>> @@ -487,15 +487,27 @@ static inline FlatView *address_space_to_flatview(AddressSpace *as)
> >>>   * @nonvolatile: this section is non-volatile
> >>>   */
> >>>  struct MemoryRegionSection {
> >>> +    Int128 size;
> >>>      MemoryRegion *mr;
> >>>      FlatView *fv;
> >>>      hwaddr offset_within_region;
> >>> -    Int128 size;
> >>>      hwaddr offset_within_address_space;
> >>>      bool readonly;
> >>>      bool nonvolatile;
> >>>  };
> >>>  
> >>> +static inline bool MemoryRegionSection_eq(MemoryRegionSection *a,
> >>> +                                          MemoryRegionSection *b)
> >>> +{
> >>> +    return a->mr == b->mr &&
> >>> +           a->fv == b->fv &&
> >>> +           a->offset_within_region == b->offset_within_region &&
> >>> +           a->offset_within_address_space == b->offset_within_address_space &&
> >>> +           int128_eq(a->size, b->size) &&
> >>> +           a->readonly == b->readonly &&
> >>> +           a->nonvolatile == b->nonvolatile;
> >>> +}
> >>> +
> >>>  /**
> >>>   * memory_region_init: Initialize a memory region
> >>>   *
> >>>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> > 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


  reply	other threads:[~2019-08-14 17:46 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-13 10:29 [Qemu-devel] [PATCH 0/2] Fix MemoryRegionSection alignment and comparison Dr. David Alan Gilbert (git)
2019-08-13 10:29 ` [Qemu-devel] [PATCH 1/2] memory: Align and add helper for comparing MemoryRegionSections Dr. David Alan Gilbert (git)
2019-08-13 12:58   ` Philippe Mathieu-Daudé
2019-08-14 17:25     ` Dr. David Alan Gilbert
2019-08-14 17:35       ` Philippe Mathieu-Daudé
2019-08-14 17:44         ` Dr. David Alan Gilbert [this message]
2019-08-13 10:29 ` [Qemu-devel] [PATCH 2/2] vhost: Fix memory region section comparison Dr. David Alan Gilbert (git)
2019-08-13 12:06 ` [Qemu-devel] [PATCH 0/2] Fix MemoryRegionSection alignment and comparison Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190814174430.GT2920@work-vm \
    --to=dgilbert@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.