summaryrefslogtreecommitdiff
path: root/include/linux/init_task.h
AgeCommit message (Collapse)Author
2002-12-20[PATCH] Fix CPU bitmask truncationWilliam Lee Irwin III
Fix task->cpus_allowed bitmask truncations on 64.bit architectures. Originally by Bjorn Helgaas for 2.4.x.
2002-09-28[PATCH] atomic-thread-signalsIngo Molnar
Avoid racing on signal delivery with thread signal blocking in thread groups. The method to do this is to eliminate the per-thread sigmask_lock, and use the per-group (per 'process') siglock for all signal related activities. This immensely simplified some of the locking interactions within signal.c, and enabled the fixing of the above category of signal delivery races. This became possible due to the former thread-signal patch, which made siglock an irq-safe thing. (it used to be a process-context-only spinlock.) And this is even a speedup for non-threaded applications: only one lock is used. I fixed all places within the kernel except the non-x86 arch sections. Even for them the transition is very straightforward, in almost every case the following is sufficient in arch/*/kernel/signal.c: :1,$s/->sigmask_lock/->sig->siglock/g
2002-09-22[PATCH] pidhash cleanups, tgid-2.5.38-F3Ingo Molnar
This does the following things: - removes the ->thread_group list and uses a new PIDTYPE_TGID pid class to handle thread groups. This cleans up lots of code in signal.c and elsewhere. - fixes sys_execve() if a non-leader thread calls it. (2.5.38 crashed in this case.) - renames list_for_each_noprefetch to __list_for_each. - cleans up delayed-leader parent notification. - introduces link_pid() to optimize PIDTYPE_TGID installation in the thread-group case. I've tested the patch with a number of threaded and non-threaded workloads, and it works just fine. Compiles & boots on UP and SMP x86. The session/pgrp bugs reported to lkml are probably still open, they are the next on my todo - now that we have a clean pidhash architecture they should be easier to fix.
2002-09-13[PATCH] Use a sync iocb for generic_file_readAndrew Morton
This adds support for synchronous iocbs and converts generic_file_read to use a sync iocb to call into generic_file_aio_read. The tests I've run with lmbench on a piii-866 showed no difference in file re-read speed when forced to use a completion path via aio_complete and an -EIOCBQUEUED return from generic_file_aio_read -- people with slower machines might want to test this to see if we can tune it any better. Also, a bug fix to correct a missing call into the aio code from the fork code is present. This patch sets things up for making generic_file_aio_read actually asynchronous.
2002-09-12[PATCH] sys_exit() threading improvements, BK-currIngo Molnar
This implements the 'keep the initial thread around until every thread in the group exits' concept in a different, less intrusive way, along your suggestions. There is no exit_done completion handling anymore, freeing of the task is still done by wait4(). This has the following side-effect: detached threads/processes can only be started within a thread group, not in a standalone way. (This also fixes the bugs introduced by the ->exit_done code, which made it possible for a zombie task to be reactivated.) I've introduced the p->group_leader pointer, which can/will be used for other purposes in the future as well - since from now on the thread group leader is always existent. Right now it's used to notify the parent of the thread group leader from the last non-leader thread that exits [if the thread group leader is a zombie already].
2002-09-08[PATCH] Re: pinpointed: PANIC caused by dequeue_signal() in current LinusIngo Molnar
This fixes the bootup crash. There were two initialization bugs: - INIT_SIGNAL needs to set shared_pending. - exec() needs to set up newsig properly. the second one caused the crash Anton saw.
2002-08-18[PATCH] O(1) sys_exit(), threading, scalable-exit-2.5.31-B4Ingo Molnar
the attached patch updates a number of items: - adds cleanups suggested by Christoph Hellwig: needed unlikely() statements, a superfluous #define and line length problems. - splits up the global ptrace list into per-task ptrace lists. This was pretty straightforward, and this makes the worst-case exit() latency O(nr_children). the per-task ptrace lists unearthed a bug that the previous code did not take care of: tasks on the ptrace list have to be correctly reparented as well. This patch passed my stresstests as well.
2002-08-12[PATCH] designated initializers for include/linuxRusty Russell
These are the completely generic bits (linux/init_task.h and linux/wait.h). From: Art Haas <ahaas@neosoft.com> Here's the latest diffs for the files in include/linux. Patches are against 2.5.31.
2002-07-23[PATCH] scheduler fixesIngo Molnar
- introduce new type of context-switch locking, this is a must-have for ia64 and sparc64. - load_balance() bug noticed by Scott Rhine and myself: scan the whole list to find imbalance number of tasks, not just the tail of the list. - sched_yield() fix: use current->array not rq->active.
2002-05-17[PATCH] clean up maximum prioritiesRobert Love
This patch further cleans up and separates the code in an effort to allow setting (a) a larger maximum real-time priority than default and (b) a maximum kernel RT priority that is separate than the maximum priority exported to user-space.
2002-03-14Cleanup: use list macros for task listLinus Torvalds
2002-03-14[PATCH] wait4() WIFSTOPPED starvation fix #1/2David Howells
This patch (#1) just converts the task_struct to use struct list_head rather than direct pointers for maintaining the children list.
2002-02-23- new, less intrusive and faster migration method:Ingo Molnar
/* * This is how migration works: * * 1) we queue a migration_req_t structure in the source CPU's * runqueue and wake up that CPU's migration thread. * 2) we down() the locked semaphore => thread blocks. * 3) migration thread wakes up (implicitly it forces the migrated * thread off the CPU) * 4) it gets the migration request and checks whether the migrated * task is still in the wrong runqueue. * 5) if it's in the wrong runqueue then the migration thread removes * it and puts it into the right queue. * 6) migration thread up()s the semaphore. * 7) we wake up and the migration is done. */
2002-02-21cleanups, speedups and fixes. Added support for non-current set_cpus_allowed().Ingo Molnar
2002-02-11merge to the -K3 scheduler.Ingo Molnar
2002-02-06[PATCH] thread information blockDavid Howells
syscall latency improvement * There's now an asm/thread_info.h header file with the basic structure def and asm offsets in it. * There's now a linux/thread_info.h header file which includes the asm version and wraps some bitops calls to make convenience functions for accessing the low-level flags. * The task_struct has had some fields removed (and some flags), and has acquired a pointer to the thread_info struct. * task_struct's are now allocated on slabs in kernel/fork.c, whereas thread_info structs are allocated at the bottom of the stack pages. * Some more convenience functions are provided at the end of linux/sched.h to access flags in other tasks (these are here because they need to access the task_struct).
2002-02-05v2.5.2.6 -> v2.5.3Linus Torvalds
- Doug Ledford: i810 audio driver update - Evgeniy Polyakov: update various SCSI drivers to new locking - David Howells: syscall latency improvement, try 2 - Francois Romieu: dscc4 driver update - Patrick Mochel: driver model fixes - Andrew Morton: clean up a few details in ext3 inode initialization - Pete Wyckoff: make x86 machine check print out right address.. - Hans Reiser: reiserfs update - Richard Gooch: devfs update - Greg KH: USB updates - Dave Jones: PNPBIOS - Nathan Scott: extended attributes - Corey Minyard: clean up zlib duplication (triplication..)
2002-02-05v2.5.2.5 -> v2.5.2.6Linus Torvalds
- Asit Mallick: mtrr update - Patrick Mochel: split up kernel/device.c into drivers/base - Mikael Pettersson/Al Viro: fix missing in-core inode initialization in ext2 introduced by Al's inode trimming - David Miller: sparc and network updates - Frank Davis: firewire video mmap page remapping fix - me: fix configure help scripts to fix breakage noticed by Dave Jones - Greg KH: USB updates - Kai Germaschewski: ISDN fixes, Config.help entries - Douglas Gilbert: SCSI doc update - Ingo Molnar: x86 taskswitch optimizations, scheduler updates - Mikael Pettersson: make APIC work on old external setups - Al Viro: more inode trimming
2002-02-05v2.5.2.1 -> v2.5.2.1.1Linus Torvalds
- David Howells: abtract out "current->need_resched" as "need_resched()" - Frank Davis: ide-tape update for bio - various: header file fixups - Jens Axboe: fix up bio/ide/highmem issues - Kai Germaschewski: ISDN update - Tim Waugh: parport update - Patrik Mochel: initcall update - Greg KH: USB and Compaq PCI hotplug updates
2002-02-05v2.5.2 -> v2.5.2.1Linus Torvalds
- Al Viro: fix up silly problem in swapfile filp cleanups in 2.5.2 - Tachino Nobuhiro: fix another error return for swapfile filp code - Robert Love: merge some of Ingo's scheduler fixes - David Miller: networking, sparc and some scsi driver fixes - Tim Waugh: parport update - OGAWA Hirofumi: fatfs cleanups and bugfixes - Roland Dreier: fix vsscanf buglets. - Ben LaHaise: include file cleanup - Andre Hedrick: IDE taskfile update