linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Albert Cahalan <albert@users.sf.net>
To: Andrew Morton <akpm@osdl.org>
Cc: Albert Cahalan <albert@users.sourceforge.net>,
	linux-yoann@ifrance.com,
	linux-kernel mailing list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@digeo.com>,
	vortex@scyld.com, jgarzik@pobox.com
Subject: Re: another must-fix: major PS/2 mouse problem
Date: 24 Jul 2003 21:46:41 -0400	[thread overview]
Message-ID: <1059097601.1220.75.camel@cube> (raw)
In-Reply-To: <20030724103047.31e91a96.akpm@osdl.org>

On Thu, 2003-07-24 at 13:30, Andrew Morton wrote:
> Albert Cahalan <albert@users.sourceforge.net> wrote:

> > Using the lockmeter on a 2.5.75 kernel, I discovered
> > that boomerang_interrupt() grabs a spinlock for over
> > 1/4 second. No joke, 253 ms. Interrupts are off AFAIK.
> 
> boomerang_interrupt() doesn't disable interrupts.  Is the NIC sharing the
> mouse's IRQ line?

No.

           CPU0       
  0:     746770          XT-PIC  timer
  1:        936          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  4:          9          XT-PIC  serial
  5:          0          XT-PIC  uhci-hcd, uhci-hcd
 11:       2417          XT-PIC  eth0
 12:         60          XT-PIC  i8042
 14:      13844          XT-PIC  ide0
 15:          2          XT-PIC  ide1
NMI:          0 
LOC:     751552 
ERR:          0
MIS:          0


> boomerang_interrupt() is only used by nasty old NICs and yes, I guess it is
> possible that something has gone wrong and is causing occasional long spins
> in there.
> 
> But I am more suspecting that you're not really using boomerang_interrupt()
> at all, and that something has gone wrong with lockmeter.  What sort of NIC
> are you using?

I hope you don't consider a 100 Mb/s PCI device to be
a nasty old NIC. It's not an NE2000 you know! I have this:

00:0d.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 74)
        Subsystem: 3Com Corporation 3C905C-TX Fast Etherlink for PC Management NIC
        Flags: bus master, medium devsel, latency 32, IRQ 11
        I/O ports at ec00 [size=128]
        Memory at df001000 (32-bit, non-prefetchable) [size=128]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2

Without heavy net usage, boomerang_interrupt can take
as long as 1950 microseconds. That would be from mounting
an NFS filesystem and receiving broadcast packets.
I didn't have an opportunity to hit NFS hard today.

That's from rdtsc on a 1002-MHz Pentium III.

> Bear in mind that if some other device generates an interrupt while the CPU
> is running boomerang_interrupt(), lockmeter will count the time spent in
> that other device's interrupt as "time spent in boomerand_interrupt()". 
> Which is very true, but it is not much help when one is trying to identify
> the source of the problem.

Do the Intel IRQ controller priority rules play a role here?

> Perhaps what you should do is to do an rdtsc on entry and exit of do_IRQ()
> and print stuff out when "long" periods of time in do_IRQ() are noticed.

I added code to the top and bottom of do_IRQ, as well as to
the top and bottom of boomerang_interrupt. The lockmeter was
compiled into the kernel but never enabled. I record the
minimum and maximum time in microseconds.

-------------------------------
IRQ    num use      min     max
--- ------ -------- --- -------   
  0 746770 timer     40  103595
  1    936 i8042     13  389773
  2      0 cascade    -       -
  3      - -          -       -
  4      9 serial    28      56
  5      0 uhci-hcd   -       -
  6      - -        711     711
  7      - -         25      25
  8      - -          -       -
  9      - -          -       -
 10      - -          -       -
 11   2417 eth0      87 1535331
 12     60 i8042     18  102895
 13      - -          -       -
 14  13844 ide0       8   51944
 15      2 ide1       7      11 
NMI      0
LOC 751552
ERR      0
MIS      0
-------------------------------




  reply	other threads:[~2003-07-25  1:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-01  1:46 another must-fix: major PS/2 mouse problem Albert Cahalan
2003-06-04  5:47 ` Yoann
     [not found]   ` <20030603232155.1488c02f.akpm@digeo.com>
2003-06-04  7:47     ` Vojtech Pavlik
2003-06-04  7:53       ` Andrew Morton
2003-06-04  8:00         ` Vojtech Pavlik
2003-06-04  8:14           ` Andrew Morton
2003-06-04  8:40             ` Vojtech Pavlik
2003-06-04 19:20               ` Yoann
2003-06-04 23:09             ` Albert Cahalan
     [not found] ` <3EDCF47A.1060605@ifrance.com>
     [not found]   ` <1054681254.22103.3750.camel@cube>
     [not found]     ` <3EDD8850.9060808@ifrance.com>
2003-07-23  0:44       ` Albert Cahalan
2003-07-24 17:30         ` Andrew Morton
2003-07-25  1:46           ` Albert Cahalan [this message]
2003-07-26  3:19             ` Andrew Morton
2003-07-26 15:16               ` Zwane Mwaikambo
2003-07-29  2:55                 ` Albert Cahalan
2003-07-29  3:14                   ` Andrew Morton
2003-07-29 12:40                     ` Albert Cahalan
2003-07-29 18:58                       ` Andrew Morton
2003-07-29 19:36                         ` Zwane Mwaikambo
2003-07-29 19:43                         ` Chris Friesen
2003-07-30  5:08                     ` Pavel Machek
2003-07-30  6:32                       ` Andrew Morton
2003-07-30 12:29                       ` Albert Cahalan
2003-07-30 19:18 Mikael Pettersson

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=1059097601.1220.75.camel@cube \
    --to=albert@users.sf.net \
    --cc=akpm@digeo.com \
    --cc=akpm@osdl.org \
    --cc=albert@users.sourceforge.net \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-yoann@ifrance.com \
    --cc=vortex@scyld.com \
    /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).