I'm wondering if the high event counts following spin_unlock_irqrestore() are due to an
OProfile quirk. OProfile depends on interrupts, which are disabled inside the critical
section protected by the spin lock. It may end up accounting for all events that occurred
inside the critical section imm
Sorry for the late response.
The interrupts apply only to the receive side. Any CPU may put data into the
qdisc and I think any CPU may take data of the qdisc and send it. Have you set
the process affinity so that the sending process runs on the same CPU the
interrupt is raised on?
Not in this c
I am looking into some scalability issues on a 4-way Xeon machine (4 separate CPUs, not
cores). I believe I have tracked down the problem to bus contention: OProfile results
suggest a strong correlation between instructions reporting a high number of
global_power_events and FSB_data_activity eve
I compiled a software which had a kernel module as well apart from
userspace. I am running ubuntu so I have the linux headers that came
with ubuntu and linux-2.6.25 source code from kernel.org. Both are in
/usr/src. So the module that was built will be of which kernel?
A standard module Makefile
I recheck the fact you found and here's what I thought: yes, the tick
will be attributed to softirq, however as we know disabling local
bottom halves won't happen too long...so soon after it's enabled
again, tick accounting will be back attributed to system time.
I hacked the kernel so that acco
In account_system_time(), the current tick is accredited to SoftIRQ time
if softirq_count() is not 0. This value is incremented by
__local_bh_disable(), which is called from __do_softirq(). So far so
good. However, __local_bh_disable() is also called from
local_bh_disable(), which is called by
I am trying to determine, in run-time, the where a function was called
from. I believe that the standard way of doing this on an x86 is by
looking at the top of the stack pointed to by the EBP register. I.e.,
the following code should yield the return address in 'addr':
asm volatile("movl 0x4(
Are you running a tick-less kernel? That may explain the variations.
Elad
I don't think I can really help you here, but I might as well note that
I also had problems with /proc/stat. I have my questions regarding its
accuracy:
http://mail.nl.linux.org/kernelnewbies/2008-07/msg00196.html
I sho
I am observing some strange numbers in /proc/stat while running a simple
micro-benchmark, which transmits UDP packets. The machine is a dual Xeon
with HyperThreading, which gives 4 logical processors, and 4 Gigabit
NICs, which I am trying to saturate.
In the following experiment, I have pinned
Is it possible that they're migrating due to the CPU being masked off
for a critical section of code in another process/thread? I think
everything gets booted off a CPU when it is being used for a mutex's
critical section. The IRQs are masked and routed to other CPUs until
the mutex is done a
It turned out to be the fault of the irqbalance service (user mode
daemon). I don't know exactly how it operates, but the balancing scheme
it employs is clearly sub-optimal.
Elad
Elad Lahav wrote:
Hello all,
I have a dual-processor Xeon machine with HyperThreading, for a total of
4 lo
Hello all,
I have a dual-processor Xeon machine with HyperThreading, for a total of
4 logical processors. The machine is equipped with 4 Gigabit NICs. I am
trying to set the IRQ affinity, so that each NIC is handled by a
different logical processor. I do that by writing 1, 2, 4 and 8 to the
r
Most of the platform-dependent code is organised under the
arch/ and the include/asm- directories. If you use
Cscope (or KScope), you can create a project that will omit all of those
directories, with the exception of arch/i386, include/asm-i386 and
include/asm-generic.
Elad
[EMAIL PROTECTED
TCP checksum may actually be computed in hardware, so that the value you
see in the packet may not be the final checksum value.
Which NIC are you using? You can use ethtool to check whether it has TCP
offload capabilities.
Elad
Gaurav Aggarwal wrote:
Hi All,
I wrote a program where I am using
No, because that would only turn the flag on inside the kernel. I need
it on before the system call starts executing.
My quick'n'dirty hack is to user the FPU control word. It is accessible
from user mode, very cheap to read and write, globally enforced, and
doesn't seem to be causing any seriou
I believe the book was referring to "softirqs", rather than "software
interrupts". The latter, also called "Programmed Exceptions", are indeed
triggered by an int instruction. The former, however, are a
Linux-specific mechanism to handle interrupt bottom-halves, i.e., tasks
that should be perfo
I'd like to know if there's a way to set a system-global flag in user
mode that can be read in kernel mode. Specifically, I'd like to know if
a NAPI poll function is being executed during a system call that I
wrote, so the idea is to set the flag before the system call is invoked,
clear it when
What do you mean by a context switch?
There are several terms that are sometimes confused with a context switch:
1. Mode switch: The switch between user mode and kernel mode that occurs,
for example, at the beginning and end of a system call
2. Address-space switch: Before a thread becomes active,
18 matches
Mail list logo