Date: Thu, 13 Jan 2011 22:24:54 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Cc: freebsd@sopwith.solgatos.com, freebsd-firewire@freebsd.org, freebsd-questions@freebsd.org, dieterbsd@engineer.com Subject: Re: lock contention problem? Message-ID: <201101132224.54858.hselasky@c2i.net> In-Reply-To: <8CD81778A4C13E7-17B0-DFA1@web-mmc-d03.sysops.aol.com> References: <8CD81778A4C13E7-17B0-DFA1@web-mmc-d03.sysops.aol.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 13 January 2011 21:28:15 dieterbsd@engineer.com wrote: > I suspect that I have a problem with lock/mutex contention. > Reading from a USB disk appears to lock out the firewire driver > for too long, causing data transfer (writing to firewire bus) to fail > with EAGAIN. Once it fails it does not recover. > > kernel: fwohci1: IT DMA underrun (0x40308011) (stat & > OHCI_CNTL_CYCMATCH_S) > last message repeated 63 times > This is from the end of the fwohci_itxbuf_enable() function in > dev/firewire/fwohci.c > > I added LOCK_PROFILING to the kernel and gathered some data. > The data is quite verbose, so I sorted by "max" and am including > the first 40 lines. This is a true real-time task, so I am concerned > with the worst case rather than the average. > Hi, It might be a hardware resource starvation problem. It is possible to nice umass by simply adding a line like: .interval = 2, /* 2 milliseconds */ Inside the following structure in /sys/dev/usb/storage/umass.c : umass_bbb_config[] In states: UMASS_T_BBB_DATA_WRITE UMASS_T_BBB_DATA_READ Another idea: http://svn.freebsd.org/changeset/base/217350 --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101132224.54858.hselasky>