From: Michael Buesch <mb@bu3sch.de>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: Jeff Garzik <jeff@garzik.org>,
bcm43xx-dev@lists.berlios.de,
Larry Finger <Larry.Finger@lwfinger.net>,
netdev@vger.kernel.org
Subject: Re: Please pull 'upstream' branch of wireless-2.6
Date: Tue, 27 Jun 2006 21:47:04 +0200 [thread overview]
Message-ID: <200606272147.04477.mb@bu3sch.de> (raw)
In-Reply-To: <20060627193259.GE1207@tuxdriver.com>
On Tuesday 27 June 2006 21:33, John W. Linville wrote:
> On Tue, Jun 27, 2006 at 06:31:01PM +0200, Michael Buesch wrote:
> > On Tuesday 27 June 2006 18:12, Jeff Garzik wrote:
> > > Michael Buesch wrote:
> > > > So, I will submit a patch to lower the udelay(10) to udelay(1)
> > > > and we can close the discussion? ;)
> > >
> > > No, that totally avoids my point. Your "otherwise idle machine" test is
> > > probably nowhere near worst case in the field, for loops that can
> > > potentially lock the CPU for a long time upon hardware fault. And then
> > > there are the huge delays in specific functions that I pointed out...
> >
> > wtf are you requesting from me?
> > 1) I proved you that the loop does only spin _once_ or even _less_.
> > 2) If the hardware is faulty, the user must replace it.
> > Because, if the hardware is faulty, it can crash the whole
> > machine anyway, obviously.
> >
> > 3) There is no "huge delay". I proved it with my logs.
> > -> No CPU hog => Nothing to fix.
>
> Michael,
>
> I think Jeff's concern is that by using udelay you are busy-waiting.
> And, the for loop limit of 100000 means you could freeze the kernel
> for up to a whole second. Granted that this won't happen very often
s/very often/ever/
It won't happen, as long as the driver is not buggy, or the device
is hardware broken. So, if it happens, something has to be fixed.
In fact, it did happen _never_ for me.
If it triggers, the device does not work _at all_ anyway.
> and in the grand scheme of things a second isn't all _that_ long,
> but still it would be better to avoid a delay like that -- a second
> could be the time it takes to avoid a meltdown at the nuclear power
> plant. :-)
>
> Could you not use msleep instead of udelay (and scale the for loop
> appropriately)? What would be the problem with that? It would get
> rid of the busy waiting.
Becauses it horribly _increases_ the delay.
We "spin" for _at most_ 10 usecs here. Please always remember that.
We are talking about a 10 usec delay here. And I already sent a
patch to even reduce this to under 10 usec.
> To be fair, this code was already in the driver and was only being
> moved by this patch. Still, what better time to fix it than now? :-)
If it ain't broken, don't fix it.
> I'll go ahead and reshuffle wireless-2.6 to drop this patch. A new
> patch that passes muster w/ Jeff will be most welcome! :-)
A new patch won't appear, as there is no problem with this
delay.
Please don't drop anything and apply the following patch on top
of it:
--
Microoptimization:
This reduces the udelay in bcm43xx_mac_suspend.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-06-27 17:47:24.000000000 +0200
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-06-27 17:53:29.000000000 +0200
@@ -2328,7 +2328,7 @@
tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON);
if (tmp & BCM43xx_IRQ_READY)
goto out;
- udelay(10);
+ udelay(1);
}
printkl(KERN_ERR PFX "MAC suspend failed\n");
}
--
Greetings Michael.
next prev parent reply other threads:[~2006-06-27 19:47 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-26 21:25 Please pull 'upstream' branch of wireless-2.6 John W. Linville
2006-06-27 2:06 ` Jeff Garzik
2006-06-27 2:27 ` Larry Finger
2006-06-27 3:50 ` Jeff Garzik
2006-06-27 13:30 ` Michael Buesch
2006-06-27 14:11 ` Jeff Garzik
2006-06-27 14:34 ` Larry Finger
2006-06-27 14:36 ` Michael Buesch
2006-06-27 16:10 ` Jeff Garzik
2006-06-27 16:23 ` Michael Buesch
2006-06-27 15:25 ` Michael Buesch
2006-06-27 16:12 ` Jeff Garzik
2006-06-27 16:31 ` Michael Buesch
2006-06-27 19:33 ` John W. Linville
2006-06-27 19:47 ` Michael Buesch [this message]
2006-06-27 20:06 ` Larry Finger
2006-06-27 20:23 ` Michael Buesch
2006-06-27 20:37 ` Larry Finger
2006-06-28 14:34 ` Michael Buesch
2006-06-28 16:04 ` Larry Finger
2006-06-28 16:32 ` Michael Buesch
2006-06-28 17:32 ` Larry Finger
2006-06-28 18:02 ` Michael Buesch
2006-06-27 16:52 ` Joseph Jezak
2006-06-28 0:48 ` Please pull 'upstream' branch of wireless-2.6 (revised) John W. Linville
2006-06-28 17:36 ` Please pull 'zd1211rw' branch of wireless-2.6 (new driver) John W. Linville
2006-06-30 16:29 ` Jeff Garzik
2006-06-30 16:31 ` Please pull 'upstream' branch of wireless-2.6 (revised) Jeff Garzik
2006-06-30 19:27 ` John W. Linville
2006-07-01 15:00 ` John W. Linville
2006-07-05 18:25 ` Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2007-05-29 18:30 Please pull 'upstream-fixes' branch of wireless-2.6 John W. Linville
2007-05-29 18:31 ` Please pull 'upstream' " John W. Linville
2007-05-30 14:03 ` Jeff Garzik
2007-05-08 17:39 John W. Linville
2007-05-09 22:54 ` Jeff Garzik
2007-05-07 17:51 John W. Linville
[not found] ` <20070507175121.GF5125-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2007-05-07 21:15 ` Dan Williams
[not found] ` <1178572550.11805.7.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-05-07 22:51 ` John W. Linville
2007-05-08 8:49 ` Johannes Berg
2007-05-07 23:09 ` Jeff Garzik
[not found] ` <463FB1A0.3070608-o2qLIJkoznsdnm+yROfE0A@public.gmane.org>
2007-05-07 23:30 ` Michael Wu
2007-05-07 23:38 ` John W. Linville
2007-05-08 17:38 ` John W. Linville
2007-02-02 21:27 Please pull "upstream-fixes" " John W. Linville
2007-02-02 21:28 ` Please pull "upstream" " John W. Linville
2007-02-07 0:06 ` Please pull "upstream-fixes" " Jeff Garzik
[not found] ` <45C917EF.1060307-o2qLIJkoznsdnm+yROfE0A@public.gmane.org>
2007-02-07 21:11 ` Please pull "upstream" " John W. Linville
[not found] ` <20070207211117.GC6109-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2007-02-09 20:13 ` John W. Linville
[not found] ` <20070209201306.GA2580-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2007-02-09 21:12 ` Jeff Garzik
2007-01-18 15:48 Please pull 'upstream-fixes' " John W. Linville
2007-01-18 15:49 ` Please pull 'upstream' " John W. Linville
2007-01-19 3:10 ` Jeff Garzik
2007-01-19 8:42 ` John W. Linville
2007-01-23 5:36 ` Jeff Garzik
2007-01-03 2:41 Please pull 'upstream-fixes' " John W. Linville
2007-01-03 2:42 ` Please pull 'upstream' " John W. Linville
2007-01-18 12:16 ` John W. Linville
2006-12-21 3:03 Please pull 'upstream-fixes' " John W. Linville
2006-12-21 3:05 ` Please pull 'upstream' " John W. Linville
2006-12-26 21:39 ` Jeff Garzik
2006-12-28 0:10 ` John W. Linville
2007-01-03 2:04 ` John W. Linville
2006-12-12 0:21 John W. Linville
2006-12-06 1:42 John W. Linville
2006-12-07 10:03 ` Jeff Garzik
2006-11-15 1:29 Please pull 'upstream-fixes' " John W. Linville
2006-11-15 1:31 ` Please pull 'upstream' " John W. Linville
2006-11-28 19:13 ` John W. Linville
2006-11-08 4:58 Please pull 'upstream-fixes' " John W. Linville
2006-11-08 4:59 ` Please pull 'upstream' " John W. Linville
2006-11-08 19:48 ` John W. Linville
2006-11-14 15:29 ` Jeff Garzik
2006-10-17 21:34 Please pull 'upstream-fixes' " John W. Linville
2006-10-17 21:35 ` Please pull 'upstream' " John W. Linville
2006-10-21 18:22 ` Jeff Garzik
2006-09-11 23:58 Please pull 'upstream-fixes' " John W. Linville
2006-09-11 23:59 ` Please pull 'upstream' " John W. Linville
2006-09-12 15:43 ` Jeff Garzik
2006-09-12 19:49 ` Michael Buesch
2006-08-30 15:05 John W. Linville
2006-09-06 15:02 ` Jeff Garzik
2006-08-14 20:50 John W. Linville
2006-07-28 0:22 Please pull 'upstream-fixes' " John W. Linville
2006-07-28 0:23 ` Please pull 'upstream' " John W. Linville
2006-07-29 4:33 ` Jeff Garzik
2006-07-10 21:29 Please pull 'upstream-fixes' " John W. Linville
2006-07-10 21:31 ` Please pull 'upstream' " John W. Linville
2006-07-10 21:38 ` Michael Buesch
2006-07-10 21:58 ` Larry Finger
2006-07-19 17:51 ` Jeff Garzik
2006-06-15 20:03 John W. Linville
2006-06-20 8:46 ` Jeff Garzik
2006-06-05 21:53 Please pull 'upstream-fixes' " John W. Linville
2006-06-05 21:55 ` Please pull 'upstream' " John W. Linville
2006-06-08 19:48 ` Jeff Garzik
2006-05-22 19:18 Please pull 'upstream-fixes' " John W. Linville
2006-05-22 19:19 ` Please pull 'upstream' " John W. Linville
2006-05-24 4:35 ` Jeff Garzik
2006-05-24 12:42 ` John W. Linville
2006-05-17 19:34 Please pull 'upstream-fixes' " John W. Linville
2006-05-17 19:38 ` Please pull 'upstream' " John W. Linville
2006-05-17 21:23 ` Daniel Drake
2006-05-18 17:28 ` John W. Linville
2006-05-18 18:26 ` Daniel Drake
2006-05-06 1:06 Please pull upstream-fixes " John W. Linville
2006-05-06 1:09 ` Please pull upstream " John W. Linville
2006-04-24 19:40 Please pull 'upstream-fixes' " John W. Linville
2006-04-24 20:40 ` Please pull 'upstream' " John W. Linville
2006-04-25 0:33 ` Dan Williams
2006-04-25 11:30 ` Johannes Berg
2006-04-25 12:03 ` Dan Williams
2006-04-26 10:18 ` Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200606272147.04477.mb@bu3sch.de \
--to=mb@bu3sch.de \
--cc=Larry.Finger@lwfinger.net \
--cc=bcm43xx-dev@lists.berlios.de \
--cc=jeff@garzik.org \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).