drops to ddb when disconnecting from serial line

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

drops to ddb when disconnecting from serial line

Lévai, Dániel
Hi!

I'm connecting to a PCEngines APU1D on its serial console with an
USB-RS232 cable (uplcom0 at uhub0 port 9 "Prolific Technology Inc.
USB-Serial Controller D" rev 1.10/4.00 addr 2), and I have this strange
issue, when I *leave* the "serial session", the APU1D machine drops to
ddb.

On the client (where the converter's USB half is plugged in) I'm using
OpenBSD 5.8-stable, and on the APU1D (where the converter's RS232 half
is plugged in) I'm running -current. I'm using cu(1) and minicom(1), and
when I exit from any of those (~. or CTRL-A X), the (APU1D) machine
hangs and drops into a ddb> prompt.

ddb{0}> show panic
the kernel did not panic
ddb{0}> trace
Debugger() at Debugger+0x9
comintr() at comintr+0x253
intr_handler() at intr_handler+0x67
Xintr_ioapic_edge4() at Xintr_ioapic_edge4+0xc9
--- interrupt ---
Xspllower() at Xspllower+0xc
mtx_leave() at mtx_leave+0x34
Xsoftclock() at Xsoftclock+0x1f
--- interrupt ---
end of kernel
end trace frame: 0x1388, count: -7
0x8:
ddb{0}> machine ddbcpu 1
Stopped at      Debugger+0x9:   leave
ddb{1}> trace
Debugger() at Debugger+0x9
x86_ipi_handler() at x86_ipi_handler+0x76
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x1c
--- interrupt ---
acpicpu_idle() at acpicpu_idle+0x13c
cpu_idle_cycle() at cpu_idle_cycle+0x10
end trace frame: 0x0, count: -5

ddb{1}> boot reboot
splassert: if_down: want 5 have 14


So I guess it didn't panic, but just dropped to ddb from console,
because ddb.console was set to 1. Is there something sent via the serial
console that induces this? If I set ddb.console to 0 this doesn't
happen, but I'm curious as to what is happening and if I can avoid it.


Thanks,
Daniel


APU1D's dmesg:
OpenBSD 5.9-beta (GENERIC.MP) #1780: Sat Dec 26 20:05:34 MST 2015
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
RTC BIOS diagnostic error ef<clock_battery,ROM_cksum,config_unit,fixed_disk,invalid_time>
real mem = 2098520064 (2001MB)
avail mem = 2030858240 (1936MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0x7e16d820 (7 entries)
bios0: vendor coreboot version "4.0" date 09/08/2014
bios0: PC Engines APU
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S3 S4 S5
acpi0: tables DSDT FACP SPCR HPET APIC HEST SSDT SSDT SSDT
acpi0: wakeup devices AGPB(S4) HDMI(S4) PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4) PE20(S4) PE21(S4) PE22(S4) PE23(S4) PIBR(S4) UOH1(S3) UOH2(S3) UOH3(S3) UOH4(S3) UOH5(S3) [...]
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpihpet0 at acpi0: 14318180 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD G-T40E Processor, 1000.13 MHz
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC
cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 16-way L2 cache
cpu0: 8 4MB entries fully associative
cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 200MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD G-T40E Processor, 1000.00 MHz
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC
cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 16-way L2 cache
cpu1: 8 4MB entries fully associative
cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 21, 24 pins
acpiprt0 at acpi0: bus -1 (AGPB)
acpiprt1 at acpi0: bus -1 (HDMI)
acpiprt2 at acpi0: bus 1 (PBR4)
acpiprt3 at acpi0: bus 2 (PBR5)
acpiprt4 at acpi0: bus 3 (PBR6)
acpiprt5 at acpi0: bus 4 (PBR7)
acpiprt6 at acpi0: bus 6 (PE20)
acpiprt7 at acpi0: bus -1 (PE21)
acpiprt8 at acpi0: bus -1 (PE22)
acpiprt9 at acpi0: bus -1 (PE23)
acpiprt10 at acpi0: bus 0 (PCI0)
acpiprt11 at acpi0: bus 5 (PIBR)
acpicpu0 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS
acpicpu1 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS
acpibtn0 at acpi0: PWRB
cpu0: 1000 MHz: speeds: 1000 800 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD AMD64 14h Host" rev 0x00
ppb0 at pci0 dev 4 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci1 at ppb0 bus 1
re0 at pci1 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E (0x2c00), msi, address 00:0d:b9:3f:ea:e8
rgephy0 at re0 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ppb1 at pci0 dev 5 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci2 at ppb1 bus 2
re1 at pci2 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E (0x2c00), msi, address 00:0d:b9:3f:ea:e9
rgephy1 at re1 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ppb2 at pci0 dev 6 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci3 at ppb2 bus 3
re2 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E (0x2c00), msi, address 00:0d:b9:3f:ea:ea
rgephy2 at re2 phy 7: RTL8169S/8110S/8211 PHY, rev. 4
ppb3 at pci0 dev 7 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi
pci4 at ppb3 bus 4
athn0 at pci4 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 2 int 19
athn0: AR9280 rev 2 (2T2R), ROM rev 22, address 04:f0:21:14:c7:8c
ahci0 at pci0 dev 17 function 0 "ATI SBx00 SATA" rev 0x40: apic 2 int 19, AHCI 1.2
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, KINGSTON SMS200S, 603A> SCSI3 0/direct fixed naa.50026b725701c03c
sd0: 28626MB, 512 bytes/sector, 58626288 sectors, thin
ohci0 at pci0 dev 18 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, version 1.0, legacy support
ehci0 at pci0 dev 18 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "ATI EHCI root hub" rev 2.00/1.00 addr 1
ohci1 at pci0 dev 19 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, version 1.0, legacy support
ehci1 at pci0 dev 19 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "ATI EHCI root hub" rev 2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" rev 0x42: polling
iic0 at piixpm0
pcib0 at pci0 dev 20 function 3 "ATI SB700 ISA" rev 0x40
ppb4 at pci0 dev 20 function 4 "ATI SB600 PCI" rev 0x40
pci5 at ppb4 bus 5
ohci2 at pci0 dev 20 function 5 "ATI SB700 USB" rev 0x00: apic 2 int 18, version 1.0, legacy support
ppb5 at pci0 dev 21 function 0 "ATI SB800 PCIE" rev 0x00
pci6 at ppb5 bus 6
ohci3 at pci0 dev 22 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, version 1.0, legacy support
ehci2 at pci0 dev 22 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17
usb2 at ehci2: USB revision 2.0
uhub2 at usb2 "ATI EHCI root hub" rev 2.00/1.00 addr 1
pchb1 at pci0 dev 24 function 0 "AMD AMD64 14h Link Cfg" rev 0x43
pchb2 at pci0 dev 24 function 1 "AMD AMD64 14h Address Map" rev 0x00
pchb3 at pci0 dev 24 function 2 "AMD AMD64 14h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD AMD64 14h Misc Cfg" rev 0x00
pchb4 at pci0 dev 24 function 4 "AMD AMD64 14h CPU Power" rev 0x00
pchb5 at pci0 dev 24 function 5 "AMD AMD64 14h Reserved" rev 0x00
pchb6 at pci0 dev 24 function 6 "AMD AMD64 14h NB Power" rev 0x00
pchb7 at pci0 dev 24 function 7 "AMD AMD64 14h Reserved" rev 0x00
usb3 at ohci0: USB revision 1.0
uhub3 at usb3 "ATI OHCI root hub" rev 1.00/1.00 addr 1
usb4 at ohci1: USB revision 1.0
uhub4 at usb4 "ATI OHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x52
usb5 at ohci2: USB revision 1.0
uhub5 at usb5 "ATI OHCI root hub" rev 1.00/1.00 addr 1
usb6 at ohci3: USB revision 1.0
uhub6 at usb6 "ATI OHCI root hub" rev 1.00/1.00 addr 1
umass0 at uhub2 port 1 configuration 1 interface 0 "Generic Flash Card Reader/Writer" rev 2.01/1.00 addr 2
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <Multiple, Card Reader, 1.00> SCSI2 0/direct removable serial.058f6366058F63666485
uhidev0 at uhub3 port 5 configuration 1 interface 0 "American Power Conversion Back-UPS XS 1400U  FW:926.T1 .I USB FW:T1" rev 1.10/1.06 addr 2
uhidev0: iclass 3/0, 123 report ids
upd0 at uhidev0
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
root on sd0a (c421705bda3156b9.a) swap on sd0b dump on sd0b
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: pap failure
pppoe: GENERIC ERROR: RP-PPPoE: Child pppd process terminated
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: pap failure
pppoe: GENERIC ERROR: RP-PPPoE: Child pppd process terminated
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: pap failure
pppoe: GENERIC ERROR: RP-PPPoE: Child pppd process terminated
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe0: pap failure
pppoe: GENERIC ERROR: RP-PPPoE: Child pppd process terminated
pppoe0: received unexpected PADO
pppoe0: received unexpected PADO
pppoe: GENERIC ERROR: RP-PPPoE: Child pppd process terminated



--
LÉVAI Dániel
PGP key ID = 0x83B63A8F
Key fingerprint = DBEC C66B A47A DFA2 792D  650C C69B BE4C 83B6 3A8F

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Tati Chevron
On Sun, Dec 27, 2015 at 01:32:06PM +0100, LÉVAI Dániel wrote:
>I'm connecting to a PCEngines APU1D on its serial console with an
>USB-RS232 cable (uplcom0 at uhub0 port 9 "Prolific Technology Inc.
>USB-Serial Controller D" rev 1.10/4.00 addr 2), and I have this strange
>issue, when I *leave* the "serial session", the APU1D machine drops to
>ddb.

Is your hardware sending a BREAK on the serial line?  If so, this is
expected behaviour.

--
Tati Chevron
Perl and FORTRAN specialist.
SWABSIT development and migration department.
http://www.swabsit.com

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Ted Unangst-6
In reply to this post by Lévai, Dániel
LÉVAI Dániel wrote:
> So I guess it didn't panic, but just dropped to ddb from console,
> because ddb.console was set to 1. Is there something sent via the serial
> console that induces this? If I set ddb.console to 0 this doesn't
> happen, but I'm curious as to what is happening and if I can avoid it.

a "break" was sent. or at least received. i've seen extra breaks sent when
trying to disconnect too. i mostly solved it by not disconnecting...

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Stuart Henderson
On 2015-12-27, Ted Unangst <[hidden email]> wrote:
> LÉVAI Dániel wrote:
>> So I guess it didn't panic, but just dropped to ddb from console,
>> because ddb.console was set to 1. Is there something sent via the serial
>> console that induces this? If I set ddb.console to 0 this doesn't
>> happen, but I'm curious as to what is happening and if I can avoid it.
>
> a "break" was sent. or at least received. i've seen extra breaks sent when
> trying to disconnect too. i mostly solved it by not disconnecting...

"break" is just a signal low for longer than the time taken to send a
normal character (plus framing), it's not that hard to have one detected
when it's not intended. First I'd try setting things up to use a
different port speed, especially if it's currently at a high speed
then try slowing it down. If that doesn't help then I'd try a
different usb/rs232 adapter.

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Tati Chevron
On Sun, Dec 27, 2015 at 07:04:10PM +0000, Stuart Henderson wrote:

>On 2015-12-27, Ted Unangst <[hidden email]> wrote:
>> LÉVAI Dániel wrote:
>>> So I guess it didn't panic, but just dropped to ddb from console,
>>> because ddb.console was set to 1. Is there something sent via the serial
>>> console that induces this? If I set ddb.console to 0 this doesn't
>>> happen, but I'm curious as to what is happening and if I can avoid it.
>>
>> a "break" was sent. or at least received. i've seen extra breaks sent when
>> trying to disconnect too. i mostly solved it by not disconnecting...
>
>"break" is just a signal low for longer than the time taken to send a
>normal character (plus framing), it's not that hard to have one detected
>when it's not intended. First I'd try setting things up to use a
>different port speed, especially if it's currently at a high speed
>then try slowing it down. If that doesn't help then I'd try a
>different usb/rs232 adapter.

Possibly a shorter or better quality cable may help as well, especially
if it's a long cable run.

--
Tati Chevron
Perl and FORTRAN specialist.
SWABSIT development and migration department.
http://www.swabsit.com

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Lévai, Dániel
Tati Chevron @ 2015-12-27T22:32:45 +0100:

> On Sun, Dec 27, 2015 at 07:04:10PM +0000, Stuart Henderson wrote:
> >On 2015-12-27, Ted Unangst <[hidden email]> wrote:
> >>LÉVAI Dániel wrote:
> >>>So I guess it didn't panic, but just dropped to ddb from console,
> >>>because ddb.console was set to 1. Is there something sent via the serial
> >>>console that induces this? If I set ddb.console to 0 this doesn't
> >>>happen, but I'm curious as to what is happening and if I can avoid it.
> >>
> >>a "break" was sent. or at least received. i've seen extra breaks sent when
> >>trying to disconnect too. i mostly solved it by not disconnecting...
> >
> >"break" is just a signal low for longer than the time taken to send a
> >normal character (plus framing), it's not that hard to have one detected
> >when it's not intended. First I'd try setting things up to use a
> >different port speed, especially if it's currently at a high speed
> >then try slowing it down. If that doesn't help then I'd try a
> >different usb/rs232 adapter.
>
> Possibly a shorter or better quality cable may help as well, especially
> if it's a long cable run.

Ah, I see, thanks! I never cease to learn stuff just by fiddling with this OS :)


Daniel

Reply | Threaded
Open this post in threaded view
|

Re: drops to ddb when disconnecting from serial line

Alexander Hall
In reply to this post by Tati Chevron
On Sun, Dec 27, 2015 at 09:32:45PM +0000, Tati Chevron wrote:

> On Sun, Dec 27, 2015 at 07:04:10PM +0000, Stuart Henderson wrote:
> >On 2015-12-27, Ted Unangst <[hidden email]> wrote:
> >>LÉVAI Dániel wrote:
> >>>So I guess it didn't panic, but just dropped to ddb from console,
> >>>because ddb.console was set to 1. Is there something sent via the serial
> >>>console that induces this? If I set ddb.console to 0 this doesn't
> >>>happen, but I'm curious as to what is happening and if I can avoid it.
> >>
> >>a "break" was sent. or at least received. i've seen extra breaks sent when
> >>trying to disconnect too. i mostly solved it by not disconnecting...
> >
> >"break" is just a signal low for longer than the time taken to send a
> >normal character (plus framing), it's not that hard to have one detected
> >when it's not intended. First I'd try setting things up to use a
> >different port speed, especially if it's currently at a high speed
> >then try slowing it down. If that doesn't help then I'd try a
> >different usb/rs232 adapter.
>
> Possibly a shorter or better quality cable may help as well, especially
> if it's a long cable run.

I've seen BREAK's when powering down the maching holding the
usb-to-serial dongle. Just unplugging the dongle first helped.

/Alexander