All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [6352] Fix character devices after DisplayState refactoring
Date: Mon, 19 Jan 2009 16:11:39 -0600	[thread overview]
Message-ID: <4974FA9B.5000900@codemonkey.ws> (raw)
In-Reply-To: <49746372.8070703@eu.citrix.com>

Stefano Stabellini wrote:
> Anthony Liguori wrote:
>
>   
>> Revision: 6352
>>           http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6352
>> Author:   aliguori
>> Date:     2009-01-16 20:23:27 +0000 (Fri, 16 Jan 2009)
>>
>> Log Message:
>> -----------
>> Fix character devices after DisplayState refactoring
>>
>> The DisplayState refactoring changed the machine init function to create a
>> DisplayState for each VGA device instead of being passed an existing
>> DisplayState.  This change is critical to enable multiple graphics device
>> support.
>>
>> Unfortunately, the serial/parallel/console code is structured today to run
>> before machine init to fill out the CharDriverState table which the machine
>> init function uses to determine whether to create the required devices.
>>
>> Since a 'vc' is a type of CharDriverState, the CharDriverState code requires
>> that a DisplayState exist before it runs creating a circular dependency.
>>
>> To fix this, this splits the creation of the initial CharDriverState from
>> the initialization of the text console.  We can then in a second step associate
>> a DisplayState with all TextConsoles.  This allows us to create the
>> CharDriverState's first, machine init, then associate the TextConsoles with
>> a DisplayState.
>>
>> This code screams for more cleanup.
>>
>>     
>
> I am sorry for this.
>   

No worries.  What I meant about more cleanup was that this patch series 
demonstrated a fundamental flaw in the CharDriverState abstraction.  
That is, we really ought to separate the creation of a CharDriverState 
front-end from the creation of the back-end.

We should then attach a front-end to a back-end.  This would make it 
easy to dynamically change the back-end of any given CharDriverState 
which is something I've liked to see for a while now.

Regards,

Anthony Liguori

> While I was testing the patch series I was expecting many rendering
> issues or console switching issues: once I saw that both the serial and
> parallel port consoles were present I didn't check they were actually
> working.
>
>
>
>   

      reply	other threads:[~2009-01-19 22:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-16 20:23 [Qemu-devel] [6352] Fix character devices after DisplayState refactoring Anthony Liguori
2009-01-16 21:43 ` [Qemu-devel] " Jan Kiszka
2009-01-16 21:54   ` Anthony Liguori
2009-01-17  0:58 ` [Qemu-devel] " Stuart Brady
2009-01-17 22:11 ` Stefan Weil
2009-01-18 14:09   ` Aurelien Jarno
2009-01-19 11:26 ` Stefano Stabellini
2009-01-19 22:11   ` Anthony Liguori [this message]

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=4974FA9B.5000900@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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.