All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Jan Kiszka" <jan.kiszka@siemens.com>
Subject: Re: [Qemu-devel] [PATCH 1/7] Introduce a new bus "ICC" to connect APIC
Date: Fri, 24 Feb 2012 08:44:37 -0600	[thread overview]
Message-ID: <4F47A255.10105@codemonkey.ws> (raw)
In-Reply-To: <4F4795B9.7090407@redhat.com>

On 02/24/2012 07:50 AM, Paolo Bonzini wrote:
> On 02/24/2012 02:47 PM, Anthony Liguori wrote:
>>>
>>
>> I agree with you in principle, but in practice, there is not obvious way
>> to serialize gpio_in/gpio_out via Visitors.  Finding some way to do it
>> as an integer is clearly wrong IMHO.
>
> "%s/gpio_in[%d]" % (object_get_canonical_path(...), opaque->n) is what I
> was thinking about.

This creates another namespace that's independent of the QOM graph.  This is 
something we should try to avoid.

>> I think a simple Pin object with the following interfaces:
>>
>> /**
>>   * Connect a pin to a qemu_irq such that whenever the pin is
>>   * raised, qemu_irq_raise() is called too on irq.
>>   */
>> void pin_connect_qemu_irq(Pin *obj, qemu_irq irq);
>>
>> /**
>>   * Returns a qemu_irq such that whenever qemu_irq_raise() is
>>   * called, pin_set_level(obj, true) is called.
>>   */
>> qemu_irq pin_get_qemu_irq(Pin *obj);
>>
>> Let's you incrementally refactor objects to use Pins while maintaining the existing qemu_irq infrastructure.
>
> Sure, a simple bridge is a fine alternative.  What I'm not sure about is
> making Pins stateful, because that means you have to serialize them.

Being stateful is a feature but the concept would work just as well if you 
didn't store the pin state.  Then it just looks like:

struct Pin
{
    Object parent;

    /*< private >*/
    NotifierLister level_change_notifiers;
};

The reason to introduce another type (instead of attempting to convert qemu_irq) 
is that the life cycle of qemu_irq is very un-QOM.  I don't think we can do it 
without incrementally refactoring the users of qemu_irq and a new type makes it 
easier to do that incrementally.

Regards,

Anthony Liguori

> Paolo

  reply	other threads:[~2012-02-24 14:44 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-15 23:16 [Qemu-devel] [PATCH 0/7] Add CPU hot-plug to qemu (pc only). v2 Igor Mammedov
2012-02-15 23:16 ` [Qemu-devel] [PATCH 1/7] Introduce a new bus "ICC" to connect APIC Igor Mammedov
2012-02-16 11:25   ` Jan Kiszka
2012-02-16 12:42     ` Anthony Liguori
2012-02-16 12:50       ` Jan Kiszka
2012-02-16 12:59         ` Anthony Liguori
2012-02-16 13:06           ` Jan Kiszka
2012-02-17 17:02       ` Igor Mammedov
2012-02-24 13:05         ` Igor Mammedov
2012-02-24 13:30           ` Andreas Färber
2012-02-24 13:40             ` Paolo Bonzini
2012-02-24 13:47               ` Anthony Liguori
2012-02-24 13:50                 ` Paolo Bonzini
2012-02-24 14:44                   ` Anthony Liguori [this message]
2012-02-15 23:16 ` [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev Igor Mammedov
2012-02-16 11:27   ` Jan Kiszka
2012-02-16 12:01   ` Jan Kiszka
2012-02-16 12:51     ` Anthony Liguori
2012-02-16 12:54       ` Jan Kiszka
2012-02-16 16:09         ` Anthony Liguori
2012-03-13  9:32       ` Lai Jiangshan
2012-03-13 11:04         ` Andreas Färber
2012-03-14  7:59           ` Lai Jiangshan
2012-03-14  8:37             ` Igor Mammedov
2012-03-14 13:49               ` Vasilis Liaskovitis
2012-03-14 15:23                 ` Gleb Natapov
2012-03-14 15:32                   ` Anthony Liguori
2012-03-14 15:35                     ` Gleb Natapov
2012-03-14 15:42                       ` Anthony Liguori
2012-03-14 15:54                         ` Gleb Natapov
2012-03-14 15:57                           ` Anthony Liguori
2012-03-14 16:27                             ` Gleb Natapov
2012-03-14 19:55                   ` Vasilis Liaskovitis
2012-03-15 12:07                     ` Gleb Natapov
2012-02-16 12:45   ` Anthony Liguori
2012-02-16 16:09   ` Andreas Färber
2012-02-17 17:16     ` Igor Mammedov
2012-02-17 18:07       ` Andreas Färber
2012-02-15 23:16 ` [Qemu-devel] [PATCH 3/7] cleanup: get rid of pc_new_cpu Igor Mammedov
2012-02-15 23:16 ` [Qemu-devel] [PATCH 4/7] cleanup: remove redundant pc_cpu_reset Igor Mammedov
2012-02-16 11:32   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 5/7] Set default 'model' property if it wasn't specified yet Igor Mammedov
2012-02-16 11:36   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 6/7] Prepare ACPI infrastructure for cpu hot-plug in acpi_piix4 Igor Mammedov
2012-02-16 11:41   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 7/7] Implement cpu hot-add using device_add monitor command Igor Mammedov
2012-02-15 23:35   ` Anthony Liguori
2012-02-16  9:33     ` Igor Mammedov
2012-02-16 15:52       ` Andreas Färber
2012-02-16 10:16     ` Jan Kiszka

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=4F47A255.10105@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=afaerber@suse.de \
    --cc=imammedo@redhat.com \
    --cc=jan.kiszka@siemens.com \
    --cc=pbonzini@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.