Re: USB4BSD release candidate number 3 - request for review

From: Jeremy Chadwick <koitsu_at_FreeBSD.org>
Date: Fri, 7 Nov 2008 14:02:42 -0800
On Fri, Nov 07, 2008 at 07:46:00PM +0000, Thomas Sparrevohn wrote:
> On Thursday 06 November 2008 23:36:14 Hans Petter Selasky wrote:
> > On Thursday 06 November 2008, Alexey Shuvaev wrote:
> > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> > > _witness_debugger() at _witness_debugger+0x49
> > > witness_checkorder() at witness_checkorder+0x7e6
> > > _sx_xlock() at _sx_xlock+0x44
> > > vm_map_lookup() at vm_map_lookup+0x47
> > > vm_fault() at vm_fault+0xfe
> > > trap_pfault() at trap_pfault+0x1fa
> > > trap() at trap+0x201
> > > calltrap() at calltrap+0x8
> > > --- trap 0xc, rip = 0xffffffff804b2466, rsp = 0xfffffffeba7f8ac0, rbp =
> > > 0xfffffffeba7f8b00 --- bcopy() at bcopy+0x16
> > > usb2_bdma_pre_sync() at usb2_bdma_pre_sync+0x35
> > > usb2_bdma_work_loop() at usb2_bdma_work_loop+0x29b
> > > usb2_command_wrapper() at usb2_command_wrapper+0x76
> > > usb2_callback_wrapper() at usb2_callback_wrapper+0xfd
> > > usb2_command_wrapper() at usb2_command_wrapper+0x76
> > > usb2_callback_proc() at usb2_callback_proc+0x68
> > > usb2_process() at usb2_process+0xc0
> > 
> > Hi Alexey,
> > 
> > This looks more like a busdma problem to me. "bcopy()" is called from 
> > within "bus_dmamap_sync()". Maybe you can figure out if it is the source or 
> > the destination address that fails?
> > 
> > Looks like your system has started bouncing data to the 32-bit address range.
> > 
> 
> I can reproduce an error like it whenever I use DMA on umass device - The error 
> somehow are triggered/created by the multiport patches that was introduced
> in the ATA framework back in April - For a long time I believed it was an error 
> in the ATA frame work until I discovered that If I disabled the umass device
> the error disappered 
> 
> I am using ZFS on both devices. If I change to usb2_ata the problem disappers.
> I think that is because usb2_ata does not use DMA.
> 
> I believe the problem is related to the DMA handling in the umass 
> 
> see attached fault - In short the problem has been around for a long time
> but it seems to be related to the USB stack DMA handling - before usb2
> it showed up as a DMA error in the ATA driver - but that was because
> the old umass driver somehow "stole" an active DMA 
>
> {gigantic snip}

Check out this thread, which includes patches:

http://lists.freebsd.org/pipermail/freebsd-current/2008-November/thread.html#220
http://lists.freebsd.org/pipermail/freebsd-current/2008-November/000220.html

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |
Received on Fri Nov 07 2008 - 21:02:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:37 UTC