[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.