qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Blue Swirl" <blauwirbel@gmail.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 1/6] Use IO port for qemu<->guest BIOS communication.
Date: Tue, 26 Aug 2008 22:43:35 +0300	[thread overview]
Message-ID: <f43fc5580808261243u12dc19e5tb62f372624f01799@mail.gmail.com> (raw)
In-Reply-To: <48B459EE.7010101@qumranet.com>

On 8/26/08, Avi Kivity <avi@qumranet.com> wrote:
> Blue Swirl wrote:
>  >
>  > One problem with this IO method is that it is not SMP safe, because of
>  > the cur_entry selection and reading will not be atomic. Think of boot
>  > CPU waking up all other CPUs with broadcast interrupt and then these
>  > other CPUs all want to know the boot parameters at the same time. The
>  > same could happen with warm reset. Directly mapped ROM doesn't have
>  > this problem, but multiplexed ROM (or Sparc64 nvram used now) is also
>  > unsafe.
>  >
>  > I could think of a couple of solutions:
>  > - different IO port for each CPU (not possible on PC)
>  > - per-CPU cur_entry, the device "knows" the CPU index (not very beautiful)
>  > - lock mechanism: before access, the CPU must win lock and only then
>  > it can access the data. But IO ports don't support atomic
>  > instructions? How about some kind of MAC-like protocol? It gets pretty
>  > complex.
>  >
>  > Are there other solutions?
>  >
>  >
>
>
> Put the lock in memory.  Or even simpler, have the boot cpu extract the
>  parameters and place them in memory, and then wake up other cpus.

Where in the memory? What about reset, when all CPUs are online? And
CPUs would need to know if they are the boot CPU or not without
disturbing our IO port.

  reply	other threads:[~2008-08-26 19:43 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-25  9:58 [Qemu-devel] [PATCH v2 0/6] Add UUID command-line option Gleb Natapov
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 1/6] Use IO port for qemu<->guest BIOS communication Gleb Natapov
2008-08-25 14:24   ` Anthony Liguori
2008-08-25 14:40     ` Gleb Natapov
2008-08-25 15:01       ` Blue Swirl
2008-08-25 18:01         ` Anthony Liguori
2008-08-25 18:27           ` Blue Swirl
2008-08-26  8:24             ` Gleb Natapov
2008-08-26 16:46               ` Blue Swirl
2008-08-26 19:30                 ` Avi Kivity
2008-08-26 19:43                   ` Blue Swirl [this message]
2008-08-27  8:18                     ` Avi Kivity
2008-08-27 11:05                 ` Gleb Natapov
2008-08-27 17:10                   ` Blue Swirl
2008-08-28  5:29                     ` Gleb Natapov
2008-09-07  2:33                       ` Anthony Liguori
2008-09-07  9:32                         ` Blue Swirl
2008-09-08  5:39                         ` Gleb Natapov
2008-08-25 14:25   ` Anthony Liguori
2008-08-25 14:46     ` Gleb Natapov
2008-08-25 15:37       ` Jamie Lokier
2008-08-25 18:53         ` [Qemu-devel] Re: [PATCH v2 1/6] Use IO port for qemu<->guest BIOScommunication Sebastian Herbszt
2008-08-26  8:17           ` Gleb Natapov
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 2/6] Add -uuid command line option Gleb Natapov
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 3/6] Add "info uuid" command to monitor Gleb Natapov
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 4/6] Use libuuid if available Gleb Natapov
2008-08-25 11:08   ` Andreas Färber
2008-08-25 11:26     ` Gleb Natapov
2008-08-25 11:35       ` Jamie Lokier
2008-08-25 11:45       ` Andreas Färber
2008-08-25 14:03         ` Gleb Natapov
2008-08-25 18:57         ` [Qemu-devel] " Sebastian Herbszt
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 5/6] Add UUID to BIOS configuration info Gleb Natapov
2008-08-25  9:58 ` [Qemu-devel] [PATCH v2 6/6] Pass cpu speed into SM BIOS Gleb Natapov
2008-08-25 14:17   ` Anthony Liguori
2008-08-25 14:26     ` Gleb Natapov
2008-08-25 19:26       ` [Qemu-devel] " Sebastian Herbszt
2008-08-26  6:23         ` Gleb Natapov
2008-08-27 23:42           ` [Qemu-devel] " Sebastian Herbszt
2008-08-28  5:28             ` Gleb Natapov
2008-08-25 19:15   ` [Qemu-devel] " Sebastian Herbszt
2008-08-26  6:34     ` Gleb Natapov

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=f43fc5580808261243u12dc19e5tb62f372624f01799@mail.gmail.com \
    --to=blauwirbel@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).