diff for duplicates of <4A0ADF34.2040001@cosmosbay.com> diff --git a/a/1.txt b/N1/1.txt index e589a58..00000d5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,89 +1,69 @@ -Andi Kleen a =E9crit : +Andi Kleen a écrit : > Thomas Gleixner <tglx@linutronix.de> writes: ->=20 ->=20 +> +> >> Err, no. Chris is completely correct: >> >> if (!in_interrupt()) >> wakeup_softirqd(); ->=20 +> > Yes you have to wake it up just in case, but it doesn't normally > process the data because a normal softirq comes in faster. It's -> just a safety policy.=20 ->=20 +> just a safety policy. +> > You can check this by checking the accumulated CPU time on your > ksoftirqs. Mine are all 0 even on long running systems. ->=20 +> -Then its a bug Andi. Its quite easy to trigger ksoftirqd with a Gb ethern= -et link. +Then its a bug Andi. Its quite easy to trigger ksoftirqd with a Gb ethernet link. commit f5f293a4e3d0a0c52cec31de6762c95050156516 corrected something (making mpstat and top correctly display softirq on cpu stats), -but apparently we still have a problem to report correct time on processe= -s, +but apparently we still have a problem to report correct time on processes, particularly on ksoftirq/x I have one machine SMP flooded by network frames, CPU0 handling all -the work, inside ksoftirq/0 (napi processing : almost no more hard interr= -upts delivered) +the work, inside ksoftirq/0 (napi processing : almost no more hard interrupts delivered) Still, top or ps reports no more than 30% of cpu time used by -ksoftirqd, while this cpu only runs ksoftirqd/0 (100% in sirq), and has n= -o idle time. +ksoftirqd, while this cpu only runs ksoftirqd/0 (100% in sirq), and has no idle time. $ps -fp 4 ; mpstat -P 0 1 10 ; ps -fp 4 UID PID PPID C STIME TTY TIME CMD root 4 2 1 15:35 ? 00:00:46 [ksoftirqd/0] -Linux 2.6.30-rc5-tip-01595-g6f75dad-dirty (svivoipvnx001) 05/13/200= -9 _i686_ +Linux 2.6.30-rc5-tip-01595-g6f75dad-dirty (svivoipvnx001) 05/13/2009 _i686_ -04:45:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal = - %guest %idle -04:45:02 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:03 PM 0 0.00 0.00 0.00 0.00 0.00 99.01 0.00 = - 0.00 0.99 -04:45:04 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:05 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:06 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:07 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:08 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:09 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:10 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -04:45:11 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 = - 0.00 0.00 -Average: 0 0.00 0.00 0.00 0.00 0.00 99.90 0.00 = - 0.00 0.10 +04:45:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle +04:45:02 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:03 PM 0 0.00 0.00 0.00 0.00 0.00 99.01 0.00 0.00 0.99 +04:45:04 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:05 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:06 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:07 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:08 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:09 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:10 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +04:45:11 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 +Average: 0 0.00 0.00 0.00 0.00 0.00 99.90 0.00 0.00 0.10 UID PID PPID C STIME TTY TIME CMD root 4 2 1 15:35 ? 00:00:49 [ksoftirqd/0] -You can see here time consumed by ksoftirqd/0 suring this 10 seconds time= - frame is *only* 3 seconds. +You can see here time consumed by ksoftirqd/0 suring this 10 seconds time frame is *only* 3 seconds. Therefore, we cannot trust ps, not with current kernel. # cat /proc/4/stat ; sleep 10 ; cat /proc/4/stat -4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15347 0 0 15 -5 1 0 6 0= - 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0 -4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15670 0 0 15 -5 1 0 6 0= - 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0 +4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15347 0 0 15 -5 1 0 6 0 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0 +4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15670 0 0 15 -5 1 0 6 0 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0 > The reason Andrea originally added the softirqds was just that > if you have very softirq intensive workloads they would tie > up too much CPU time or not make enough process with the default -> "don't loop too often" heuristics.=20 ->=20 +> "don't loop too often" heuristics. +> >> We can not rely on irqs coming in when the softirq is raised from ->=20 +> > You can't rely on it, but it happens in near all cases. ->=20 +> > -Andi diff --git a/a/content_digest b/N1/content_digest index d39dd39..953a962 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -14,104 +14,85 @@ "Subject\0Re: question about softirqs\0" "Date\0Wed, 13 May 2009 16:54:44 +0200\0" "To\0Andi Kleen <andi@firstfloor.org>\0" - "Cc\0Peter Zijlstra <a.p.zijlstra@chello.nl>" - linuxppc-dev@ozlabs.org - netdev@vger.kernel.org + "Cc\0Thomas Gleixner <tglx@linutronix.de>" + Chris Friesen <cfriesen@nortel.com> Ingo Molnar <mingo@elte.hu> + Peter Zijlstra <a.p.zijlstra@chello.nl> Steven Rostedt <rostedt@goodmis.org> + David Miller <davem@davemloft.net> + linuxppc-dev@ozlabs.org paulus@samba.org - Thomas Gleixner <tglx@linutronix.de> - " David Miller <davem@davemloft.net>\0" + " netdev@vger.kernel.org\0" "\00:1\0" "b\0" - "Andi Kleen a =E9crit :\n" + "Andi Kleen a \303\251crit :\n" "> Thomas Gleixner <tglx@linutronix.de> writes:\n" - ">=20\n" - ">=20\n" + "> \n" + "> \n" ">> Err, no. Chris is completely correct:\n" ">>\n" ">> if (!in_interrupt())\n" ">> \t\twakeup_softirqd();\n" - ">=20\n" + "> \n" "> Yes you have to wake it up just in case, but it doesn't normally\n" "> process the data because a normal softirq comes in faster. It's\n" - "> just a safety policy.=20\n" - ">=20\n" + "> just a safety policy. \n" + "> \n" "> You can check this by checking the accumulated CPU time on your\n" "> ksoftirqs. Mine are all 0 even on long running systems.\n" - ">=20\n" + "> \n" "\n" - "Then its a bug Andi. Its quite easy to trigger ksoftirqd with a Gb ethern=\n" - "et link.\n" + "Then its a bug Andi. Its quite easy to trigger ksoftirqd with a Gb ethernet link.\n" "\n" "commit f5f293a4e3d0a0c52cec31de6762c95050156516 corrected something\n" "(making mpstat and top correctly display softirq on cpu stats),\n" - "but apparently we still have a problem to report correct time on processe=\n" - "s,\n" + "but apparently we still have a problem to report correct time on processes,\n" "particularly on ksoftirq/x\n" "\n" "I have one machine SMP flooded by network frames, CPU0 handling all\n" - "the work, inside ksoftirq/0 (napi processing : almost no more hard interr=\n" - "upts delivered)\n" + "the work, inside ksoftirq/0 (napi processing : almost no more hard interrupts delivered)\n" "\n" "Still, top or ps reports no more than 30% of cpu time used by\n" - "ksoftirqd, while this cpu only runs ksoftirqd/0 (100% in sirq), and has n=\n" - "o idle time.\n" + "ksoftirqd, while this cpu only runs ksoftirqd/0 (100% in sirq), and has no idle time.\n" "\n" "$ps -fp 4 ; mpstat -P 0 1 10 ; ps -fp 4\n" "UID PID PPID C STIME TTY TIME CMD\n" "root 4 2 1 15:35 ? 00:00:46 [ksoftirqd/0]\n" - "Linux 2.6.30-rc5-tip-01595-g6f75dad-dirty (svivoipvnx001) 05/13/200=\n" - "9 _i686_\n" + "Linux 2.6.30-rc5-tip-01595-g6f75dad-dirty (svivoipvnx001) 05/13/2009 _i686_\n" "\n" - "04:45:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal =\n" - " %guest %idle\n" - "04:45:02 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:03 PM 0 0.00 0.00 0.00 0.00 0.00 99.01 0.00 =\n" - " 0.00 0.99\n" - "04:45:04 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:05 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:06 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:07 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:08 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:09 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:10 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "04:45:11 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 =\n" - " 0.00 0.00\n" - "Average: 0 0.00 0.00 0.00 0.00 0.00 99.90 0.00 =\n" - " 0.00 0.10\n" + "04:45:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle\n" + "04:45:02 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:03 PM 0 0.00 0.00 0.00 0.00 0.00 99.01 0.00 0.00 0.99\n" + "04:45:04 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:05 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:06 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:07 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:08 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:09 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:10 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "04:45:11 PM 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00\n" + "Average: 0 0.00 0.00 0.00 0.00 0.00 99.90 0.00 0.00 0.10\n" "UID PID PPID C STIME TTY TIME CMD\n" "root 4 2 1 15:35 ? 00:00:49 [ksoftirqd/0]\n" "\n" - "You can see here time consumed by ksoftirqd/0 suring this 10 seconds time=\n" - " frame is *only* 3 seconds.\n" + "You can see here time consumed by ksoftirqd/0 suring this 10 seconds time frame is *only* 3 seconds.\n" "\n" "Therefore, we cannot trust ps, not with current kernel.\n" "\n" "# cat /proc/4/stat ; sleep 10 ; cat /proc/4/stat\n" - "4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15347 0 0 15 -5 1 0 6 0=\n" - " 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0\n" - "4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15670 0 0 15 -5 1 0 6 0=\n" - " 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0\n" + "4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15347 0 0 15 -5 1 0 6 0 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0\n" + "4 (ksoftirqd/0) R 2 0 0 0 -1 2216730688 0 0 0 0 0 15670 0 0 15 -5 1 0 6 0 0 4294967295 0 0 0 0 0 0 0 2147483647 0 0 0 0 17 0 0 0 0 0 0\n" "\n" "\n" "> The reason Andrea originally added the softirqds was just that\n" "> if you have very softirq intensive workloads they would tie\n" "> up too much CPU time or not make enough process with the default\n" - "> \"don't loop too often\" heuristics.=20\n" - ">=20\n" + "> \"don't loop too often\" heuristics. \n" + "> \n" ">> We can not rely on irqs coming in when the softirq is raised from\n" - ">=20\n" + "> \n" "> You can't rely on it, but it happens in near all cases.\n" - ">=20\n" + "> \n" > -Andi -173f825759aa27096cab574131452d633cea701ec5a2b9069f4ac16bdfe2faee +9693f726de8fd741847db5cac844d7f35746988de8e35adee9f49b557f253aa9
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.