tws(4) kernel panic on boot

2013-05-20 Thread Andreas Turriff
On migrating one of my servers to -current, I discovered that the tws 
driver panics on boot; I will follow up with a full backtrace once I 
have a chance to extract it. In the meantime, there is a PR about a very 
similar error in twa - 177020. Is it possible those are related, and the 
same sort of change needs to be made to tws?


~Andreas Turriff
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: tws(4) kernel panic on boot

2013-05-21 Thread Andreas Turriff

On 5/21/2013 5:33 AM, Konstantin Belousov wrote:

On Mon, May 20, 2013 at 07:09:41PM -0700, Andreas Turriff wrote:

On migrating one of my servers to -current, I discovered that the tws
driver panics on boot; I will follow up with a full backtrace once I
have a chance to extract it. In the meantime, there is a PR about a very
similar error in twa - 177020. Is it possible those are related, and the
same sort of change needs to be made to tws?

It is possible that the regression was in r246713, but the code is
structured differently, and there were more tws(4) changes since then.
You need to provide data for somebody to start looking into the problem.
I know. That's why I said, I'd follow up with more info once I can 
extract it.


The system in question is a Dell PowerEdge 840 server, 8 GiByte RAM, 
with an Intel NIC driven by em(4) and a 3Ware 9750-4i RAID controller. 
There is no src.conf


/etc/make.conf:
CPUTYPE?=core2

Error message:

LSI 3ware device driver for SAS/SATA storage controllers, version: 
10.80.00.005
tws0:  port 0xec00-0xecff mem 
0xfe9fc000-0xfe9f,0xfe98-0xfe9b irq 16 at device 0.0 o1

tws0: Using MSIng APIC ID to 4
panic: _bus_dmamap_load_ccb: Unsupported func code 0
cpuid = 0Version 2.0> irqs 0-23 on motherboard
KDB: enter: panic2.0> irqs 32-55 on motherboard
[ thread pid 0 tid 10 ]
Stopped at  kdb_enter+0x3e: movq$0,kdb_why

Backtrace

Tracing pid 0 tid 10 td 0x81376610
kdb_enter() at kdb_enter+0x3e/frame 0x8191a340
panic() at panic+0x175/frame 0x8191a3c0
_bus_dmamap_load_ccb() at _bus_dmamap_load_ccb+0x1c3/frame 
0x8191a420

bus_dmamap_load_ccb() at bus_dmamap_load_ccb+0x91/frame 0x8191a480
tws_map_request() at tws_map_request+0x71/frame 0x8191a4c0
tws_get_param() at tws_get_param+0xdd/frame 0x8191a520
tws_display_ctlr_info() at tws_display_ctlr_info+0x38/frame 
0x8191a590

tws_init_ctlr() at tws_init_ctlr+0x6b/frame 0x8191a5b0
tws_attach() at tws_attach+0xd79/frame 0x8191a670
device_attach() at device_attach+0x396/frame 0x8191a6c0
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a6e0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a730
device_attach() at device_attach+0x396/frame 0x8191a780
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a7a0
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a7f0
acpi_pcib_pci_attach() at acpi_pcib_pci_attach+0x9f/frame 0x8191a830
device_attach() at device_attach+0x396/frame 0x8191a880
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a8a0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a8f0
device_attach() at device_attach+0x396/frame 0x8191a940
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a960
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a9b0
acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x299/frame 
0x8191aa00

device_attach() at device_attach+0x396/frame 0x8191aa50
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aa70
acpi_attach() at acpi_attach+0xdd6/frame 0x8191ab30
device_attach() at device_attach+0x396/frame 0x8191ab80
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aba0
nexus_acpi_attach() at nexus_acpi_attach+0x76/frame 0x8191abd0
device_attach() at device_attach+0x396/frame 0x8191ac20
bus_generic_new_pass() at bus_generic_new_pass+0xe9/frame 0x8191ac50
bus_set_pass() at bus_set_pass+0x8f/frame 0x8191ac80
configure() at configure+0xa/frame 0x8191ac90
mi_startup() at mi_startup+0x118/frame 0x8191acb0
btext() at btext+0x2c



___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: tws(4) kernel panic on boot

2013-05-22 Thread Andreas Turriff

On 5/21/2013 9:25 AM, Andreas Turriff wrote:

On 5/21/2013 5:33 AM, Konstantin Belousov wrote:

On Mon, May 20, 2013 at 07:09:41PM -0700, Andreas Turriff wrote:

On migrating one of my servers to -current, I discovered that the tws
driver panics on boot; I will follow up with a full backtrace once I
have a chance to extract it. In the meantime, there is a PR about a 
very
similar error in twa - 177020. Is it possible those are related, and 
the

same sort of change needs to be made to tws?

It is possible that the regression was in r246713, but the code is
structured differently, and there were more tws(4) changes since then.
You need to provide data for somebody to start looking into the problem.
I know. That's why I said, I'd follow up with more info once I can 
extract it.


The system in question is a Dell PowerEdge 840 server, 8 GiByte RAM, 
with an Intel NIC driven by em(4) and a 3Ware 9750-4i RAID controller. 
There is no src.conf


/etc/make.conf:
CPUTYPE?=core2

Error message:

LSI 3ware device driver for SAS/SATA storage controllers, version: 
10.80.00.005
tws0:  port 0xec00-0xecff mem 
0xfe9fc000-0xfe9f,0xfe98-0xfe9b irq 16 at device 0.0 o1

tws0: Using MSIng APIC ID to 4
panic: _bus_dmamap_load_ccb: Unsupported func code 0
cpuid = 0Version 2.0> irqs 0-23 on motherboard
KDB: enter: panic2.0> irqs 32-55 on motherboard
[ thread pid 0 tid 10 ]
Stopped at  kdb_enter+0x3e: movq$0,kdb_why

Backtrace

Tracing pid 0 tid 10 td 0x81376610
kdb_enter() at kdb_enter+0x3e/frame 0x8191a340
panic() at panic+0x175/frame 0x8191a3c0
_bus_dmamap_load_ccb() at _bus_dmamap_load_ccb+0x1c3/frame 
0x8191a420
bus_dmamap_load_ccb() at bus_dmamap_load_ccb+0x91/frame 
0x8191a480

tws_map_request() at tws_map_request+0x71/frame 0x8191a4c0
tws_get_param() at tws_get_param+0xdd/frame 0x8191a520
tws_display_ctlr_info() at tws_display_ctlr_info+0x38/frame 
0x8191a590

tws_init_ctlr() at tws_init_ctlr+0x6b/frame 0x8191a5b0
tws_attach() at tws_attach+0xd79/frame 0x8191a670
device_attach() at device_attach+0x396/frame 0x8191a6c0
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a6e0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a730
device_attach() at device_attach+0x396/frame 0x8191a780
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a7a0
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a7f0
acpi_pcib_pci_attach() at acpi_pcib_pci_attach+0x9f/frame 
0x8191a830

device_attach() at device_attach+0x396/frame 0x8191a880
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a8a0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a8f0
device_attach() at device_attach+0x396/frame 0x8191a940
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a960
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a9b0
acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x299/frame 
0x8191aa00

device_attach() at device_attach+0x396/frame 0x8191aa50
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aa70
acpi_attach() at acpi_attach+0xdd6/frame 0x8191ab30
device_attach() at device_attach+0x396/frame 0x8191ab80
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aba0
nexus_acpi_attach() at nexus_acpi_attach+0x76/frame 0x8191abd0
device_attach() at device_attach+0x396/frame 0x8191ac20
bus_generic_new_pass() at bus_generic_new_pass+0xe9/frame 
0x8191ac50

bus_set_pass() at bus_set_pass+0x8f/frame 0x8191ac80
configure() at configure+0xa/frame 0x8191ac90
mi_startup() at mi_startup+0x118/frame 0x8191acb0
btext() at btext+0x2c



___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to 
"freebsd-current-unsubscr...@freebsd.org"
And after taking a very close look at the source code for tws, I spotted 
the problem. Patch included.


~Andreas

Index: sys/dev/tws/tws.h
===
--- sys/dev/tws/tws.h   (revision 250856)
+++ sys/dev/tws/tws.h   (working copy)
@@ -137,7 +137,7 @@
 TWS_DIR_IN = 0x2,
 TWS_DIR_OUT = 0x4,
 TWS_DIR_NONE = 0x8,
-TWS_DATA_CCB = 0x16,
+TWS_DATA_CCB = 0x10,
 };

 enum tws_intrs {

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: tws(4) kernel panic on boot

2013-05-22 Thread Andreas Turriff

On 5/22/2013 11:23 PM, Konstantin Belousov wrote:

On Wed, May 22, 2013 at 11:08:50AM -0700, Andreas Turriff wrote:

On 5/21/2013 9:25 AM, Andreas Turriff wrote:

On 5/21/2013 5:33 AM, Konstantin Belousov wrote:

On Mon, May 20, 2013 at 07:09:41PM -0700, Andreas Turriff wrote:

On migrating one of my servers to -current, I discovered that the tws
driver panics on boot; I will follow up with a full backtrace once I
have a chance to extract it. In the meantime, there is a PR about a
very
similar error in twa - 177020. Is it possible those are related, and
the
same sort of change needs to be made to tws?

It is possible that the regression was in r246713, but the code is
structured differently, and there were more tws(4) changes since then.
You need to provide data for somebody to start looking into the problem.

I know. That's why I said, I'd follow up with more info once I can
extract it.

The system in question is a Dell PowerEdge 840 server, 8 GiByte RAM,
with an Intel NIC driven by em(4) and a 3Ware 9750-4i RAID controller.
There is no src.conf

/etc/make.conf:
CPUTYPE?=core2

Error message:

LSI 3ware device driver for SAS/SATA storage controllers, version:
10.80.00.005
tws0:  port 0xec00-0xecff mem
0xfe9fc000-0xfe9f,0xfe98-0xfe9b irq 16 at device 0.0 o1
tws0: Using MSIng APIC ID to 4
panic: _bus_dmamap_load_ccb: Unsupported func code 0
cpuid = 0Version 2.0> irqs 0-23 on motherboard
KDB: enter: panic2.0> irqs 32-55 on motherboard
[ thread pid 0 tid 10 ]
Stopped at  kdb_enter+0x3e: movq$0,kdb_why

Backtrace

Tracing pid 0 tid 10 td 0x81376610
kdb_enter() at kdb_enter+0x3e/frame 0x8191a340
panic() at panic+0x175/frame 0x8191a3c0
_bus_dmamap_load_ccb() at _bus_dmamap_load_ccb+0x1c3/frame
0x8191a420
bus_dmamap_load_ccb() at bus_dmamap_load_ccb+0x91/frame
0x8191a480
tws_map_request() at tws_map_request+0x71/frame 0x8191a4c0
tws_get_param() at tws_get_param+0xdd/frame 0x8191a520
tws_display_ctlr_info() at tws_display_ctlr_info+0x38/frame
0x8191a590
tws_init_ctlr() at tws_init_ctlr+0x6b/frame 0x8191a5b0
tws_attach() at tws_attach+0xd79/frame 0x8191a670
device_attach() at device_attach+0x396/frame 0x8191a6c0
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a6e0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a730
device_attach() at device_attach+0x396/frame 0x8191a780
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a7a0
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a7f0
acpi_pcib_pci_attach() at acpi_pcib_pci_attach+0x9f/frame
0x8191a830
device_attach() at device_attach+0x396/frame 0x8191a880
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a8a0
acpi_pci_attach() at acpi_pci_attach+0x15f/frame 0x8191a8f0
device_attach() at device_attach+0x396/frame 0x8191a940
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191a960
acpi_pcib_attach() at acpi_pcib_attach+0x24d/frame 0x8191a9b0
acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x299/frame
0x8191aa00
device_attach() at device_attach+0x396/frame 0x8191aa50
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aa70
acpi_attach() at acpi_attach+0xdd6/frame 0x8191ab30
device_attach() at device_attach+0x396/frame 0x8191ab80
bus_generic_attach() at bus_generic_attach+0x2d/frame 0x8191aba0
nexus_acpi_attach() at nexus_acpi_attach+0x76/frame 0x8191abd0
device_attach() at device_attach+0x396/frame 0x8191ac20
bus_generic_new_pass() at bus_generic_new_pass+0xe9/frame
0x8191ac50
bus_set_pass() at bus_set_pass+0x8f/frame 0x8191ac80
configure() at configure+0xa/frame 0x8191ac90
mi_startup() at mi_startup+0x118/frame 0x8191acb0
btext() at btext+0x2c



___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to
"freebsd-current-unsubscr...@freebsd.org"

And after taking a very close look at the source code for tws, I spotted
the problem. Patch included.

~Andreas

Index: sys/dev/tws/tws.h
===
--- sys/dev/tws/tws.h   (revision 250856)
+++ sys/dev/tws/tws.h   (working copy)
@@ -137,7 +137,7 @@
   TWS_DIR_IN = 0x2,
   TWS_DIR_OUT = 0x4,
   TWS_DIR_NONE = 0x8,
-TWS_DATA_CCB = 0x16,
+TWS_DATA_CCB = 0x10,
   };

   enum tws_intrs {


Do you mean that this change alone fixes your panic and the controller
works after the boot ?

I started looking at the code, and thought that there some issues
with DATA_CCB flag set too eagerly.
I've been running that kernel all day, rebuilding userland (ports) on a 
4-drive ZFS RAID-Z on that controller, and not seen a single crash, 
slowdown,