[PATCH] pcmcia: remove internal module use count, use module_refcount instead
Remove the internal driver use_count in ds.c, as the reference counting is
done in the module core anyways, and that reference count is available for
cardmgr's usage by a call to module_refcount. And if !CONFIG_MODULE_UNLOAD,
rmmod is useless anyways, so avoid that call by cardmgr at all.
[PATCH] pcmcia: remove socket_bind_t, use pcmcia_devices instead
Remove struct socket_bind_t by moving "dev_link_t *instance" to struct
pcmcia_device, and transforming all users of socket_bind_t to use struct
pcmcia_device instead. Also, CodingStyle updates for get_device_info and
unbind_request.
[PATCH] pcmcia: device model integration can only be submitted under GPL
As discussed previously, my integration of ds.c with the driver model
can and will only be available under the GPL, as it's too much
derived of other buses' implementation of integration with the driver model.
[PATCH] pcmcia: call device drivers from ds, not from cs
Call the PCMCIA 16-bit device drivers from ds.c instead of cs.c. Also,
remove the delayed handling of CS_REMOVAL events, but keep the ordering
the same as it used to be due to the delay.
Add a new registration function to register the PCMCIA 16-bit subsystem
(ds a.k.a. pcmcia) with the PCMICA core (cs a.k.a. pcmcia_core).
As send_event is only called with skt->sem held, we can use that to safeguard
skt->callback(), too. Note that the class_device_register() call by pccardd()
is done _before_ skt->sem() is held, and the pcmcia_socket_register() doesn't
hold skt->sem() as well, so there is no chance for a deadlock.
Since the big direct I/O rework do_truncate takes i_alloc_sem before
calling into ->setattr. Unfortunately the other callers of ->setattr with
ATTR_SIZE, most notably nfsd don't take it.
The (out of tree) XFS dmapi code relies wants to release i_alloc_sem and
thus gets into problems like
http://oss.sgi.com/bugzilla/show_bug.cgi?id=365
This patch moves acquiring and releasing i_alloc_sem into notify_change()
to make the locking behaviour consistant.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Prasanna Meda [Tue, 11 Jan 2005 11:18:08 +0000 (03:18 -0800)]
[PATCH] easily tweakable comm length
This change still keeps the comm length at 16, but allows easier patching
for local modifications, and also introduces a macro to use instead of
magic 16, where sizeof(comm) is not preferable to use.
Not able to use killall, pidof etc. effectively, when long process names
are used for scripts. Just changing the command length from 16 to 32
breaks a.out coredump logic. Deamonise and get_task_comm helped in other
places in 2.6.10.
A couple of one liners to resolve two issues that have come up regarding
audit.
Roger reported a problem with audit.c:audit_receive_skb which improperly
negates the errno argument when netlink_ack is called.
The second issue was reported by Steve on the linux-audit list,
auditsc.s:audit_log_exit using %u instead of %d in the audit_log_format
call.
Please note, there is a mailing list available for audit discussion at
https://www.redhat.com/archives/linux-audit/
Signed-off-by: Peter Martuccelli <peterm@redhat.com> Signed-off-by: Steve Grubb <sgrubb@redhat.com> Signed-off-by: Roger Luethi <rl@hellgate.ch> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 11:16:07 +0000 (03:16 -0800)]
[PATCH] UML: Allow arches to opt out of !SA_INFO signals
x86_64 only delivers signals in the SA_INFO style, whether you ask
for it or not. This patch adds a config option which says whether
the arch is SA_INFO-only or not, and ifdefs out the sigcontext
signal delivery if so.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 11:14:48 +0000 (03:14 -0800)]
[PATCH] UML: code tidying
Some small cleanups that resulted from the x86_64 merge:
Some unneeded includes were removed
Some overlong lines were shortened
current_thread_info was replaced by a generic version.
Some warnings were fixed
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Bodo Stroesser [Tue, 11 Jan 2005 11:14:35 +0000 (03:14 -0800)]
[PATCH] UML: Use va_copy
In arch/um/kernel/skas/uaccess.c, the simple assignment
va_list args = *((va_list *) arg_ptr);
is used in do_buffer_op() to obtain a copy of a va_list, that
was delivered as a pointer only.
But this construction doesn't compile on s390. Instead,
va_copy() and va_end() should be used (see "man va_start").
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Bodo Stroesser [Tue, 11 Jan 2005 11:14:22 +0000 (03:14 -0800)]
[PATCH] UML: Don't use __NR_waitpid on arches which don't have it
Some architectures (e.g. s390) don't have __NR_waitpid.
Thus, it must not be used in arch/um/kernel/tt/ptproxy/proxy.c
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 11:13:27 +0000 (03:13 -0800)]
[PATCH] UML: Make a common misconfiguration impossible
This patch makes UML produce error messages instead of silently exiting
when one of several configuration mistakes are made. FD_CHAN is now
mandatory so that people don't turn it off and complain about no boot
messages.
Some printks were turned into printfs in the tt mode gdb code so that they
appear on the screen.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 11:13:13 +0000 (03:13 -0800)]
[PATCH] UML: Separate out signal reception
This patch moves most of the signal handlers to os-Linux, adds an
arch-specific mechanism to get the address of the sigcontext structure,
and implements it for i386 and x86_64.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 11:13:00 +0000 (03:13 -0800)]
[PATCH] UML: x86_64 ptrace support
This adds the x86_64 ptrace support.
It also cleans up the existing code somewhat, eliminating a couple of
simple header files, and generalizing the mk_ptregs buils to accomodate
multiple architectures.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 09:53:34 +0000 (01:53 -0800)]
[PATCH] UML: Factor out register saving and restoring
This moves the register shuffling code into arch/um/os-Linux/sys-$(SUBARCH),
making it purely userspace code. It also adds an x86_64 implementation of
registers.c.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 09:52:52 +0000 (01:52 -0800)]
[PATCH] UML: Three-level page table support
This is the three-level page table support from the x86_64 patch. It can
be enabled on x86, although it's not particularly needed at this point.
However, it can be used to implement very large physical memory (with
almost all of it in highmem) on UML.
Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 09:52:38 +0000 (01:52 -0800)]
[PATCH] UML: split out arch-specific syscalls from generic ones
This factors out a bunch of non-generic system calls into i386-specific
code. It also adds the x86_64-specific system calls.
A couple of generic system calls handlers are declared in sysdep-i386 because
x86 has no declarations for them, but x86_64 has incompatible ones.
Also splits out syscalls on behalf on UML/S390 from Bodo Stroesser
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Tue, 11 Jan 2005 09:52:24 +0000 (01:52 -0800)]
[PATCH] UML: Use va_end wherever va_args are used
Finish using va_list correctly, by calling va_end.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Tue, 11 Jan 2005 09:51:31 +0000 (01:51 -0800)]
[PATCH] x86_64: Fix signal FPU leak on i386 and x86-64
Found by Bodo Stroesser. Description from Bodo:
>>
On i386, if a signal handler is started, the kernel saves the fpu-state
of the interrupted routine in the sigcontext on the stack. Calling
unlazy_fpu() and setting current->used_math=0, the kernel supplies the
signal-handler with a cleared virtual fpu.
On sigreturn(), the old fpu-state of the interrupted routine is
restored.
If a process never used the fpu, it virtually has a cleared fpu.
If such a process is interrupted by a signal handler, no fpu-context is
saved and sigcontext->fpstate is set to NULL.
Assume, that the signal handler uses the fpu. Then, AFAICS, on sigreturn
current->used_math will be 1. Since sigcontext->fpstate still is NULL,
restore_sigcontext() doesn't call restore_i387(). Thus, no
clear_fpu() is done, current->used_math is not reset.
Now, the interrupted processes fpu no longer is cleared!
<<
Fix by AK. Just clear the FPU again when this happens.
Andi Kleen [Tue, 11 Jan 2005 09:50:25 +0000 (01:50 -0800)]
[PATCH] x86_64: Prevent gcc from generating MMX code by mistake.
This will help only on gcc 4+. On older gccs there is a workaround too, but
it is so ugly and there are no actual observed failures that I didn't apply
it.
Andi Kleen [Tue, 11 Jan 2005 09:49:59 +0000 (01:49 -0800)]
[PATCH] x86_64: Remove direct mem_map references
This removes all but one direct reference to mem_map for x86-64. This is
needed on systems where we break the mem_map up and directly indexing into
mem_map to get the page structure doesn't work anymore.
Signed-off-by: Matt Tolentino <matthew.e.tolentino@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Tue, 11 Jan 2005 09:49:32 +0000 (01:49 -0800)]
[PATCH] x86_64: Fix mptables printk
This fixes the erroneous No mptables found printk on x86_64 mpparse. We will
only print the message now if no mptables are found after all scans complete.
Signed-off-by: Justin M. Forbes <jmforbes@linuxtx.org> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Tue, 11 Jan 2005 09:48:01 +0000 (01:48 -0800)]
[PATCH] i386: AMD dual core support for i386
AMD dual core support for i386
Run HT initialization on AMD dual core CPUs on i386. They fake being HT CPUs.
This patch makes the HT detection run on AMD CPUs too. I moved the HT
detection code into a common file from intel.c for that.
It would be actually better to run HT detection always on all CPUs but this
would need a second callback afterwards to AMD code, which I avoided for now.
It adds a cpuinfo->x86_num_cores field.
This sets up the phys_proc_id[] array. This overloads this array with HT, but
when smp_num_siblings is 1
It is currently only used for /proc/cpuinfo printing. The reason we want to
behave this like SMT is that there are some license managers in user space
that license according to number of physical CPUs, and when they handle HT
they should handle CMP with this hack too. Another reason we need this is
that the powernow k8 driver needs this information to properly manage dual
core CPUs.
When there are ever dual core HT CPUs this will need small changes in
smpboot.c. I didn't do this for now to keep the patch simple.
Then we set smp_num_siblings to 1 on these systems again to prevent the
scheduler from setting up HT scheduling (which is not a very good match for
dual core).
This is a port of the CMP support code from x86-64 (minus the NUMA bits)
Andi Kleen [Tue, 11 Jan 2005 09:46:10 +0000 (01:46 -0800)]
[PATCH] x86_64: Work around another aperture BIOS bug on Opteron
Work around another aperture BIOS bug on Opteron
Based on debugging&code from Vincent ETIENNE <ve@vetienne.net>
>>
I have some problem with AGP initialization with my board : IWILL DK8N (Bi
opteron chipset NFORCE3 ). I use kernel 2.6.10-rc3-mm1, but i have try with
IOMMU reports a 128MB aperture for CPU0 ( that's the value i used in my bios)
at F0000000 but only 32MB at 4000000 for CPU1
<<
This patch checks for this condition and fixes the other CPUs up.
[PATCH] APIC/LAPIC hanging problems on nForce2 system
current state:
Systems with Nforce2 could freeze on high disk i/o activity in APIC mode
when CPU Disconnect is enabled. If bios doesn't fix this, current kernel
fix changes the registers according to follwing table:
* Chip Old value New value
* C17 0x1F0FFF01 0x1F01FF01
* C18D 0x9F0FFF01 0x9F01FF01
But this is only done, if cpu disconnect has been enabled in bios.
why change this:
If CPU disconnect is not enabled in bios, and bios is broken (some
manufacturers like Abit don't care about their customers and even the
latest bios doesn't fix this; I have an Abit mainboard), the kernel
doesn't apply the fix, so if cpu disconnect is enabled at a later stage
(in userspace), the system will be unstable and most likely freeze.
new behaviour:
The fix is now applied regardless of cpu disconnect being enabled at
boot time, or not. As you only have to change byte 3 to 0x01, reading
out chipset version isn't needed, so the patch simplifies the fix. Now
turning cpu disconnect on, at later stage won't break the system, and if
it was already enabled, it gets fixed, as the old version did.
The address used by the kprobes handler was not correct if the application
was using LDT entries for code segment. This patch fixes the above problem
by calculating the address using base address of the current code segment.
Also this patch removes the inline prefix of kprobe_handler() .
Signed-off-by: Prasanna S Panchamukhi <prasanna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Herbert Pötzl [Tue, 11 Jan 2005 09:45:29 +0000 (01:45 -0800)]
[PATCH] improved wait_8254_wraparound()
hopefully 'better' fix for broken Intel Mercury/Neptune in
wait_8254_wraparound() ...
Rationale:
changing HZ to higher values (like 5k,10k or 20k) will hang machines using
wait_8254_wraparound() indefinitely, because a suboptimal workaround for
buggy Intel Mercury/Neptune chipsets is in place.
this was tested on several machines, unfortunately none with a broken Intel
Mercury/Neptune chipset, and it works fine with various HZ values ...
Signed-off-by: Herbert Pötzl <herbert@13thfloor.at> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:44:36 +0000 (01:44 -0800)]
[PATCH] ppc64: Fix rtas_set_indicator(9005)
It turns out we were passing in the wrong thing to the rtas_set_indicator
call. Luckily we got away with it because it looks like firmware does not
check arguments and just inserts or removes the current cpu from the global
server group.
Fix it.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:44:23 +0000 (01:44 -0800)]
[PATCH] ppc64: interrupt code cleanup
- Move some function prototypes into header files.
- Remove late_setup_cpu, put the set indicator and vpa init into xics
probe instead
- rtas-proc was doing weird stuff with the 9005 indicator. Get rid of
it.
- Dont open code the set_indicator call in the hotplug code
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:43:55 +0000 (01:43 -0800)]
[PATCH] ppc64: PCI cleanup
- remove pci_fix_bus_sysdata. We required it for the old pci dma
subsystem, but now it is useless.
- remove PCI_GET_PHB_PTR and use pci_bus_to_host instead
- remove pci_find_hose_for_OF_device
- remove some unused fields in struct pci_controller
- remove pci_device_loc stale prototype
- remove an old mask of pci bus number that was left around from the pre
PCI domains days
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:43:41 +0000 (01:43 -0800)]
[PATCH] ppc64: xtime <-> gettimeofday can get out of sync
I've noticed a problem where xtime and gettimeofday could get out of sync if
interrupts are disabled for too long (eg long kernel code paths or dropping
into the debugger for a while).
We correctly replay lost jiffies but in that loop time_sync_xtime syncs the
intermediate values of xtime up with the current value of gettimeofday. So
xtime jumps by a bunch and from then on it is ahead of gettimeofday and we
never resync the two. I guess this is to avoid xtime going backwards.
The patch below creates a __do_gettimeofday where you can pass in a tb value
and sync the intermediate values of xtime properly.
Note that the time_sync_xtime check only stops the seconds from going
backwards, the ns component still could couldnt it? Considering this is hard
to get right, should we switch to the time interpolator stuff? The only
problem there is it might be trouble for systemcfg (which exports stuff to do
userspace gettimeofday).
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:43:28 +0000 (01:43 -0800)]
[PATCH] ppc64: make xmon print BUG() warnings
I've had to explain to a number of people that a 0x700 exception is often a
BUG(). Make this crystal clear by printing the BUG information in the xmon
exception printout.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:43:15 +0000 (01:43 -0800)]
[PATCH] ppc64: fix xmon longjmp handling
It turns out gcc decides to allocate a stack frame in the current xmon setjmp
function. This means the stack linkage we save away is destroyed when
returning from it and its just a matter of time before another function stomps
on it.
This should fix the problem Linas reported this week.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:42:42 +0000 (01:42 -0800)]
[PATCH] : ppc64: enhance oops printing
Here are some changes to the oops printout, stuff that would have been
useful when I was chasing various bugs.
- print out instructions around the fail (3/4 before 1/4 after).
- print out CTR and CR registers, make some space by cutting down XER
(its only 32bit)
- always print the DAR and DSISR, its sometimes useful
- print_modules() like x86
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 11 Jan 2005 09:42:13 +0000 (01:42 -0800)]
[PATCH] ppc64: kprobes breaks BUG() handling
I was running some tests and noticed BUG() handling wasnt working as expected.
The kprobes code has some code to check for breakpoint removal races and only
checks for one opcode. It turns out there are many forms of the breakpoint
instruction, comparing against one is not good enough.
For the momemt remove the code in question so BUG()s work again and we can
discuss a better solution (I thought kprobes was emulating instructions or
running them out of line).
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Zwane Mwaikambo [Tue, 11 Jan 2005 09:42:00 +0000 (01:42 -0800)]
[PATCH] ppc64: Move hotplug cpu functions to smp_ops
This should allow for easier adding of hotplug cpu support for other PPC64
subarchs. The patch is untested but does compile with and without hotplug
cpu on pSeries and G5 configs. What can get slightly confusing is the fact
that both ppc_md and smp_ops have cpu_die members.
Signed-off-by: Zwane Mwaikambo <zwane@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Thomas Gleixner [Tue, 11 Jan 2005 09:41:19 +0000 (01:41 -0800)]
[PATCH] ppc: fix idle with interrupts disabled
The idle-thread-preemption-fix.patch in mm1/2 leads to a stalled box on PPC
machines which do not provide a powersave function and therefor poll the
idle loop with interrupts disabled. The patch reenables interrupts.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Hugh Dickins [Tue, 11 Jan 2005 09:41:06 +0000 (01:41 -0800)]
[PATCH] 4level swapoff hang fix
The 4level mods have caused 2level swapoff to miss entries and hang.
There's probably a one-line fix for that, but the error is really caused
by previous awkwardness - each mask applied on two levels, an "address"
that's an offset plus an "offset" that's an address. Simplify the four
levels to behave in the same address/next/end way and the bug vanishes.
[PATCH] cputime: microsecond based cputime for s390
This patch adds the architecture magic to replace the jiffies based cputime
with microsecond based cputime and it adds code to calculate involuntary
wait time. With this patch the numbers reported by top and ps when running
on LPAR or z/VM are finally not junk anymore.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This patch introduces the concept of (virtual) cputime. Each architecture
can define its method to measure cputime. The main idea is to define a
cputime_t type and a set of operations on it (see asm-generic/cputime.h).
Then use the type for utime, stime, cutime, cstime, it_virt_value,
it_virt_incr, it_prof_value and it_prof_incr and use the cputime operations
for each access to these variables. The default implementation is jiffies
based and the effect of this patch for architectures which use the default
implementation should be neglectible.
There is a second type cputime64_t which is necessary for the kernel_stat
cpu statistics. The default cputime_t is 32 bit and based on HZ, this will
overflow after 49.7 days. This is not enough for kernel_stat (ihmo not
enough for a processes too), so it is necessary to have a 64 bit type.
The third thing that gets introduced by this patch is an additional field
for the /proc/stat interface: cpu steal time. An architecture can account
cpu steal time by calls to the account_stealtime function. The cpu which
backs a virtual processor doesn't spent all of its time for the virtual
cpu. To get meaningful cpu usage numbers this involuntary wait time needs
to be accounted and exported to user space.
From: Hugh Dickins <hugh@veritas.com>
The p->signal check in account_system_time is insufficient. If the timer
interrupt hits near the end of exit_notify, after EXIT_ZOMBIE has been set,
another cpu may release_task (NULLifying p->signal) in between
account_system_time's check and check_rlimit's dereference. Nor should
account_it_prof risk send_sig. But surely account_user_time is safe?
Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jay Lan [Tue, 11 Jan 2005 09:39:41 +0000 (01:39 -0800)]
[PATCH] acct_update_integrals speedup
This patch is to provide extra check in acct_update_integrals() function.
The routine would return if 'delta' is 0 to take quick exit if nothing to
be done.
Signed-off-by: Jay Lan <jlan@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>