All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.