From: Avi Kivity <avi@qumranet.com>
To: qemu-devel@nongnu.org
Cc: Gleb Natapov <gleb@qumranet.com>
Subject: Re: [Qemu-devel] [PATCH v2 1/6] Use IO port for qemu<->guest BIOS communication.
Date: Tue, 26 Aug 2008 22:30:54 +0300 [thread overview]
Message-ID: <48B459EE.7010101@qumranet.com> (raw)
In-Reply-To: <f43fc5580808260946t67536b67nb46acc6ed450aa80@mail.gmail.com>
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.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
next prev parent reply other threads:[~2008-08-26 19:31 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 [this message]
2008-08-26 19:43 ` Blue Swirl
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=48B459EE.7010101@qumranet.com \
--to=avi@qumranet.com \
--cc=gleb@qumranet.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).