All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Hongyang <yanghy@cn.fujitsu.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: thuth@redhat.com, zhang.zhanghailiang@huawei.com,
	lizhijian@cn.fujitsu.com, jasowang@redhat.com,
	qemu-devel@nongnu.org, mrhines@linux.vnet.ibm.com,
	Markus Armbruster <armbru@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Andreas Faerber <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH v9 05/10] move out net queue structs define
Date: Mon, 7 Sep 2015 19:41:26 +0800	[thread overview]
Message-ID: <55ED77E6.3030003@cn.fujitsu.com> (raw)
In-Reply-To: <20150907110004.GE29882@redhat.com>



On 09/07/2015 07:00 PM, Daniel P. Berrange wrote:
> On Mon, Sep 07, 2015 at 06:53:49PM +0800, Yang Hongyang wrote:
>> On 09/07/2015 05:11 PM, Stefan Hajnoczi wrote:
>> [...]
>>>> Thanks very much for the suggestion, I've already implemented it and tested,
>>>> the code looks cleaner now.
>>>>
>>>> The last issue is the QOM thing, do Markus and Andreas have more input
>>>> about that?
>>>
>>> If you would like to see examples of QOM usage, take a look at
>>> iothread.c and/or backends/hostmem.c.
>>>
>>> The key things are:
>>>
>>> 1. They use include/qom/object.h to register a type based on
>>>     TYPE_OBJECT and their properties are registered using
>>>     object_property_add_*().
>>>
>>> 2. They implement the TYPE_USER_CREATABLE interface so the -object
>>>     command-line option can be used to instantiate them.  See
>>>     object_interfaces.h.
>>>
>>> As a result, a lot of code becomes unnecessary and iothread.c, in
>>> particular, is quite short.
>>
>> After looking into this, I have some questions on the implement, could you
>> please help me on this because I don't know much about the object mechanism:
>>
>> The netfilter need to be initialized after the net_init_clients, because we
>> need to attach the filter to the net client. But currently, net client is not
>> using QOM, and seems that it is initialized after objects been created. So here
>> comes the problem: how can I initialize a certain object later, is it possiable?
>
> It is currently a bit hacky - most objects are initialized very early,
> but we have a similar problem with rng-egd which must be created /after/
> chardevs. To deal with this in vl.c main() we have two helper methods
> object_create_initial and object_create_delayed. The delayed method though
> still happens before the net clients are created. We could probably just
> move the objec_create_delayed method invokation to later on, after net
> clients are created, but if that doesn't work just add an extra helper
> object_create_very_delayed :-)

If it's ok to move creation of "rng-egd" later, then "move the
objec_create_delayed method invokation after net clients are created" should
solve the problem.

Thank you for the help!

>
> Regards,
> Daniel
>

-- 
Thanks,
Yang.

  reply	other threads:[~2015-09-07 11:41 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-01  9:06 [Qemu-devel] [PATCH v9 00/10] Add a netfilter object and netbuffer filter Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 01/10] net: add a new object netfilter Yang Hongyang
2015-09-01 14:36   ` Stefan Hajnoczi
2015-09-02  1:39     ` Yang Hongyang
2015-09-02 12:58       ` Stefan Hajnoczi
2015-09-02 13:04         ` Daniel P. Berrange
2015-09-02 13:06       ` Stefan Hajnoczi
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 02/10] init/cleanup of netfilter object Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 03/10] netfilter: add netfilter_{add|del} commands Yang Hongyang
2015-09-01 14:37   ` Stefan Hajnoczi
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 04/10] netfilter: hook packets before net queue send Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 05/10] move out net queue structs define Yang Hongyang
2015-09-01 14:43   ` Stefan Hajnoczi
2015-09-02  1:49     ` Yang Hongyang
2015-09-02 13:02       ` Stefan Hajnoczi
2015-09-02 16:18         ` Yang Hongyang
2015-09-04 10:32           ` Stefan Hajnoczi
2015-09-07  7:37             ` Yang Hongyang
2015-09-07  9:06               ` Markus Armbruster
2015-09-07  9:21                 ` Yang Hongyang
2015-09-07  9:11               ` Stefan Hajnoczi
2015-09-07  9:26                 ` Yang Hongyang
2015-09-07 10:53                 ` Yang Hongyang
2015-09-07 11:00                   ` Daniel P. Berrange
2015-09-07 11:41                     ` Yang Hongyang [this message]
2015-09-07 11:43                       ` Daniel P. Berrange
2015-09-07 11:46                         ` Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 06/10] netfilter: add an API to pass the packet to next filter Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 07/10] netfilter: print filter info associate with the netdev Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 08/10] net/queue: export qemu_net_queue_append_iov Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 09/10] netfilter: add a netbuffer filter Yang Hongyang
2015-09-01  9:06 ` [Qemu-devel] [PATCH v9 10/10] tests: add test cases for netfilter object Yang Hongyang

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=55ED77E6.3030003@cn.fujitsu.com \
    --to=yanghy@cn.fujitsu.com \
    --cc=afaerber@suse.de \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=mrhines@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    --cc=zhang.zhanghailiang@huawei.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.