From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel@lists.xenproject.org, qemu-devel@nongnu.org, JBeulich@suse.com
Subject: Re: [Qemu-devel] [PATCH v1 05/10] xen/pt: Remove XenPTReg->data field.
Date: Fri, 17 Jul 2015 12:48:41 -0400 [thread overview]
Message-ID: <20150717164841.GC19827@l.oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1507171725050.17378@kaball.uk.xensource.com>
On Fri, Jul 17, 2015 at 05:30:39PM +0100, Stefano Stabellini wrote:
> On Thu, 2 Jul 2015, Konrad Rzeszutek Wilk wrote:
> > We do not want to have two entries to cache the guest configuration
> > registers: XenPTReg->data and dev.config. Instead we want to use
> > only the dev.config.
> >
> > To do without much complications we rip out the ->data field
> > and replace it with an pointer to the dev.config. This way we
> > have the type-checking (uint8_t, uint16_t, etc) and as well
> > and pre-computed location.
> >
> > Alternatively we could compute the offset in dev.config by
> > using the XenPTRRegInfo and XenPTRegGroup every time but
> > this way we have the pre-computed values.
> >
> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > ---
> > hw/xen/xen_pt.h | 6 +++-
> > hw/xen/xen_pt_config_init.c | 73 +++++++++++++++++++++++++++------------------
> > 2 files changed, 49 insertions(+), 30 deletions(-)
> >
> > diff --git a/hw/xen/xen_pt.h b/hw/xen/xen_pt.h
> > index 09358b1..586d055 100644
> > --- a/hw/xen/xen_pt.h
> > +++ b/hw/xen/xen_pt.h
> > @@ -134,7 +134,11 @@ struct XenPTRegInfo {
> > struct XenPTReg {
> > QLIST_ENTRY(XenPTReg) entries;
> > XenPTRegInfo *reg;
> > - uint32_t data; /* emulated value */
> > + union {
> > + uint8_t *byte;
> > + uint16_t *word;
> > + uint32_t *dbword;
> > + } ptr; /* pointer to dev.config. */
>
> Nice (nasty?) trick. I would probably have just introduced a single
> pointer, but this might turn out to be better as it avoids the risk of
> merging bits that should be ignored.
Right, and also adds nice type-casting checks.
>
> However it should be half-word (uint16_t) and word (uint32_t).
OK.
next prev parent reply other threads:[~2015-07-17 16:48 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-02 19:51 [Qemu-devel] [PATCH v1] Remove XenPTReg->data and use dev.config for guest configuration values Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [PATCH v1 01/10] xen/pt: Use xen_host_pci_get_[byte|word] instead of dev.config Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-17 15:43 ` Stefano Stabellini
2015-07-17 15:43 ` [Qemu-devel] " Stefano Stabellini
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 02/10] xen/pt: Sync up the dev.config and data values Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-17 15:54 ` [Qemu-devel] " Stefano Stabellini
2015-07-17 15:54 ` Stefano Stabellini
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 03/10] xen/pt: Check if reg->init function sets the 'data' past the reg->size Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-17 16:03 ` [Qemu-devel] " Stefano Stabellini
2015-07-17 16:47 ` Konrad Rzeszutek Wilk
2015-07-17 16:47 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-08-14 20:42 ` Konrad Rzeszutek Wilk
2015-08-14 20:42 ` Konrad Rzeszutek Wilk
2015-07-17 16:03 ` Stefano Stabellini
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 04/10] xen/pt: Use xen_host_pci_get_[byte, word, long] instead of xen_host_pci_get_long Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-17 15:59 ` Stefano Stabellini
2015-07-17 15:59 ` [Qemu-devel] " Stefano Stabellini
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 05/10] xen/pt: Remove XenPTReg->data field Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-17 16:30 ` [Qemu-devel] " Stefano Stabellini
2015-07-17 16:48 ` Konrad Rzeszutek Wilk
2015-07-17 16:48 ` Konrad Rzeszutek Wilk [this message]
2015-07-17 16:30 ` Stefano Stabellini
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 06/10] xen/pt: Log xen_host_pci_get in two init functions Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 07/10] xen/pt: Log xen_host_pci_get/set errors in MSI code Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [PATCH v1 08/10] xen/pt: Make xen_pt_unregister_device idempotent Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-17 16:14 ` Stefano Stabellini
2015-07-17 16:14 ` [Qemu-devel] " Stefano Stabellini
2015-08-14 20:20 ` Konrad Rzeszutek Wilk
2015-08-14 20:20 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [Qemu-devel] [PATCH v1 09/10] xen/pt: Move bulk of xen_pt_unregister_device in its own routine Konrad Rzeszutek Wilk
2015-07-02 19:51 ` Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [PATCH v1 10/10] xen/pt: Check for return values for xen_host_pci_[get|set] in init Konrad Rzeszutek Wilk
2015-07-02 19:51 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-08 19:19 ` [PATCH] Follow-on to Remove XenPTReg->data and use dev.config for guest configuration values Konrad Rzeszutek Wilk
2015-07-08 19:19 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-08 19:19 ` [PATCH] xen/pt: Don't slurp wholesale the PCI configuration registers Konrad Rzeszutek Wilk
2015-07-08 19:19 ` [Qemu-devel] " Konrad Rzeszutek Wilk
2015-07-17 16:34 ` Stefano Stabellini
2015-07-17 16:34 ` Stefano Stabellini
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=20150717164841.GC19827@l.oracle.com \
--to=konrad.wilk@oracle.com \
--cc=JBeulich@suse.com \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xenproject.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.