From owner-freebsd-usb@FreeBSD.ORG Mon Apr 30 12:35:04 2007 Return-Path: X-Original-To: freebsd-usb@FreeBSD.org Delivered-To: freebsd-usb@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 45E6C16A406; Mon, 30 Apr 2007 12:35:04 +0000 (UTC) (envelope-from valera@chikalov.dp.ua) Received: from halik.com.ua (halik.com.ua [193.178.146.121]) by mx1.freebsd.org (Postfix) with ESMTP id C00EE13C483; Mon, 30 Apr 2007 12:35:03 +0000 (UTC) (envelope-from valera@chikalov.dp.ua) Received: from [127.0.0.1] (unknown [213.227.219.58]) by halik.com.ua (Postfix) with ESMTP id 1A31C5C06D; Mon, 30 Apr 2007 15:35:01 +0300 (EEST) Message-ID: <4635E26F.9090801@chikalov.dp.ua> Date: Mon, 30 Apr 2007 15:34:55 +0300 From: "Valery V.Chikalov" User-Agent: Thunderbird 2.0.0.0 (Windows/20070326) MIME-Version: 1.0 To: Kevin Lo References: <200704272330.l3RNU94X078095@freefall.freebsd.org> <1177767702.5804.7.camel@monet> <46349750.7060206@chikalov.dp.ua> <200704291550.10968.hselasky@c2i.net> <4634AA65.5060101@chikalov.dp.ua> <1177917188.11361.34.camel@monet> In-Reply-To: <1177917188.11361.34.camel@monet> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: 8bit X-Antivirus: avast! (VPS 000737-1, 30.04.2007), Outbound message X-Antivirus-Status: Clean Cc: Hans Petter Selasky , freebsd-usb@FreeBSD.org Subject: Re: usb/107642: [patch]Ralink Technology RT2501USB/RT2601USB chipset driver X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Apr 2007 12:35:04 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Kevin Lo пишет: > Valery V.Chikalov wrote: >> Hans Petter Selasky wrote: >>> On Sunday 29 April 2007 15:02, Valery V.Chikalov wrote: >>>> Kevin Lo wrote: >>>>> Valery V.Chikalov wrote: >>>>>> The following reply was made to PR usb/107642; it has been noted by >>>>>> GNATS. >>>>>> >>>>>> From: "Valery V.Chikalov" >>>>>> To: bug-followup@FreeBSD.org, valera@chikalov.dp.ua >>>>>> Cc: >>>>>> Subject: Re: usb/107642: [patch]Ralink Technology RT2501USB/RT2601USB >>>>>> chipset driver >>>>>> Date: Sun, 22 Apr 2007 11:32:18 +0300 >>>>>> >>>>>> This is a multi-part message in MIME format. >>>>>> --------------030900090303000507070905 >>>>>> Content-Type: text/plain; charset=UTF-8 >>>>>> Content-Transfer-Encoding: 7bit >>>>>> > if_rum(4) for 7.0-CURRENT > > replaced amrr_* functions by "standard" ones already existed in > net80211/ieee80211_amrr.c > >>>>> Hi Valery, >>>>> >>>>> I guess you wasn't aware that I've already ported rum(4) to FreeBSD. >>>>> The patch is available at: http://people.freebsd.org/~kevlo/patch-rum >>>>> Maybe you can test my patch? Thanks. >>>>> >>>>> Kevin >>>> Hi, Kevin, >>>> >>>> Your driver not working for me. Fortunately, the errors that I see >>>> exactly the same which i fight when I made my driver. >>>> >>>> $ uname -a >>>> FreeBSD tiger.novakom.dp.ua 7.0-CURRENT FreeBSD 7.0-CURRENT #6: Sun Apr >>>> 29 13:58:48 EEST 2007 >>>> root@tiger.novakom.dp.ua:/usr/obj/usr/src/sys/TIGER64 amd64 >>>> >>>> $ sysctl kern.osreldate >>>> kern.osreldate: 700037 >>>> >>>> cvsup'ed 29.04.2007 >>>> >>>> kernel with: >>>> >>>> makeoptions DEBUG=-g >>>> >>>> options KDB >>>> >>>> options DDB >>>> >>>> >>>> >>>> options INVARIANTS >>>> >>>> options INVARIANT_SUPPORT >>>> >>>> options WITNESS >>>> >>>> At first, when I make kldload if_rum, I get kernel panic. >>>> But I cant get saved core, as ddb just hangs during "call doadump" >>>> >>> I have a solution for all of this locking stuff! >>> >>>> So I add >>>> >>>> #define RUM_LOCK(sc) do { ((sc) = (sc)); mtx_lock(&Giant); } while >>>> (0) >>>> #define RUM_UNLOCK(sc) mtx_unlock(&Giant) >>>> >>>> in if_rumvar.h >>>> >>>> I spend a lot of time in attempts get rid of Giant ant always got only >>>> panics. >>> You _cannot_ do that with the old USB stack, because you must lock Giant >>> before calling into the usbxxx functions. Then in the USB callback, Giant is >>> locked, and then you cannot lock RUM_LOCK()! That means you will most likely >>> end up with a deadlock pretty soon, if you see that. >>> >> Thanks, for explanations. I suspected that thing are like that, and I >> have tried make porting by analogue with other drivers which I can find >> in dev/usb, but I was not can find the description of doing "right way" >> locking before. > Firstly, thanks for taking the time to test my patch. > I think your issue is related to watchdog timers. The revised patch is > at http://people.freebsd.org/~kevlo/patch-rum > Besides, I don't get a panic during high load when getting a file about > 400MB via ftp. Sorry, but the error that I see the same, just after inserting dongle, or if it was inserted before - after kldload if_rum: panic: sleeping without a lock the top of stack: at usbd_transfer +0x1fe .... rum_ioctl And I cant get saved kernel coredump at the end. I have not serial console configured so it was just subscribed by hand. Of course I can reproduce it again and subscribe what you will ask. I have SMP kernel and use AMD64 architecture, maybe this are the reasons why we are getting different results. Can you please, explain me in two words(or give a reference) why you are dropping mtx_lock(&Giant). Yes I have seen the same in if_ural.c and as i have wrote before unsuccessfully have tried repeat it in if_rum. I know that current USB stack is not Giant free, and Hans noted that this is impossible (if I understand him right). Maybe exists some tunable or kernel option or another trick that allows drivers working without the Giant under current USB stack, which I must use. Thank you for your time and patience. Sorry for my english. Valery. >>>> After that I get hangs, >>>> which i resolved by modifying rum_ioctl: >>> I'm almost finished converting "if_rum.c()" to the new USB stack. >>> >>> In some hours I will update it with support for "if_rum". >>> >>> If you can test that and forget about the old USB stack, I will be very >>> happy :-) >>> >> I will do it with pleasure. I was almost ready to do it (converting to >> new USB stack) by myself, but I was stopped by the fact that I cant make >> it compiled under CURRENT. I have seen your mail that your are working >> on this. Is new the USB stack ready for CURRENT now? >> >> Valery. >> >>> --HPS >>> >>> http://www.turbocat.net/~hselasky/usb4bsd > Kevin -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGNeJv760S3kDvEC4RAgrVAJ4m/iXooa1Yt2txMVz0LOwmC+vqAwCgicKb xPMZsEyzAodOccQSjq6KL0A= =JVix -----END PGP SIGNATURE-----