All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Millan <rmh@aybabtu.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [PATCH] Enable grub_cpu_idle for i386 to halt the CPU
Date: Sun, 17 Aug 2008 17:04:41 +0200	[thread overview]
Message-ID: <20080817150441.GB9153@thorin> (raw)
In-Reply-To: <20080816144422.GE16592@spacedout.fries.net>

On Sat, Aug 16, 2008 at 09:44:22AM -0500, David Fries wrote:
> On Sat, Aug 16, 2008 at 02:33:17PM +0200, Robert Millan wrote:
> > 
> > We have 4 ports on i386.  A proper implementation of grub_cpu_idle
> > should work fine on all of them.  When I say "proper" I mean that
> > 'hlt' instruction should be usable without doing strange gimmicks.
> 
> <sarcasm>
> </sarcasm>

Please try to use proper tone if you want us to have a reasonable
discussion.

> > Your patch simply works around the fact that 'hlt' is broken on 32-bit by
> > going back to i8086 mode in order to use it.
> 
> Pavel Roskin didn't like an earlier patch of mine to add a whole 10
> assembly instructions to the core.mod.  This is the first time I've
> dealt with the uglieness of BIOS,

Your patch doesn't deal with the BIOS in any way.  It simply takes advantage
that interrupts are setup in i8086 mode to use hlt there.

It is a trivial workaround, and I'd have done that myself when implementing
grub_cpu_idle if it wasn't because it's an ugly hack.

> for reimplementing an interrupt stack and drivers
> to acknowledge those interrupts,

Interrupt stack and drivers?  The only thing you need for hlt to work is
install a dummy stub in idt[0], disable all other IRQs and set the interrupt
flag.

> when grub heavily depends on BIOS to
> be there and working.

GRUB is a multiplatform bootloader.  When writing multiplatform code, it is
IMHO very important to make the code as generic as reasonably possible.

Use of 'hlt' instruction depends on a particular setup of the CPU, and has
nothing to do with firmware facilities.

> Maybe I should mention that hlt is already being used in real mode.
> Protected mode interrupts would cause that to break.

Can you ellaborate on that?

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."



  reply	other threads:[~2008-08-17 15:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-12  3:07 [PATCH] Enable grub_cpu_idle for i386 to halt the CPU David Fries
2008-08-12  9:10 ` Robert Millan
2008-08-12 10:47   ` Robert Millan
2008-08-16  3:11   ` David Fries
2008-08-16 12:33     ` Robert Millan
2008-08-16 14:44       ` David Fries
2008-08-17 15:04         ` Robert Millan [this message]
2008-08-13  9:34 ` Marco Gerards

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=20080817150441.GB9153@thorin \
    --to=rmh@aybabtu.com \
    --cc=grub-devel@gnu.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.