* reboot via bios on X86_64?
@ 2012-04-09 15:39 Miles Fidelman
2012-04-09 15:51 ` Matthew Garrett
0 siblings, 1 reply; 15+ messages in thread
From: Miles Fidelman @ 2012-04-09 15:39 UTC (permalink / raw)
To: linux-kernel; +Cc: tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola, mjg
[cc'd to maintainers of reboot.c]
Re. the 2.6.32.5 kernel (currently used in Debian stable), and this
seems to apply to
later ones as well:
The reboot code in arch/x86/kernel/reboot.c provides for rebooting
through the bios
by either a kernel option of "reboot=bios" or as automatically invoked
by quite
a few of the quirks case statements.
But... reboot=bios is enabled only when configured for 32-bit mode -
which just bit me
when I moved from a 32bit kernel to a 64bit one on an old P4 box, which
hangs on
reboot for all reboot options except reboot=bios when running in 32 bit
mode.
Which leads to two questions:
1. What's the logic behind this? Why not enable a bios reboot for 64bit
kernels? Is there any reason why the machine_real_restart code wouldn't
work just as well in 64bit mode? Anybody know the history?
2. Anybody know a workaround, short of patching and compiling a custom
kernel? Are there other paths through the reboot code that can invoke a
bios
reboot? [Note: someone suggested trying a kexec-reboot, but that's also
not supported on my configuration (running over a Xen hypervisor).]
Thank you very much,
Miles Fidelman
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 15:39 reboot via bios on X86_64? Miles Fidelman
@ 2012-04-09 15:51 ` Matthew Garrett
2012-04-09 17:26 ` Miles Fidelman
0 siblings, 1 reply; 15+ messages in thread
From: Matthew Garrett @ 2012-04-09 15:51 UTC (permalink / raw)
To: Miles Fidelman
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
On Mon, Apr 09, 2012 at 11:39:32AM -0400, Miles Fidelman wrote:
> 1. What's the logic behind this? Why not enable a bios reboot for 64bit
> kernels? Is there any reason why the machine_real_restart code wouldn't
> work just as well in 64bit mode? Anybody know the history?
The bios reboot code requires you to reprogram the CPU to real mode. I
don't think there's any fundamental reason you can't do that from 64-bit
mode, but nobody's ever written that code.
> 2. Anybody know a workaround, short of patching and compiling a custom
> kernel? Are there other paths through the reboot code that can
> invoke a bios
> reboot? [Note: someone suggested trying a kexec-reboot, but that's also
> not supported on my configuration (running over a Xen hypervisor).]
Windows never uses the equivalent of the BIOS reboot method, so the
assumption is that if you ever need on Linux to it's because there's a
bug somewhere else. Does the platform reboot if you run the kernel on
bare metal rather than under Xen?
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 15:51 ` Matthew Garrett
@ 2012-04-09 17:26 ` Miles Fidelman
2012-04-09 17:32 ` Matthew Garrett
2012-04-09 17:53 ` H. Peter Anvin
0 siblings, 2 replies; 15+ messages in thread
From: Miles Fidelman @ 2012-04-09 17:26 UTC (permalink / raw)
To: Matthew Garrett
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
Thanks for the quick response.
Matthew Garrett wrote:
> On Mon, Apr 09, 2012 at 11:39:32AM -0400, Miles Fidelman wrote:
>
>> 1. What's the logic behind this? Why not enable a bios reboot for 64bit
>> kernels? Is there any reason why the machine_real_restart code wouldn't
>> work just as well in 64bit mode? Anybody know the history?
> The bios reboot code requires you to reprogram the CPU to real mode. I
> don't think there's any fundamental reason you can't do that from 64-bit
> mode, but nobody's ever written that code.
That would explain it. I guess there's a little bit of trickiness
involved in setting things up before
switching to real mode.
>> 2. Anybody know a workaround, short of patching and compiling a custom
>> kernel? Are there other paths through the reboot code that can
>> invoke a bios
>> reboot? [Note: someone suggested trying a kexec-reboot, but that's also
>> not supported on my configuration (running over a Xen hypervisor).]
> Windows never uses the equivalent of the BIOS reboot method, so the
> assumption is that if you ever need on Linux to it's because there's a
> bug somewhere else. Does the platform reboot if you run the kernel on
> bare metal rather than under Xen?
No. Tried all the combinations - w/ and w/o hypervisor, all the
available kernel options. Seems
like the only thing that will reboot this particular hardware/bios combo
is via the bios.
Miles
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:26 ` Miles Fidelman
@ 2012-04-09 17:32 ` Matthew Garrett
2012-04-09 17:57 ` Miles Fidelman
2012-04-09 17:53 ` H. Peter Anvin
1 sibling, 1 reply; 15+ messages in thread
From: Matthew Garrett @ 2012-04-09 17:32 UTC (permalink / raw)
To: Miles Fidelman
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
On Mon, Apr 09, 2012 at 01:26:40PM -0400, Miles Fidelman wrote:
> No. Tried all the combinations - w/ and w/o hypervisor, all the
> available kernel options. Seems
> like the only thing that will reboot this particular hardware/bios
> combo is via the bios.
And this is with 3.3? Interesting. What's the exact behaviour you see,
and what motherboard is this?
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:26 ` Miles Fidelman
2012-04-09 17:32 ` Matthew Garrett
@ 2012-04-09 17:53 ` H. Peter Anvin
2012-04-09 18:07 ` Miles Fidelman
1 sibling, 1 reply; 15+ messages in thread
From: H. Peter Anvin @ 2012-04-09 17:53 UTC (permalink / raw)
To: Miles Fidelman
Cc: Matthew Garrett, linux-kernel, tglx, mingo, x86, peter.chubb,
michael.d.labriola
On 04/09/2012 10:26 AM, Miles Fidelman wrote:
> Thanks for the quick response.
>
> Matthew Garrett wrote:
>> On Mon, Apr 09, 2012 at 11:39:32AM -0400, Miles Fidelman wrote:
>>
>>> 1. What's the logic behind this? Why not enable a bios reboot for 64bit
>>> kernels? Is there any reason why the machine_real_restart code wouldn't
>>> work just as well in 64bit mode? Anybody know the history?
>> The bios reboot code requires you to reprogram the CPU to real mode. I
>> don't think there's any fundamental reason you can't do that from 64-bit
>> mode, but nobody's ever written that code.
>
> That would explain it. I guess there's a little bit of trickiness
> involved in setting things up before
> switching to real mode.
>
Actually this code already exists; the difference is that we have to
return to 32-bit mode first.
-hpa
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:32 ` Matthew Garrett
@ 2012-04-09 17:57 ` Miles Fidelman
2012-04-09 17:59 ` H. Peter Anvin
2012-04-09 18:07 ` Matthew Garrett
0 siblings, 2 replies; 15+ messages in thread
From: Miles Fidelman @ 2012-04-09 17:57 UTC (permalink / raw)
To: Matthew Garrett
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
Matthew Garrett wrote:
> On Mon, Apr 09, 2012 at 01:26:40PM -0400, Miles Fidelman wrote:
>
>> No. Tried all the combinations - w/ and w/o hypervisor, all the
>> available kernel options. Seems
>> like the only thing that will reboot this particular hardware/bios
>> combo is via the bios.
> And this is with 3.3? Interesting. What's the exact behaviour you see,
> and what motherboard is this?
>
No. 2.6.32.5 (the one that currently ships with Debian stable).
This is a tower I built up several years ago, mostly as a sandbox - some
aftermarket motherboard,
don't have the paperwork anymore, and I'd have to pull the machine apart
to get details off the
board itself. Phoenix BIOS, somewhat old.
Since this thing sits under my desk, with the reset button close at
hand, this is more a curiosity
question - not as if this was one of our production servers sitting in a
remote datacenter (those
reboot just fine). An itch that wants to be scratched, an opportunity
to learn a little about obsolete
hardware, but not something really meriting in-depth attention.
Still....
root@sandbox:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Celeron(R) CPU 2.53GHz
stepping : 1
cpu MHz : 2533.528
cache size : 256 KB
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat
clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc up pni
cid cx16 hypervisor
bogomips : 5067.05
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:
root@sandbox:~# dmidecode
# dmidecode 2.9
SMBIOS 2.2 present.
40 structures occupying 1034 bytes.
Table at 0x000F0800.
Handle 0x0000, DMI type 0, 19 bytes
BIOS Information
Vendor: Phoenix Technologies, LTD
Version: 6.00 PG
Release Date: 09/28/2005
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 512 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/360 KB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
Handle 0x0001, DMI type 1, 25 bytes
System Information
Manufacturer:
Product Name:
Version:
Serial Number:
UUID: Not Present
Wake-up Type: Reserved
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: Foxconn
Product Name: 661 7MI
Version:
Serial Number: UYDJ54510546
Handle 0x0003, DMI type 3, 13 bytes
Chassis Information
Manufacturer:
Type: Desktop
Lock: Not Present
Version:
Serial Number:
Asset Tag:
Boot-up State: Unknown
Power Supply State: Unknown
Thermal State: Unknown
Security Status: Unknown
Handle 0x0004, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 775
Type: Central Processor
Family: Celeron
Manufacturer: Intel
ID: 41 0F 00 00 FF FB EB BF
Signature: Type 0, Family 15, Model 4, Stepping 1
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (Fast floating-point save and restore)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Hyper-threading technology)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Celeron(R) CPU
Voltage: 1.3 V
External Clock: 133 MHz
Max Speed: 1500 MHz
Current Speed: 2533 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x000A
L2 Cache Handle: 0x000B
L3 Cache Handle: No L3 Cache
Handle 0x0005, DMI type 5, 24 bytes
Memory Controller Information
Error Detecting Method: None
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 1024 MB
Maximum Total Memory Size: 4096 MB
Supported Speeds:
Other
Supported Memory Types:
DIMM
SDRAM
Memory Module Voltage: 3.3 V
Associated Memory Slots: 4
0x0006
0x0007
0x0008
0x0009
Enabled Error Correcting Capabilities:
None
Handle 0x0006, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: A0
Bank Connections: 0 1
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 1024 MB (Double-bank Connection)
Enabled Size: 1024 MB (Double-bank Connection)
Error Status: OK
Handle 0x0007, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: A1
Bank Connections: None
Current Speed: Unknown
Type: Unknown
Installed Size: Not Installed
Enabled Size: Not Installed
Error Status: OK
Handle 0x0008, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: A2
Bank Connections: None
Current Speed: Unknown
Type: Unknown
Installed Size: Not Installed
Enabled Size: Not Installed
Error Status: OK
Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: A3
Bank Connections: None
Current Speed: Unknown
Type: Unknown
Installed Size: Not Installed
Enabled Size: Not Installed
Error Status: OK
Handle 0x000A, DMI type 7, 19 bytes
Cache Information
Socket Designation: Internal Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown
Handle 0x000B, DMI type 7, 19 bytes
Cache Information
Socket Designation: External Cache
Configuration: Enabled, Not Socketed, Level 2
Operational Mode: Write Back
Location: External
Installed Size: 256 KB
Maximum Size: 256 KB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown
Handle 0x000C, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: PRIMARY IDE
Internal Connector Type: On Board IDE
External Reference Designator: Not Specified
External Connector Type: None
Port Type: Other
Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: SECONDARY IDE
Internal Connector Type: On Board IDE
External Reference Designator: Not Specified
External Connector Type: None
Port Type: Other
Handle 0x000E, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: FDD
Internal Connector Type: On Board Floppy
External Reference Designator: Not Specified
External Connector Type: None
Port Type: 8251 FIFO Compatible
Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: COM1
Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
External Reference Designator:
External Connector Type: DB-9 male
Port Type: Serial Port 16450 Compatible
Handle 0x0010, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: COM2
Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
External Reference Designator:
External Connector Type: DB-9 male
Port Type: Serial Port 16450 Compatible
Handle 0x0011, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: LPT1
Internal Connector Type: DB-25 female
External Reference Designator:
External Connector Type: DB-25 female
Port Type: Parallel Port ECP/EPP
Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Keyboard
Internal Connector Type: PS/2
External Reference Designator:
External Connector Type: PS/2
Port Type: Keyboard Port
Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: PS/2 Mouse
Internal Connector Type: PS/2
External Reference Designator:
External Connector Type: PS/2
Port Type: Mouse Port
Handle 0x0014, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Specified
Internal Connector Type: None
External Reference Designator: USB0
External Connector Type: Other
Port Type: USB
Handle 0x0015, DMI type 9, 13 bytes
System Slot Information
Designation: PCI0
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 1
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0016, DMI type 9, 13 bytes
System Slot Information
Designation: PCI1
Type: 32-bit PCI
Current Usage: In Use
Length: Long
ID: 2
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0017, DMI type 9, 13 bytes
System Slot Information
Designation: PCI2
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 3
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0018, DMI type 9, 13 bytes
System Slot Information
Designation: PCI3
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 4
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0019, DMI type 9, 13 bytes
System Slot Information
Designation: AGP
Type: 32-bit AGP
Current Usage: In Use
Length: Long
ID: 8
Characteristics:
5.0 V is provided
Handle 0x001A, DMI type 13, 22 bytes
BIOS Language Information
Installable Languages: 3
n|US|iso8859-1
n|US|iso8859-1
r|CA|iso8859-1
Currently Installed Language: n|US|iso8859-1
Handle 0x001B, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 4 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x001C, DMI type 17, 21 bytes
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: A0
Bank Locator: Bank0/1
Type: SDRAM
Type Detail: Synchronous
Handle 0x001D, DMI type 17, 21 bytes
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A1
Bank Locator: Bank2/3
Type: Unknown
Type Detail: Unknown
Handle 0x001E, DMI type 17, 21 bytes
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A2
Bank Locator: Bank4/5
Type: Unknown
Type Detail: Unknown
Handle 0x001F, DMI type 17, 21 bytes
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A3
Bank Locator: Bank6/7
Type: Unknown
Type Detail: Unknown
Handle 0x0020, DMI type 19, 15 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0003FFFFFFF
Range Size: 1 GB
Physical Array Handle: 0x001B
Partition Width: 0
Handle 0x0021, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0003FFFFFFF
Range Size: 1 GB
Physical Device Handle: 0x001C
Memory Array Mapped Address Handle: 0x0020
Partition Row Position: 1
Handle 0x0022, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000000003FF
Range Size: 1 kB
Physical Device Handle: 0x001D
Memory Array Mapped Address Handle: 0x0020
Partition Row Position: 1
Handle 0x0023, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000000003FF
Range Size: 1 kB
Physical Device Handle: 0x001E
Memory Array Mapped Address Handle: 0x0020
Partition Row Position: 1
Handle 0x0024, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000000003FF
Range Size: 1 kB
Physical Device Handle: 0x001F
Memory Array Mapped Address Handle: 0x0020
Partition Row Position: 1
Handle 0x0025, DMI type 32, 11 bytes
System Boot Information
Status: No errors detected
Handle 0x0026, DMI type 144, 12 bytes
OEM-specific Type
Header and Data:
90 0C 26 00 00 01 6C F4 B4 0F 24 01
Strings:
SiS630E-MAC
Handle 0x0027, DMI type 127, 4 bytes
End Of Table
root@sandbox:~# cat /proc/interrupts
CPU0
1: 8 xen-pirq-ioapic-edge i8042
6: 3 xen-pirq-ioapic-edge floppy
7: 0 xen-pirq-ioapic-edge parport0
8: 0 xen-pirq-ioapic-edge rtc0
9: 0 xen-pirq-ioapic-edge acpi
12: 220 xen-pirq-ioapic-edge i8042
14: 80345 xen-pirq-ioapic-edge pata_sis
15: 63 xen-pirq-ioapic-edge pata_sis
17: 0 xen-pirq-ioapic-level sata_sis
18: 890853 xen-pirq-ioapic-level SiS SI7012, peth1
20: 0 xen-pirq-ioapic-level ohci_hcd:usb2
21: 0 xen-pirq-ioapic-level ohci_hcd:usb3
22: 0 xen-pirq-ioapic-level ohci_hcd:usb4
23: 0 xen-pirq-ioapic-level ehci_hcd:usb1
501: 0 xen-dyn-event evtchn:xenstored
502: 42 xen-dyn-event evtchn:xenstored
504: 0 xen-percpu-virq mce
505: 0 xen-percpu-virq pcpu
506: 91 xen-dyn-event xenbus
507: 0 xen-percpu-ipi callfuncsingle0
508: 0 xen-percpu-virq debug0
509: 0 xen-percpu-ipi callfunc0
510: 0 xen-percpu-ipi resched0
511: 5681642 xen-percpu-virq timer0
NMI: 0 Non-maskable interrupts
LOC: 0 Local timer interrupts
SPU: 0 Spurious interrupts
PMI: 0 Performance monitoring interrupts
PND: 0 Performance pending work
RES: 0 Rescheduling interrupts
CAL: 0 Function call interrupts
TLB: 0 TLB shootdowns
TRM: 0 Thermal event interrupts
THR: 0 Threshold APIC interrupts
MCE: 0 Machine check exceptions
MCP: 2031 Machine check polls
ERR: 0
MIS: 0
root@sandbox:~# lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS]
661FX/M661FX/M661MX Host (rev 11)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] SiS AGP Port
(virtual PCI-to-PCI bridge)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL
Media IO] (rev 36)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01)
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS]
AC'97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1
Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.1
Controller (rev 0f)
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.1
Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI
Fast Ethernet (rev 90)
00:05.0 IDE interface: Silicon Integrated Systems [SiS] RAID bus
controller 180 SATA/PATA [SiS] (rev 01)
00:09.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet
Pro 100 (rev 10)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS]
661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter
Miles
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:57 ` Miles Fidelman
@ 2012-04-09 17:59 ` H. Peter Anvin
2012-04-09 18:06 ` Miles Fidelman
2012-04-09 18:07 ` Matthew Garrett
1 sibling, 1 reply; 15+ messages in thread
From: H. Peter Anvin @ 2012-04-09 17:59 UTC (permalink / raw)
To: Miles Fidelman
Cc: Matthew Garrett, linux-kernel, tglx, mingo, x86, peter.chubb,
michael.d.labriola
On 04/09/2012 10:57 AM, Miles Fidelman wrote:
>
> No. 2.6.32.5 (the one that currently ships with Debian stable).
>
2.6.32.*5*?!??
-hpa
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:59 ` H. Peter Anvin
@ 2012-04-09 18:06 ` Miles Fidelman
0 siblings, 0 replies; 15+ messages in thread
From: Miles Fidelman @ 2012-04-09 18:06 UTC (permalink / raw)
To: H. Peter Anvin
Cc: Matthew Garrett, linux-kernel, tglx, mingo, x86, peter.chubb,
michael.d.labriola
H. Peter Anvin wrote:
> On 04/09/2012 10:57 AM, Miles Fidelman wrote:
>> No. 2.6.32.5 (the one that currently ships with Debian stable).
>>
> 2.6.32.*5*?!??
Ooops.. my mistake - suckered by the Debian package nomenclature.
uname -a returns: 2.6.32-5-xen-amd64
upstream seems to be 2.6.32.41
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:57 ` Miles Fidelman
2012-04-09 17:59 ` H. Peter Anvin
@ 2012-04-09 18:07 ` Matthew Garrett
2012-04-10 14:03 ` Miles Fidelman
1 sibling, 1 reply; 15+ messages in thread
From: Matthew Garrett @ 2012-04-09 18:07 UTC (permalink / raw)
To: Miles Fidelman
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
On Mon, Apr 09, 2012 at 01:57:46PM -0400, Miles Fidelman wrote:
> Matthew Garrett wrote:
> >On Mon, Apr 09, 2012 at 01:26:40PM -0400, Miles Fidelman wrote:
> >
> >>No. Tried all the combinations - w/ and w/o hypervisor, all the
> >>available kernel options. Seems
> >>like the only thing that will reboot this particular hardware/bios
> >>combo is via the bios.
> >And this is with 3.3? Interesting. What's the exact behaviour you see,
> >and what motherboard is this?
> >
>
> No. 2.6.32.5 (the one that currently ships with Debian stable).
Ok. The reboot code has been reworked since then. It'd be good to try it
with a new kernel.
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 17:53 ` H. Peter Anvin
@ 2012-04-09 18:07 ` Miles Fidelman
0 siblings, 0 replies; 15+ messages in thread
From: Miles Fidelman @ 2012-04-09 18:07 UTC (permalink / raw)
To: H. Peter Anvin
Cc: Matthew Garrett, linux-kernel, tglx, mingo, x86, peter.chubb,
michael.d.labriola
H. Peter Anvin wrote:
> On 04/09/2012 10:26 AM, Miles Fidelman wrote:
>> Thanks for the quick response.
>>
>> Matthew Garrett wrote:
>>> On Mon, Apr 09, 2012 at 11:39:32AM -0400, Miles Fidelman wrote:
>>>
>>>> 1. What's the logic behind this? Why not enable a bios reboot for 64bit
>>>> kernels? Is there any reason why the machine_real_restart code wouldn't
>>>> work just as well in 64bit mode? Anybody know the history?
>>> The bios reboot code requires you to reprogram the CPU to real mode. I
>>> don't think there's any fundamental reason you can't do that from 64-bit
>>> mode, but nobody's ever written that code.
>> That would explain it. I guess there's a little bit of trickiness
>> involved in setting things up before
>> switching to real mode.
>>
> Actually this code already exists; the difference is that we have to
> return to 32-bit mode first.
ahhh.... ain't things fun when one gets really close to the hardware
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-09 18:07 ` Matthew Garrett
@ 2012-04-10 14:03 ` Miles Fidelman
2012-04-10 14:22 ` Matthew Garrett
0 siblings, 1 reply; 15+ messages in thread
From: Miles Fidelman @ 2012-04-10 14:03 UTC (permalink / raw)
To: Matthew Garrett
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
Matthew Garrett wrote:
> On Mon, Apr 09, 2012 at 01:57:46PM -0400, Miles Fidelman wrote:
>> Matthew Garrett wrote:
>>> On Mon, Apr 09, 2012 at 01:26:40PM -0400, Miles Fidelman wrote:
>>>
>>>> No. Tried all the combinations - w/ and w/o hypervisor, all the
>>>> available kernel options. Seems
>>>> like the only thing that will reboot this particular hardware/bios
>>>> combo is via the bios.
>>> And this is with 3.3? Interesting. What's the exact behaviour you see,
>>> and what motherboard is this?
>>>
>> No. 2.6.32.5 (the one that currently ships with Debian stable).
> Ok. The reboot code has been reworked since then. It'd be good to try it
> with a new kernel.
>
I just went through the reboot.c code, line-by-line, comparing what I'm
running (2.6.32.41) with the 3.3 code, and
what I'm seeing is:
- the same huge amount of code excluded by #ifdef CONFIG_X86_32 blocks
(i.e., still no path to reboot through the bios)
- no new methods for executing a reboot - choices for X86_64 remain
[warm|cold|triple|kbd|acpi|efi,|pci|force]
- no changes to the actual code that invokes any of those reboot methods
All that seems to have changed is:
- there are some additional quirks handled, but they all translate to
invoking one of [warm|cold|triple|kbd|acpi|efi,|pci|force]
- if one is trying to do a shutdown (which already works for me), there
is one section of code that actually changes, specifically:
inside a #ifdef CONFIG_X86_64
pci_iommu_shutdown(); changes to x86_platform.iommu_shutdown();
----
So... I don't see that trying a newer kernel is going to have any effect
vis-a-vis rebooting my particularly piece of hardware under a 64-bit
kernel - and what with the close coupling of xen versions w/ kernel
versions, seems like a lot of potential pain points just to test this.
Sigh...
Miles
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-10 14:03 ` Miles Fidelman
@ 2012-04-10 14:22 ` Matthew Garrett
2012-04-10 17:26 ` Miles Fidelman
0 siblings, 1 reply; 15+ messages in thread
From: Matthew Garrett @ 2012-04-10 14:22 UTC (permalink / raw)
To: Miles Fidelman
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
The default behaviour is now to use the ACPI reboot vector, and the
behaviour was tweaked somewhat to make it work better with a variety of
machines. If 3.3 doesn't work then we've got a problem, but I could
absolutely believe that 2.6.32 would fail to work.
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-10 14:22 ` Matthew Garrett
@ 2012-04-10 17:26 ` Miles Fidelman
2012-04-10 17:44 ` Matthew Garrett
0 siblings, 1 reply; 15+ messages in thread
From: Miles Fidelman @ 2012-04-10 17:26 UTC (permalink / raw)
To: Matthew Garrett
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
Matthew Garrett wrote:
> The default behaviour is now to use the ACPI reboot vector, and the
> behaviour was tweaked somewhat to make it work better with a variety of
> machines. If 3.3 doesn't work then we've got a problem, but I could
> absolutely believe that 2.6.32 would fail to work.
>
Interesting. The comments still indicate that kbd is the default vector.
In any case:
- just booted with a gentoo liveCD (3.3.0 kernel)
- tried the default reboot - hangs (last console message: "Remounting /
read only ..")
- tried with reboot=a - hangs (same last console message)
For what it's worth, creating a path for X86_64 mode to reboot through
the bios seems like
a good thing to put on the wish list.
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-10 17:26 ` Miles Fidelman
@ 2012-04-10 17:44 ` Matthew Garrett
2012-04-10 18:09 ` Miles Fidelman
0 siblings, 1 reply; 15+ messages in thread
From: Matthew Garrett @ 2012-04-10 17:44 UTC (permalink / raw)
To: Miles Fidelman
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
On Tue, Apr 10, 2012 at 01:26:43PM -0400, Miles Fidelman wrote:
> For what it's worth, creating a path for X86_64 mode to reboot
> through the bios seems like
> a good thing to put on the wish list.
Not really - it's far more attractive to figure out how our behaviour is
differing from Windows and change it to match. I'll see what I can find
out about this machine.
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: reboot via bios on X86_64?
2012-04-10 17:44 ` Matthew Garrett
@ 2012-04-10 18:09 ` Miles Fidelman
0 siblings, 0 replies; 15+ messages in thread
From: Miles Fidelman @ 2012-04-10 18:09 UTC (permalink / raw)
To: Matthew Garrett
Cc: linux-kernel, tglx, mingo, hpa, x86, peter.chubb, michael.d.labriola
Matthew Garrett wrote:
> On Tue, Apr 10, 2012 at 01:26:43PM -0400, Miles Fidelman wrote:
>> For what it's worth, creating a path for X86_64 mode to reboot
>> through the bios seems like
>> a good thing to put on the wish list.
> Not really - it's far more attractive to figure out how our behaviour is
> differing from Windows and change it to match. I'll see what I can find
> out about this machine.
Well.. keep in mind that that this particular machine has never run
windows,
so I don't know if windows can reboot it either.
I expect it's like that long
laundry list of Dell servers that are in the quirks code - they all seem to
reboot via the bios when running in 32-bit mode. I wonder what they
do when running in 64-bit mode (at least some of them are amd64 compatible).
Miles
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2012-04-10 18:09 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-09 15:39 reboot via bios on X86_64? Miles Fidelman
2012-04-09 15:51 ` Matthew Garrett
2012-04-09 17:26 ` Miles Fidelman
2012-04-09 17:32 ` Matthew Garrett
2012-04-09 17:57 ` Miles Fidelman
2012-04-09 17:59 ` H. Peter Anvin
2012-04-09 18:06 ` Miles Fidelman
2012-04-09 18:07 ` Matthew Garrett
2012-04-10 14:03 ` Miles Fidelman
2012-04-10 14:22 ` Matthew Garrett
2012-04-10 17:26 ` Miles Fidelman
2012-04-10 17:44 ` Matthew Garrett
2012-04-10 18:09 ` Miles Fidelman
2012-04-09 17:53 ` H. Peter Anvin
2012-04-09 18:07 ` Miles Fidelman
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).