Thread (28 messages) 28 messages, 5 authors, 2007-07-26

Re: Pin-pointing the root of unusual application latencies

From: John Sigler <hidden>
Date: 2007-07-25 14:05:53
Also in: lkml

Ingo Molnar wrote:
John Sigler wrote:
quoted
Ingo Molnar wrote:
quoted
does your test-app have higher priority than softirq--4 ?
PID 4 is [softirq-timer/0] and has priority 50 in SCHED_FIFO. My 
process has priority 80 in SCHED_RR. It is waiting for IRQ10.

My user-space app has higher priority than everything except PID 2 
which is [posix_cpu_timer]
well what priority does the IRQ 10 kernel thread have? It should be prio 
80 too if it's in your critical path.
Is there some form of priority inheritance? Does the IRQ handler get a 
priority boost if a high priority task is waiting for it?

I didn't dare mess with the default kernel thread priorities.

# ps -eo pid,class,rtprio,ni,pri,stat,comm
   PID CLS RTPRIO  NI PRI STAT COMMAND
     1 TS       -   0  24 Ss   init
     2 FF      99   - 139 S    posix_cpu_timer
     3 FF      50   -  90 S    softirq-high/0
     4 FF      50   -  90 S    softirq-timer/0
     5 FF      50   -  90 S    softirq-net-tx/
     6 FF      50   -  90 S    softirq-net-rx/
     7 FF      50   -  90 S    softirq-block/0
     8 FF      50   -  90 S    softirq-tasklet
     9 FF      50   -  90 S    softirq-sched/0
    10 FF      50   -  90 S    softirq-hrtimer
    11 FF      50   -  90 S    softirq-rcu/0
    12 TS       - -10  34 S<   desched/0
    13 FF       1   -  41 S<   events/0
    14 TS       -  -5  19 S<   khelper
    15 TS       -  -5  19 S<   kthread
    34 TS       -  -5  29 S<   kblockd/0
    35 TS       -  -5  19 S<   kacpid
    36 FF      50   -  90 S<   IRQ-7
    82 TS       -  -5  29 S<   kseriod
   101 TS       -   0  16 S    pdflush
   102 TS       -   0  24 S    pdflush
   103 TS       -  -5  21 S<   kswapd0
   104 TS       -  -5  29 S<   flush_filesd/0
   105 TS       -  -5  21 S<   aio/0
   704 FF      50   -  90 S<   IRQ-14
   720 FF      50   -  90 S<   IRQ-12
   721 FF      50   -  90 S<   IRQ-1
   848 FF      50   -  90 S<   IRQ-11
   913 FF      50   -  90 S<   IRQ-10
   922 TS       -   0  21 Ss   sshd
   925 TS       -   0  24 Ss+  agetty
   926 TS       -   0  21 Ss+  agetty
   931 TS       -   0  24 Rs   sshd
   933 TS       -   0  24 Rs   bash

# cat /proc/interrupts
            CPU0
   0:         37    XT-PIC-XT        timer
   1:          2    XT-PIC-XT        i8042
   2:          0    XT-PIC-XT        cascade
   7:          0    XT-PIC-XT        acpi
  10:        175    XT-PIC-XT        eth2, Dta1xx
  11:       1129    XT-PIC-XT        eth0
  12:          4    XT-PIC-XT        eth1
  14:      21482    XT-PIC-XT        ide0
NMI:          0
LOC:     161632
ERR:          0
MIS:          0

IRQ 10 is shared between a NIC and an I/O board.

For eth2, the kernel said:
ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKC]
   -> GSI 10 (level, low) -> IRQ 10

For Dta1xx, the kernel said:
ACPI: PCI Interrupt 0000:02:0e.0[A] -> Link [LNKC]
   -> GSI 10 (level, low) -> IRQ 10

Is it possible to avoid the two boards sharing IRQ 10?

Regards.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help