linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).