WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Kernel 2.6.31.6 pv_ops freeze on start

I have reupdate xen and kernel and redo debug with also dummy=dummy and this
is the sol log:  http://old.nabble.com/file/p27714129/sol2.txt sol2.txt 

Fantu wrote:
> 
> also with this not boot:
> menuentry "Xen 4 hg-un DEBUG, linux 2.6.31.6" {
>       set root=(hd0,1)
>       multiboot /boot/xen-4.gz dummy=dummy dom0_mem=1024M iommu=passthrough,pv
> loglvl=all guest_loglvl=all sync_console console_to_ring com2=56700,8n1
> console=com2,vga
>       module /boot/vmlinuz-2.6.31.6-xen dummy=dummy root=LABEL=root-raid ro
> console=hvc0 initcall_debug debug loglevel=10 earlyprintk=xen
>       module /boot/initrd.img-2.6.31.6-xen
>  }
> 
> Pasi Kärkkäinen wrote:
>> 
>> On Tue, Feb 16, 2010 at 05:56:35AM -0800, Fantu wrote:
>>> 
>>> I have download update xen from unstable, kernel from git and i try to
>>> apply
>>> patch but it seems already present
>>> I have try to start and log with SOL, this is the full output: 
>>> http://old.nabble.com/file/p27608625/logsol.txt logsol.txt 
>>> The entry in grub for debug:
>>> menuentry "Xen 4 hg-un DEBUG, linux 2.6.31.6" {
>>>     set root=(hd0,1)
>>>     multiboot /boot/xen-4.gz dom0_mem=1024M iommu=passthrough,pv loglvl=all
>>> guest_loglvl=all sync_console console_to_ring com2=56700,8n1
>>> console=com2,vga
>>>     module /boot/vmlinuz-2.6.31.6-xen root=LABEL=root-raid ro console=hvc0
>>> initcall_debug debug loglevel=10 earlyprintk=xen
>>>     module /boot/initrd.img-2.6.31.6-xen
>>> }
>> 
>> So you're using GRUB2..
>> 
>> Please check this wiki page:
>> http://wiki.xensource.com/xenwiki/XenCommonProblems
>> 
>> There's a chapter called "Booting Xen with GRUB2 fails?".
>> 
>> -- Pasi
>> 
>>> 
>>> Jeremy Fitzhardinge wrote:
>>> > 
>>> > On 01/08/2010 06:16 AM, Fantu wrote:
>>> >> Thanks, i have do, this is all the i see with sol before black screen
>>> >> freeze
>>> >> on vga:
>>> >>
>>> >>   __  __            _  _    ___   ___              _
>>> >>   \ \/ /___ _ __   | || |  / _ \ / _ \    _ __ ___/ |   _ __  _ __
>>> ___
>>> >>    \  // _ \ '_ \  | || |_| | | | | | |__| '__/ __| |__| '_ \| '__/ _
>>> \
>>> >>    /  \  __/ | | | |__   _| |_| | |_| |__| | | (__| |__| |_) | | | 
>>> __/
>>> >>   /_/\_\___|_| |_|    |_|(_)___(_)___/   |_|  \___|_|  | .__/|_| 
>>> \___|
>>> >>                                                        |_|
>>> >> (XEN) Xen version 4.0.0-rc1-pre (root@) (gcc version 4.3.2 (Debian
>>> >> 4.3.2-1.1) )0
>>> >> (XEN) Latest ChangeSet: Tue Jan 05 08:40:18 2010 +0000
>>> 20756:4feec90815a0
>>> >> (XEN) Command line: dom0_mem=512M iommu=passthrough,pv com2=57600,8n1
>>> >> console=ca
>>> >> (XEN) Video information:
>>> >> (XEN)  VGA is text mode 80x25, font 8x16
>>> >> (XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
>>> >> (XEN) Disc information:
>>> >> (XEN)  Found 2 MBR signatures
>>> >> (XEN)  Found 2 EDD information structures
>>> >> (XEN) Xen-e820 RAM map:
>>> >> (XEN)  0000000000000000 - 00000000000a0000 (usable)
>>> >> (XEN)  0000000000100000 - 00000000cf699000 (usable)
>>> >> (XEN)  00000000cf699000 - 00000000cf6af000 (reserved)
>>> >> (XEN)  00000000cf6af000 - 00000000cf6ce000 (ACPI data)
>>> >> (XEN)  00000000cf6ce000 - 00000000d0000000 (reserved)
>>> >> (XEN)  00000000e0000000 - 00000000f0000000 (reserved)
>>> >> (XEN)  00000000fe000000 - 0000000100000000 (reserved)
>>> >> (XEN)  0000000100000000 - 0000000330000000 (usable)
>>> >> (XEN) ACPI: RSDP 000F0EC0, 0024 (r2 DELL  )
>>> >> (XEN) ACPI: XSDT 000F0FC4, 009C (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: FACP CF6C3F9C, 00F4 (r3 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: DSDT CF6AF000, 3CF2 (r1 DELL   PE_SC3          1 INTL
>>> >> 20050624)
>>> >> (XEN) ACPI: FACS CF6C6000, 0040
>>> >> (XEN) ACPI: APIC CF6C3478, 015E (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: SPCR CF6C35D8, 0050 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: HPET CF6C362C, 0038 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: DMAR CF6C3668, 01D0 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: MCFG CF6C38C4, 003C (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: WD__ CF6C3904, 0134 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: SLIC CF6C3A3C, 0024 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: ERST CF6B2E74, 0270 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: HEST CF6B30E4, 03A8 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: BERT CF6B2CF4, 0030 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: EINJ CF6B2D24, 0150 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: SRAT CF6C3BC0, 0370 (r1 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: TCPA CF6C3F34, 0064 (r2 DELL   PE_SC3          1 DELL       
>>> >> 1)
>>> >> (XEN) ACPI: SSDT CF6C7000, 0F08 (r1  INTEL PPM RCM  80000001 INTL
>>> >> 20061109)
>>> >> (XEN) System RAM: 12053MB (12342340kB)
>>> >> (XEN) SRAT: PXM 1 ->  APIC 16 ->  Node 0
>>> >> (XEN) SRAT: PXM 1 ->  APIC 18 ->  Node 0
>>> >> (XEN) SRAT: PXM 1 ->  APIC 20 ->  Node 0
>>> >> (XEN) SRAT: PXM 1 ->  APIC 22 ->  Node 0
>>> >> (XEN) SRAT: Node 0 PXM 1 0-d0000000
>>> >> (XEN) SRAT: Node 0 PXM 1 100000000-330000000
>>> >> (XEN) NUMA: Using 20 for the hash shift.
>>> >> (XEN) Domain heap initialised
>>> >> (XEN) found SMP MP-table at 000fe710
>>> >> (XEN) DMI 2.6 present.
>>> >> (XEN) Using APIC driver default
>>> >> (XEN) ACPI: PM-Timer IO Port: 0x808
>>> >> (XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[804,0], pm1x_evt[800,0]
>>> >> (XEN) ACPI:                  wakeup_vec[cf6c600c], vec_size[20]
>>> >> (XEN) ACPI: Local APIC address 0xfee00000
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x10] enabled)
>>> >> (XEN) Processor #16 7:10 APIC version 21
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x12] enabled)
>>> >> (XEN) Processor #18 7:10 APIC version 21
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x14] enabled)
>>> >> (XEN) Processor #20 7:10 APIC version 21
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x16] enabled)
>>> >> (XEN) Processor #22 7:10 APIC version 21
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x24] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x25] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x26] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x27] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x09] lapic_id[0x28] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x29] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x2a] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x2b] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x2c] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x2d] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x2e] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x10] lapic_id[0x2f] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x11] lapic_id[0x30] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x12] lapic_id[0x31] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x13] lapic_id[0x32] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x14] lapic_id[0x33] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x15] lapic_id[0x34] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x16] lapic_id[0x35] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x17] lapic_id[0x36] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x18] lapic_id[0x37] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x19] lapic_id[0x38] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1a] lapic_id[0x39] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1b] lapic_id[0x3a] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1c] lapic_id[0x3b] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1d] lapic_id[0x3c] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1e] lapic_id[0x3d] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x1f] lapic_id[0x3e] disabled)
>>> >> (XEN) ACPI: LAPIC (acpi_id[0x20] lapic_id[0x3f] disabled)
>>> >> (XEN) ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
>>> >> (XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
>>> >> (XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
>>> >> (XEN) ACPI: IOAPIC (id[0x01] address[0xfec80000] gsi_base[32])
>>> >> (XEN) IOAPIC[1]: apic_id 1, version 32, address 0xfec80000, GSI 32-55
>>> >> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
>>> >> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
>>> >> (XEN) ACPI: IRQ0 used by override.
>>> >> (XEN) ACPI: IRQ2 used by override.
>>> >> (XEN) ACPI: IRQ9 used by override.
>>> >> (XEN) Enabling APIC mode:  Flat.  Using 2 I/O APICs
>>> >> (XEN) ACPI: HPET id: 0x8086a301 base: 0xfed00000
>>> >> (XEN) [VT-D]dmar.c:548: Host address width 40
>>> >> (XEN) [VT-D]dmar.c:557: found ACPI_DMAR_DRHD:
>>> >> (XEN) [VT-D]dmar.c:374:   dmaru->address = fed90000
>>> >> (XEN) [VT-D]dmar.c:386:   flags: INCLUDE_ALL
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7c8000 end_address
>>> >> cf7dffff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.7
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.7
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7b1000 end_address
>>> >> cf7bffff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.0
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.1
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.2
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.0
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.1
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.2
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7a1000 end_address
>>> >> cf7a1fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.0
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7a3000 end_address
>>> >> cf7a3fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.1
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7a5000 end_address
>>> >> cf7a5fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.0
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7a7000 end_address
>>> >> cf7a7fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.1
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7a9000 end_address
>>> >> cf7a9fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.2
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7c0000 end_address
>>> >> cf7c0fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1a.7
>>> >> (XEN) [VT-D]dmar.c:561: found ACPI_DMAR_RMRR:
>>> >> (XEN) [VT-D]dmar.c:446:   RMRR region: base_addr cf7c2000 end_address
>>> >> cf7c2fff
>>> >> (XEN) [VT-D]dmar.c:326:   endpoint: 0:1d.7
>>> >> (XEN) [VT-D]dmar.c:565: found ACPI_DMAR_ATSR:
>>> >> (XEN) [VT-D]dmar.c:476:   atsru->all_ports: 0
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:1.0  start = 0 sec = 1  sub = 1
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:3.0  start = 0 sec = 3  sub = 3
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:4.0  start = 0 sec = 4  sub = 4
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:5.0  start = 0 sec = 5  sub = 5
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:7.0  start = 0 sec = 6  sub = 6
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:9.0  start = 0 sec = 7  sub = 7
>>> >> (XEN) [VT-D]dmar.c:314:   bridge: 0:a.0  start = 0 sec = 2  sub = 2
>>> >> (XEN) PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 -
>>> 255
>>> >> (XEN) PCI: MCFG area at e0000000 reserved in E820
>>> >> (XEN) Using ACPI (MADT) for SMP configuration information
>>> >> (XEN) Using scheduler: SMP Credit Scheduler (credit)
>>> >> (XEN) Initializing CPU#0
>>> >> (XEN) Detected 1995.045 MHz processor.
>>> >> (XEN) Initing memory sharing.
>>> >> (XEN) CPU: L1 I cache: 32K, L1 D cache: 32K
>>> >> (XEN) CPU: L2 cache: 256K
>>> >> (XEN) CPU: L3 cache: 4096K
>>> >> (XEN) CPU: Physical Processor ID: 1
>>> >> (XEN) CPU: Processor Core ID: 0
>>> >> (XEN) VMX: Supported advanced features:
>>> >> (XEN)  - APIC MMIO access virtualisation
>>> >> (XEN)  - APIC TPR shadow
>>> >> (XEN)  - Extended Page Tables (EPT)
>>> >> (XEN)  - Virtual-Processor Identifiers (VPID)
>>> >> (XEN)  - Virtual NMI
>>> >> (XEN)  - MSR direct-access bitmap
>>> >> (XEN) HVM: ASIDs enabled.
>>> >> (XEN) HVM: VMX enabled
>>> >> (XEN) HVM: Hardware Assisted Paging detected.
>>> >> (XEN) Intel machine check reporting enabled on CPU#0.
>>> >> (XEN) CPU0: Thermal monitoring enabled (TM1)
>>> >> (XEN) [VT-D]iommu.c:1062: drhd->address = fed90000
>>> >> (XEN) [VT-D]iommu.c:1063: iommu->reg = ffff82c3fff57000
>>> >> (XEN) Intel VT-d Snoop Control supported.
>>> >> (XEN) Intel VT-d DMA Passthrough supported.
>>> >> (XEN) Intel VT-d Queued Invalidation supported.
>>> >> (XEN) Intel VT-d Interrupt Remapping not supported.
>>> >> (XEN) I/O virtualisation enabled
>>> >> (XEN) I/O virtualisation for PV guests enabled
>>> >> (XEN) CPU0: Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz stepping
>>> 05
>>> >> (XEN) Booting processor 1/18 eip 8c000
>>> >> (XEN) Initializing CPU#1
>>> >> (XEN) CPU: L1 I cache: 32K, L1 D cache: 32K
>>> >> (XEN) CPU: L2 cache: 256K
>>> >> (XEN) CPU: L3 cache: 4096K
>>> >> (XEN) CPU: Physical Processor ID: 1
>>> >> (XEN) CPU: Processor Core ID: 1
>>> >> (XEN) HVM: ASIDs enabled.
>>> >> (XEN) Intel machine check reporting enabled on CPU#1.
>>> >> (XEN) CPU1: Thermal monitoring enabled (TM1)
>>> >> (XEN) CPU1: Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz stepping
>>> 05
>>> >> (XEN) Booting processor 2/20 eip 8c000
>>> >> (XEN) Initializing CPU#2
>>> >> (XEN) CPU: L1 I cache: 32K, L1 D cache: 32K
>>> >> (XEN) CPU: L2 cache: 256K
>>> >> (XEN) CPU: L3 cache: 4096K
>>> >> (XEN) CPU: Physical Processor ID: 1
>>> >> (XEN) CPU: Processor Core ID: 2
>>> >> (XEN) HVM: ASIDs enabled.
>>> >> (XEN) Intel machine check reporting enabled on CPU#2.
>>> >> (XEN) CPU2: Thermal monitoring enabled (TM1)
>>> >> (XEN) CPU2: Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz stepping
>>> 05
>>> >> (XEN) Booting processor 3/22 eip 8c000
>>> >> (XEN) Initializing CPU#3
>>> >> (XEN) CPU: L1 I cache: 32K, L1 D cache: 32K
>>> >> (XEN) CPU: L2 cache: 256K
>>> >> (XEN) CPU: L3 cache: 4096K
>>> >> (XEN) CPU: Physical Processor ID: 1
>>> >> (XEN) CPU: Processor Core ID: 3
>>> >> (XEN) HVM: ASIDs enabled.
>>> >> (XEN) Intel machine check reporting enabled on CPU#3.
>>> >> (XEN) CPU3: Thermal monitoring enabled (TM1)
>>> >> (XEN) CPU3: Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz stepping
>>> 05
>>> >> (XEN) Total of 4 processors activated.
>>> >> (XEN) ENABLING IO-APIC IRQs
>>> >> (XEN)  ->  Using new ACK method
>>> >> (XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
>>> >> (XEN) checking TSC synchronization across 4 CPUs: passed.
>>> >> (XEN) Platform timer is 14.318MHz HPET
>>> >> (
>>> >>    
>>> > 
>>> > Ah, I saw the same when using a IPMI SOL implementation; this is the 
>>> > point when the serial port becomes interrupt-driven, and there's 
>>> > something wrong with interrupts.  The fix is this patch from Konrad:
>>> > 
>>> > diff -r 8f304c003af4 -r 7863747c5061 xen/drivers/char/ns16550.c
>>> > --- a/xen/drivers/char/ns16550.c  Wed Dec 09 10:59:31 2009 +0000
>>> > +++ b/xen/drivers/char/ns16550.c  Thu Dec 10 11:03:25 2009 -0800
>>> > @@ -39,6 +39,7 @@
>>> >       /* UART with no IRQ line: periodically-polled I/O. */
>>> >       struct timer timer;
>>> >       unsigned int timeout_ms;
>>> > +    int probing, intr_works;
>>> >   } ns16550_com[2] = { { 0 } };
>>> > 
>>> >   /* Register offsets */
>>> > @@ -127,6 +128,13 @@
>>> >       struct serial_port *port = dev_id;
>>> >       struct ns16550 *uart = port->uart;
>>> > 
>>> > +    if (uart->intr_works == 0)
>>> > +    {
>>> > +        uart->probing = 0;
>>> > +        uart->intr_works = 1;
>>> > +        stop_timer(&uart->timer);
>>> > +    }
>>> > +
>>> >       while ( !(ns_read_reg(uart, IIR)&  IIR_NOINT) )
>>> >       {
>>> >           char lsr = ns_read_reg(uart, LSR);
>>> > @@ -143,6 +151,15 @@
>>> >       struct ns16550 *uart = port->uart;
>>> >       struct cpu_user_regs *regs = guest_cpu_user_regs();
>>> > 
>>> > +    if ( uart->intr_works )
>>> > +        return;     /* Interrupts work - no more polling */
>>> > +
>>> > +    if ( uart->probing ) {
>>> > +        uart->probing = 0;
>>> > +        if ( (ns_read_reg(uart, LSR)&  0xff) == 0xff )
>>> > +            return;     /* All bits set - probably no UART present */
>>> > +    }
>>> > +
>>> >       while ( ns_read_reg(uart, LSR)&  LSR_DR )
>>> >           serial_rx_interrupt(port, regs);
>>> > 
>>> > @@ -230,15 +247,14 @@
>>> > 
>>> >       serial_async_transmit(port);
>>> > 
>>> > +    init_timer(&uart->timer, ns16550_poll, port, 0);
>>> > +    /* Calculate time to fill RX FIFO and/or empty TX FIFO for
>>> polling.
>>> > */
>>> > +    bits = uart->data_bits + uart->stop_bits + !!uart->parity;
>>> > +    uart->timeout_ms = max_t(
>>> > +        unsigned int, 1, (bits * port->tx_fifo_size * 1000) /
>>> > uart->baud);
>>> > +
>>> >       if ( uart->irq == 0 )
>>> > -    {
>>> > -        /* Polled mode. Calculate time to fill RX FIFO and/or empty
>>> TX
>>> > FIFO. */
>>> > -        bits = uart->data_bits + uart->stop_bits + !!uart->parity;
>>> > -        uart->timeout_ms = max_t(
>>> > -            unsigned int, 1, (bits * port->tx_fifo_size * 1000) /
>>> > uart->baud);
>>> > -        init_timer(&uart->timer, ns16550_poll, port, 0);
>>> >           set_timer(&uart->timer, NOW() +
>>> MILLISECS(uart->timeout_ms));
>>> > -    }
>>> >       else
>>> >       {
>>> >           uart->irqaction.handler = ns16550_interrupt;
>>> > @@ -252,6 +268,12 @@
>>> > 
>>> >           /* Enable receive and transmit interrupts. */
>>> >           ns_write_reg(uart, IER, IER_ERDAI | IER_ETHREI);
>>> > +
>>> > +        /* Do a timed write to make sure we are getting interrupts.
>>> */
>>> > +        uart->probing = 1;
>>> > +        uart->intr_works = 0;
>>> > +        ns_write_reg(uart, THR, 0xff);
>>> > +        set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));
>>> >       }
>>> >   }
>>> > 
>>> > 
>>> >   J
>>> > 
>>> > 
>>> > _______________________________________________
>>> > Xen-devel mailing list
>>> > Xen-devel@xxxxxxxxxxxxxxxxxxx
>>> > http://lists.xensource.com/xen-devel
>>> > 
>>> > 
>>> 
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Kernel-2.6.31.6-pv_ops-freeze-on-start-tp27059994p27608625.html
>>> Sent from the Xen - Dev mailing list archive at Nabble.com.
>>> 
>>> 
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>> http://lists.xensource.com/xen-devel
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Kernel-2.6.31.6-pv_ops-freeze-on-start-tp27059994p27714129.html
Sent from the Xen - Dev mailing list archive at Nabble.com.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel