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

Bug#708344: [Xen-users] Serial Passthrough broken in Debian Wheezy?



On Wed, 2013-06-05 at 11:47 +0200, Jonas Meurer wrote:
> Am 2013-06-04 19:45, schrieb Ian Campbell:
> > On Tue, 2013-06-04 at 17:32 +0200, Jonas Meurer wrote:
> >> Just gave Linux 3.9-1-amd64 from Debian/sid a try. The issue is
> >> reproducible with this DomU kernel.
> > 
> > Could you post dmesg, /proc/ioports and /proc/interrupts from this
> > kernel please?
> 
> Sure, here we go. All attached as textfiles. Additionally, I attached 
> the (adjusted) domU config.

Thanks. I'm taking this to xen-devel and moving the other two lists to
bcc. For xen-devel the background can be found at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708344

The gist is that with:
        irq         = [ 4 ]
        ioports     = [ '3f8-3ff' ]
        
in the guest config the serial port used to work with Jeremy's xen.git
(used in Squeeze) but doesn't work with Wheezy (3.2 based) or a 3.9
kernel. The smstools daemon fails with:
        Cannot open serial port /dev/ttyS0, error: Function not implemented

Jonas' dmesg shows:
[    0.196892] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.217565] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

and /proc/ioports shows the region but /proc/interrupts does not AFAICT.
I can't see any interrupt related errors. Jonas can you confirm that the
dmesg includes the logs resulting from an attempt to open the device?

Jonas, could you try a few more experiments, if you don't mind:

Can you use something simpler (like picocom) rather than smsdaemon and
see if that works. Assuming not could you strace it so we can see what
is actually failing. If those attempts result in anything extra in the
dmesg please can you post it.

It ought to be possible to set the port to polled mode, I think by
setting the IRQ to -1 with setserial or I think it should be possible on
the command line but I can't seem to figure out how... Anyway, if you
can get that to work it might be interesting...

Ian.
nitializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.9-1-amd64 (debian-kernel@lists.debian.org) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Debian 3.9.4-1
[    0.000000] Command line: root=/dev/xvda2 ro root=/dev/xvda2 ro 
[    0.000000] ACPI in unprivileged domain disabled
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] Xen: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] Xen: [mem 0x00000000000a0000-0x00000000000fffff] reserved
[    0.000000] Xen: [mem 0x0000000000100000-0x00000003007fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI not present or invalid.
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] No AGP bridge found
[    0.000000] e820: last_pfn = 0x300800 max_arch_pfn = 0x400000000
[    0.000000] e820: last_pfn = 0x100000 max_arch_pfn = 0x400000000
[    0.000000] Base memory trampoline at [ffff88000009a000] 9a000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x2ffe00000-0x2ffffffff]
[    0.000000]  [mem 0x2ffe00000-0x2ffffffff] page 4k
[    0.000000] BRK [0x0187c000, 0x0187cfff] PGTABLE
[    0.000000] BRK [0x0187d000, 0x0187dfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x2fc000000-0x2ffdfffff]
[    0.000000]  [mem 0x2fc000000-0x2ffdfffff] page 4k
[    0.000000] BRK [0x0187e000, 0x0187efff] PGTABLE
[    0.000000] BRK [0x0187f000, 0x0187ffff] PGTABLE
[    0.000000] BRK [0x01880000, 0x01880fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x280000000-0x2fbffffff]
[    0.000000]  [mem 0x280000000-0x2fbffffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x00100000-0x27fffffff]
[    0.000000]  [mem 0x00100000-0x27fffffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x300000000-0x3007fffff]
[    0.000000]  [mem 0x300000000-0x3007fffff] page 4k
[    0.000000] RAMDISK: [mem 0x01c7b000-0x03c13fff]
[    0.000000] NUMA turned off
[    0.000000] Faking a node at [mem 0x0000000000000000-0x00000003007fffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x3007fffff]
[    0.000000]   NODE_DATA [mem 0x2fe81d000-0x2fe820fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x3007fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0009ffff]
[    0.000000]   node   0: [mem 0x00100000-0x3007fffff]
[    0.000000] On node 0 totalpages: 3147679
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3999 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 14280 pages used for memmap
[    0.000000]   DMA32 zone: 1044480 pages, LIFO batch:31
[    0.000000]   Normal zone: 28700 pages used for memmap
[    0.000000]   Normal zone: 2099200 pages, LIFO batch:31
[    0.000000] SFI: Simple Firmware Interface v0.81 http://simplefirmware.org
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] No local APIC present
[    0.000000] APIC: disable apic facility
[    0.000000] APIC: switched to apic NOOP
[    0.000000] nr_irqs_gsi: 16
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 0000000000100000
[    0.000000] e820: cannot find a gap in the 32bit address range
[    0.000000] e820: PCI devices with unassigned 32bit BARs may break!
[    0.000000] e820: [mem 0x300900000-0x300cfffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on Xen
[    0.000000] Xen version: 4.1.4 (preserve-AD)
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff8802fe200000 s84800 r8192 d21696 u262144
[    0.000000] pcpu-alloc: s84800 r8192 d21696 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 3104622
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=/dev/xvda2 ro root=/dev/xvda2 ro 
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 12316732k/12591104k available (3683k kernel code, 388k absent, 273984k reserved, 3071k data, 884k init)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8.
[    0.000000] NR_IRQS:33024 nr_irqs:336 16
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] console [hvc0] enabled
[    0.000000] Xen: using vcpuop timer interface
[    0.000000] installing Xen timer for CPU 0
[    0.000000] tsc: Detected 2500.096 MHz processor
[    0.004000] Calibrating delay loop (skipped), value calculated using timer frequency.. 5000.19 BogoMIPS (lpj=10000384)
[    0.004000] pid_max: default: 32768 minimum: 301
[    0.004000] Security Framework initialized
[    0.004000] AppArmor: AppArmor disabled by boot time parameter
[    0.004000] Yama: becoming mindful.
[    0.004000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.011086] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.014373] Mount-cache hash table entries: 256
[    0.014669] Initializing cgroup subsys cpuacct
[    0.014683] Initializing cgroup subsys memory
[    0.014705] Initializing cgroup subsys devices
[    0.014711] Initializing cgroup subsys freezer
[    0.014716] Initializing cgroup subsys net_cls
[    0.014722] Initializing cgroup subsys blkio
[    0.014727] Initializing cgroup subsys perf_event
[    0.014795] CPU: Physical Processor ID: 0
[    0.014801] CPU: Processor Core ID: 0
[    0.014814] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4
[    0.014814] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32
[    0.014814] tlb_flushall_shift: -1
[    0.024024] Performance Events: unsupported p6 CPU model 23 no PMU driver, software events only.
[    0.024462] NMI watchdog: disabled (cpu0): hardware events not enabled
[    0.024620] installing Xen timer for CPU 1
[    0.024667] SMP alternatives: switching to SMP code
[    0.033306] installing Xen timer for CPU 2
[    0.033693] installing Xen timer for CPU 3
[    0.033997] installing Xen timer for CPU 4
[    0.034374] installing Xen timer for CPU 5
[    0.034709] installing Xen timer for CPU 6
[    0.035085] installing Xen timer for CPU 7
[    0.035241] Brought up 8 CPUs
[    0.035450] devtmpfs: initialized
[    0.040216] Grant tables using version 2 layout.
[    0.040269] Grant table initialized
[    0.040356] regulator-dummy: no parameters
[    0.040556] NET: Registered protocol family 16
[    0.040665] PCI: setting up Xen PCI frontend stub
[    0.040665] PCI: pci_cache_line_size set to 64 bytes
[    0.041419] bio: create slab <bio-0> at 0
[    0.044145] ACPI: Interpreter disabled.
[    0.044174] xen/balloon: Initialising balloon driver.
[    0.044174] xen-balloon: Initialising balloon driver.
[    0.044174] vgaarb: loaded
[    0.044174] PCI: System does not support PCI
[    0.044174] PCI: System does not support PCI
[    0.044265] Switching to clocksource xen
[    0.046465] pnp: PnP ACPI: disabled
[    0.052629] NET: Registered protocol family 2
[    0.053633] TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
[    0.054560] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.054921] TCP: Hash tables configured (established 131072 bind 65536)
[    0.054977] TCP: reno registered
[    0.055031] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    0.055179] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    0.055513] NET: Registered protocol family 1
[    0.055532] PCI: CLS 0 bytes, default 64
[    0.055601] Unpacking initramfs...
[    0.101324] Freeing initrd memory: 32356k freed
[    0.116489] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.117317] audit: initializing netlink socket (disabled)
[    0.117366] type=2000 audit(1370424721.640:1): initialized
[    0.131143] bounce pool size: 64 pages
[    0.131160] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.132184] VFS: Disk quotas dquot_6.5.2
[    0.132290] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.132442] msgmni has been set to 24119
[    0.133105] alg: No test for stdrng (krng)
[    0.133216] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.195861] io scheduler noop registered
[    0.195870] io scheduler deadline registered
[    0.195984] io scheduler cfq registered (default)
[    0.196148] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.196175] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    0.196187] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.196271] intel_idle: does not run on family 6 model 23
[    0.196892] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.217565] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.218010] Linux agpgart interface v0.103
[    0.218163] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    1.233805] i8042: No controller found
[    1.234030] mousedev: PS/2 mouse device common for all mice
[    1.293833] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    1.293919] rtc_cmos: probe of rtc_cmos failed with error -38
[    1.294090] drop_monitor: Initializing network drop monitor service
[    1.294190] TCP: cubic registered
[    1.294504] NET: Registered protocol family 10
[    1.294905] mip6: Mobile IPv6
[    1.294917] NET: Registered protocol family 17
[    1.295206] PM: Hibernation image not present or could not be loaded.
[    1.295227] registered taskstats version 1
[    1.295268] XENBUS: Device with no driver: device/vbd/51714
[    1.295274] XENBUS: Device with no driver: device/vbd/51713
[    1.295279] XENBUS: Device with no driver: device/vif/0
[    1.295284] XENBUS: Device with no driver: device/ioports/0
[    1.295289] XENBUS: Device with no driver: device/irq/0
[    1.295596] /build/linux-9VFSO6/linux-3.9.4/drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.296009] Freeing unused kernel memory: 884k freed
[    1.296413] Write protecting the kernel read-only data: 6144k
[    1.298834] Freeing unused kernel memory: 404k freed
[    1.299221] Freeing unused kernel memory: 520k freed
[    1.327412] udevd[90]: starting version 175
[    1.354864] Initialising Xen virtual ethernet driver.
[    1.375415] blkfront: xvda2: flush diskcache: enabled 
[    1.382344] blkfront: xvda1: flush diskcache: enabled 
[    1.661884] EXT4-fs (xvda2): mounted filesystem with ordered data mode. Opts: (null)
[    3.416307] udevd[280]: starting version 175
[    3.759485] input: PC Speaker as /devices/platform/pcspkr/input/input0
[    3.891955] Error: Driver 'pcspkr' is already registered, aborting...
[    4.131323] Adding 4194300k swap on /dev/xvda1.  Priority:-1 extents:1 across:4194300k SS
[    4.164887] EXT4-fs (xvda2): re-mounted. Opts: (null)
[    4.424068] EXT4-fs (xvda2): re-mounted. Opts: errors=remount-ro
#
# Configuration file for the Xen instance **************, created
# by xen-tools 4.3.1 on Mon Jan  7 14:38:03 2013.
#

#
#  Kernel + memory size
#
bootloader = '/usr/lib/xen-4.1/bin/pygrub'
#kernel      = '/boot/vmlinuz-3.2.0-4-amd64'
#ramdisk     = '/boot/initrd.img-3.2.0-4-amd64'


vcpus       = '8'
memory      = '12288'

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'phy:/dev/vg00/**************-disk,xvda2,w',
                  'phy:/dev/vg00/**************-swap,xvda1,w',
              ]


#
#  Hostname
#
name        = '**************'

#
#  Networking
#
vif         = [ 'mac=00:16:3E:**:**:**, bridge=br**' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

# Passthrough Serial Port with GSM Modem
irq         = [ 4 ]
ioports     = [ '3f8-3ff' ]

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
 16:      34973          0          0          0          0          0          0          0  xen-percpu-virq      timer0
 17:      35090          0          0          0          0          0          0          0  xen-percpu-ipi       resched0
 18:        232          0          0          0          0          0          0          0  xen-percpu-ipi       callfunc0
 19:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug0
 20:       1272          0          0          0          0          0          0          0  xen-percpu-ipi       callfuncsingle0
 21:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork0
 22:          0      29906          0          0          0          0          0          0  xen-percpu-virq      timer1
 23:          0      28883          0          0          0          0          0          0  xen-percpu-ipi       resched1
 24:          0        255          0          0          0          0          0          0  xen-percpu-ipi       callfunc1
 25:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug1
 26:          0       2826          0          0          0          0          0          0  xen-percpu-ipi       callfuncsingle1
 27:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork1
 28:          0          0      30554          0          0          0          0          0  xen-percpu-virq      timer2
 29:          0          0      23749          0          0          0          0          0  xen-percpu-ipi       resched2
 30:          0          0        282          0          0          0          0          0  xen-percpu-ipi       callfunc2
 31:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug2
 32:          0          0       1968          0          0          0          0          0  xen-percpu-ipi       callfuncsingle2
 33:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork2
 34:          0          0          0      26923          0          0          0          0  xen-percpu-virq      timer3
 35:          0          0          0      19391          0          0          0          0  xen-percpu-ipi       resched3
 36:          0          0          0        314          0          0          0          0  xen-percpu-ipi       callfunc3
 37:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug3
 38:          0          0          0       2679          0          0          0          0  xen-percpu-ipi       callfuncsingle3
 39:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork3
 40:          0          0          0          0      28250          0          0          0  xen-percpu-virq      timer4
 41:          0          0          0          0      18049          0          0          0  xen-percpu-ipi       resched4
 42:          0          0          0          0        297          0          0          0  xen-percpu-ipi       callfunc4
 43:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug4
 44:          0          0          0          0       1948          0          0          0  xen-percpu-ipi       callfuncsingle4
 45:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork4
 46:          0          0          0          0          0      27914          0          0  xen-percpu-virq      timer5
 47:          0          0          0          0          0      16852          0          0  xen-percpu-ipi       resched5
 48:          0          0          0          0          0        291          0          0  xen-percpu-ipi       callfunc5
 49:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug5
 50:          0          0          0          0          0       1911          0          0  xen-percpu-ipi       callfuncsingle5
 51:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork5
 52:          0          0          0          0          0          0      26876          0  xen-percpu-virq      timer6
 53:          0          0          0          0          0          0      16645          0  xen-percpu-ipi       resched6
 54:          0          0          0          0          0          0        285          0  xen-percpu-ipi       callfunc6
 55:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug6
 56:          0          0          0          0          0          0       1736          0  xen-percpu-ipi       callfuncsingle6
 57:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork6
 58:          0          0          0          0          0          0          0      27517  xen-percpu-virq      timer7
 59:          0          0          0          0          0          0          0      15834  xen-percpu-ipi       resched7
 60:          0          0          0          0          0          0          0        251  xen-percpu-ipi       callfunc7
 61:          0          0          0          0          0          0          0          0  xen-percpu-virq      debug7
 62:          0          0          0          0          0          0          0       2085  xen-percpu-ipi       callfuncsingle7
 63:          0          0          0          0          0          0          0          0  xen-percpu-ipi       irqwork7
 64:        393          0          0          0          0          0          0          0   xen-dyn-event     xenbus
 65:        189          0          0          0          0          0          0          0   xen-dyn-event     hvc_console
 66:      25268          0          0          0          0          0          0          0   xen-dyn-event     blkif
 67:        168          0          0          0          0          0          0          0   xen-dyn-event     blkif
 68:     135924          0          0          0          0          0          0          0   xen-dyn-event     eth0
NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
LOC:          0          0          0          0          0          0          0          0   Local timer interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
RTR:          0          0          0          0          0          0          0          0   APIC ICR read retries
RES:      35092      28883      23749      19391      18049      16852      16645      15834   Rescheduling interrupts
CAL:       1504       3081       2250       2993       2245       2202       2021       2336   Function call interrupts
TLB:          0          0          0          0          0          0          0          0   TLB shootdowns
TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
MCP:          0          0          0          0          0          0          0          0   Machine check polls
ERR:          0
MIS:          0
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0070-0071 : rtc_cmos
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
03f8-03ff : serial

Reply to: