All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Xiao Guangrong <xiaoguangrong.eric@gmail.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Richard Henderson <rth@twiddle.net>,
	Alexander Graf <agraf@suse.de>,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized
Date: Fri, 15 Jun 2018 11:16:20 +0200	[thread overview]
Message-ID: <20180615111620.6ceb2067@redhat.com> (raw)
In-Reply-To: <4e2e230c-865e-2cfe-0085-1a62da70fa15@redhat.com>

On Thu, 14 Jun 2018 16:10:14 +0200
David Hildenbrand <david@redhat.com> wrote:

> On 14.06.2018 15:24, Igor Mammedov wrote:
> > On Wed, 13 Jun 2018 16:03:35 +0200
> > David Hildenbrand <david@redhat.com> wrote:
> >   
> >> On 13.06.2018 14:56, Igor Mammedov wrote:  
> >>> On Mon, 11 Jun 2018 14:16:50 +0200
> >>> David Hildenbrand <david@redhat.com> wrote:
> >>>     
> >>>> "size" should not be queried before the device was realized. Let' make
> >>>> that explicit.
> >>>>
> >>>> Signed-off-by: David Hildenbrand <david@redhat.com>    
> >>> It's generic property getter, it should work even before realize is called.    
> >>
> >> That's the point, as we can see in NVDIMM code , it is *not* a generic
> >> property getter.  
> > it is added by 
> >     object_property_add(obj, PC_DIMM_SIZE_PROP, "uint64", pc_dimm_get_size,      
> >                         NULL, NULL, NULL, &error_abort); 
> > hence it's generic QOM property as opposed to memory device class specific callbacks.
> >   
> >>  
> >>>
> >>> if issues described in 5/11 are properly fixed, this patch won't be needed.
> >>>
> >>> So drop this patch
> >>>
> >>>     
> >>>> ---
> >>>>  hw/mem/pc-dimm.c | 6 ++++++
> >>>>  1 file changed, 6 insertions(+)
> >>>>
> >>>> diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
> >>>> index 86fbcf2d0c..5294734529 100644
> >>>> --- a/hw/mem/pc-dimm.c
> >>>> +++ b/hw/mem/pc-dimm.c
> >>>> @@ -166,6 +166,12 @@ static void pc_dimm_get_size(Object *obj, Visitor *v, const char *name,
> >>>>      PCDIMMDevice *dimm = PC_DIMM(obj);
> >>>>      PCDIMMDeviceClass *ddc = PC_DIMM_GET_CLASS(obj);
> >>>>  
> >>>> +    if (!DEVICE(obj)->realized) {
> >>>> +        error_setg(errp, "Property \"%s\" not accessible before realized",
> >>>> +                   name);
> >>>> +        return;
> >>>> +    }
> >>>> +
> >>>>      mr = ddc->get_memory_region(dimm, errp);  
> > just make ddc->get_memory_region return error if 'memdev' isn't set yet
> > and add local_error handling here as proper property assessor should do.
> >   
> 
> Does not help for NVDIMM.
NVDIMM should be fixed as it's broken now and works just by accident.
I don't like tailoring infrastructure changes to a particular broken
device especially when the later could be made to work within current
framework.

  reply	other threads:[~2018-06-15  9:16 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11 12:16 [Qemu-devel] [PATCH v1 00/11] pc-dimm: next bunch of cleanups David Hildenbrand
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 01/11] pc-dimm: remove leftover "struct pc_dimms_capacity" David Hildenbrand
2018-06-12  0:21   ` David Gibson
2018-06-13  9:23   ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 02/11] nvdimm: no need to overwrite get_vmstate_memory_region() David Hildenbrand
2018-06-12  0:22   ` David Gibson
2018-06-13  9:39   ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 03/11] pc: factor out pc-dimm checks into pc_dimm_pre_plug() David Hildenbrand
2018-06-12  0:28   ` David Gibson
2018-06-13 10:07   ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 04/11] hostmem: drop error variable from host_memory_backend_get_memory() David Hildenbrand
2018-06-12  0:49   ` David Gibson
2018-06-13 10:13   ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 05/11] spapr: move memory hotplug size check into plug code David Hildenbrand
2018-06-12  1:02   ` David Gibson
2018-06-13 11:01   ` Igor Mammedov
2018-06-13 11:05     ` David Hildenbrand
2018-06-13 13:57       ` Igor Mammedov
2018-06-14  7:10         ` David Hildenbrand
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized David Hildenbrand
2018-06-12  1:08   ` David Gibson
2018-06-13 12:56   ` Igor Mammedov
2018-06-13 14:03     ` David Hildenbrand
2018-06-13 21:33       ` Eduardo Habkost
2018-06-14 13:02         ` Igor Mammedov
2018-06-14 13:24       ` Igor Mammedov
2018-06-14 14:10         ` David Hildenbrand
2018-06-15  9:16           ` Igor Mammedov [this message]
2018-06-15  9:25             ` David Hildenbrand
2018-06-15 10:06               ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 07/11] pc-dimm: get_memory_region() can never fail David Hildenbrand
2018-06-12  1:10   ` David Gibson
2018-06-13 13:03   ` Igor Mammedov
2018-06-13 14:07     ` David Hildenbrand
2018-06-13 14:50       ` David Hildenbrand
2018-06-14 15:00         ` Igor Mammedov
2018-06-14 15:11           ` David Hildenbrand
2018-06-15  9:59             ` Igor Mammedov
2018-06-15 10:29               ` David Hildenbrand
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 08/11] pc-dimm: get_memory_region() will never return a NULL pointer David Hildenbrand
2018-06-12  1:12   ` David Gibson
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 09/11] pc-dimm: remove pc_dimm_get_vmstate_memory_region() David Hildenbrand
2018-06-12  1:29   ` David Gibson
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 10/11] pc-dimm: introduce and use pc_dimm_memory_pre_plug() David Hildenbrand
2018-06-12  1:48   ` David Gibson
2018-06-13 13:10   ` Igor Mammedov
2018-06-13 14:15     ` David Hildenbrand
2018-06-15  9:34       ` Igor Mammedov
2018-06-15  9:48         ` David Hildenbrand
2018-06-15 10:01           ` Igor Mammedov
2018-06-11 12:16 ` [Qemu-devel] [PATCH v1 11/11] pc-dimm: assign and verify the "slot" property during pre_plug David Hildenbrand
2018-06-12  2:02   ` David Gibson
2018-06-13 13:34 ` [Qemu-devel] [PATCH v1 00/11] pc-dimm: next bunch of cleanups Igor Mammedov
2018-06-13 14:11   ` David Hildenbrand
2018-06-15 10:59     ` David Hildenbrand

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=20180615111620.6ceb2067@redhat.com \
    --to=imammedo@redhat.com \
    --cc=agraf@suse.de \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=xiaoguangrong.eric@gmail.com \
    /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.