From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1MIgUW-0005jw-EK for mharc-grub-devel@gnu.org; Mon, 22 Jun 2009 06:11:08 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MIgUU-0005iG-3k for grub-devel@gnu.org; Mon, 22 Jun 2009 06:11:06 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MIgUO-0005g4-C7 for grub-devel@gnu.org; Mon, 22 Jun 2009 06:11:05 -0400 Received: from [199.232.76.173] (port=44632 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MIgUO-0005g1-22 for grub-devel@gnu.org; Mon, 22 Jun 2009 06:11:00 -0400 Received: from aybabtu.com ([69.60.117.155]:41627) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MIgUN-00069b-EY for grub-devel@gnu.org; Mon, 22 Jun 2009 06:10:59 -0400 Received: from [192.168.10.10] (helo=thorin) by aybabtu.com with esmtp (Exim 4.69) (envelope-from ) id 1MIfRP-0006qy-1g for grub-devel@gnu.org; Mon, 22 Jun 2009 11:03:51 +0200 Received: from rmh by thorin with local (Exim 4.69) (envelope-from ) id 1MIgUK-0002QA-PR for grub-devel@gnu.org; Mon, 22 Jun 2009 12:10:56 +0200 Date: Mon, 22 Jun 2009 12:10:56 +0200 From: Robert Millan To: The development of GRUB 2 Message-ID: <20090622101056.GD8969@thorin> References: <20090621181748.GA21152@thorin> <20090621185444.GA21590@thorin> <1245611156.4250.11.camel@mj> <20090621192555.GB21827@thorin> <1245636853.9864.74.camel@mj> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1245636853.9864.74.camel@mj> Organization: free as in freedom X-Message-Flag: Worried about Outlook viruses? Switch to Thunderbird! www.mozilla.com/thunderbird X-Debbugs-No-Ack: true User-Agent: Mutt/1.5.18 (2008-05-17) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) Subject: Re: [PATCH] move grub_stop() (Re: [PATCH] i386-qemu port) X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2009 10:11:06 -0000 On Sun, Jun 21, 2009 at 10:14:13PM -0400, Pavel Roskin wrote: > On Sun, 2009-06-21 at 21:25 +0200, Robert Millan wrote: > > On Sun, Jun 21, 2009 at 03:05:56PM -0400, Pavel Roskin wrote: > > > On Sun, 2009-06-21 at 20:54 +0200, Robert Millan wrote: > > > > Move grub_stop to init.c to ease code sharing with i386-qemu. > > > > > > That's not quite a movement. grub_cpu_idle() does nothing. > > > > Well, the major problem with grub_cpu_idle() doing nothing on coreboot > > is CPU consumption during polls. grub_stop() is quite a corner case, > > only seen when you hit an error. > > I think this should do the right thing if our goal is to stop: > > cli > halt: > hlt > jmp halt > > The last "jmp" is just in case for non-maskable interrupts. My aim was to move this to C code so it can be shared between i386-qemu and i386-coreboot. However, this code will be the same on other i386 ports, but we don't yet have a generic .S file for i386 code. How about kern/i386/misc.S ? > > grub_stop: Just hang. > > > > grub_exit: Exit to BIOS/whatever. On coreboot (and on i386-qemu) > > there's really no "proper" thing to do. Maybe fallback to > > grub_halt or grub_fatal. > > > > grub_halt: Power off. Theoretically we can have it anywhere, > > although in some platforms like coreboot it's not easy; otherwise > > it can fallback to grub_stop. > > > > I think grub_stop is intended to have this behaviour in all platforms. > > But I'm not sure how useful is it. Perhaps it could be ditched in > > favour of grub_exit? > > >From the user's standpoint, I think three "stop-like" calls make sense: > > Try to exit so that BIOS can try another media. Failing that, hang. > That would be appropriate for installations on disks that may or may not > be bootable. That's grub_exit(). > > Try for power down the system (that includes telling the emulator to > stop). Failing that, hang. That would be appropriate for data centers > where we don't want non-functioning systems to consume power. That's > grub_halt(). > > Just stop. Appropriate if there is an important message on the screen > that the user must see. This seems to be the current behaviour, unless I missed something. -- 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."