1. 14 Sep, 2002 6 commits
  2. 12 Sep, 2002 2 commits
  3. 11 Sep, 2002 10 commits
    • Linus Torvalds's avatar
      Allocate system call numbers: 250 and 251 for hugetlb, with · 0e9387ab
      Linus Torvalds authored
      252 for exit_group
      0e9387ab
    • Anton Blanchard's avatar
      Merge samba.org:/scratch/anton/linux-2.5 · 98398eba
      Anton Blanchard authored
      into samba.org:/scratch/anton/linux-2.5_bar
      98398eba
    • Anton Blanchard's avatar
      ppc64: add rwlock_is_locked · 09b1ed32
      Anton Blanchard authored
      09b1ed32
    • Anton Blanchard's avatar
      ppc64: INIT_SIGNALS fix · 0b93ec0b
      Anton Blanchard authored
      0b93ec0b
    • Ingo Molnar's avatar
      [PATCH] Thread deadlock fix.. · 6ff3e5b7
      Ingo Molnar authored
      This fixes the old-pthreads breakage i can reproduce.
      
      the fix is to only do the thread-group exit-completion logic in case of
      thread-groups.
      6ff3e5b7
    • Ingo Molnar's avatar
      [PATCH] sys_exit_group(), threading, 2.5.34 · b62bf732
      Ingo Molnar authored
      This is another step to have better threading support under Linux, it
      implements the sys_exit_group() system call.
      
      It's a straightforward extension of the generic 'thread group' concept,
      which extension also comes handy to solve a number of problems when
      implementing POSIX threads.
      
      POSIX exit() [the C library function] has the following semantics: all
      thread have to exit and the waiting parent has to get the exit code that
      was specified for the exit() function.  It also has to be ensured that
      every thread has truly finished its work by the time the parent gets the
      notification.  The exit code has to be propagated properly to the parent
      thread even if not the thread group leader calls the exit() function.
      
      Normal single-thread exit is done via the pthread_exit() function, which
      calls sys_exit().
      
      Previous incarnations of Linux POSIX threads implementations chose the
      following solution: send a 'thread management' signal to the thread
      group leader via tkill(), which thread goes around and kills every
      thread in the group (except itself), then calls sys_exit() with the
      proper exit code.  Both old libpthreads and NGPT use this solution.
      
      This works to a certain degree, unless a userspace threading library
      uses the initial thread for normal thread work [like the new
      libpthreads], which 'work' can cause the initial thread to exit
      prematurely.
      
      At this point the threading library has to catch the group leader in
      pthread_exit() and has to keep the management thread 'hanging around'
      artificially, waiting for the management signal. Besides being slightly
      confusing to users ('why is this thread still around?') even this variant
      is unrobust: if the initial thread is killed by the kernel (SIGSEGV or any
      other thread-specific event that triggers do_exit()) then the thread goes
      away without the thread library having a chance to intervene.
      
      the sys_exit_group() syscall implements the mechanism within the kernel,
      which, besides robustness, is also *much* faster. Instead of the threading
      library having to tkill() every thread available, the kernel can use the
      already existing 'broadcast signal' capability. (the threading library
      cannot use broadcast signals because that would kill the initial thread as
      well.)
      
      as a side-effect of the completion mechanism used by sys_exit_group() it
      was also possible to make the initial thread hang around as a zombie until
      every other thread in the group has exited. A 'Z' state thread is much
      easier to understand by users - it's around because it has to wait for all
      other threads to exit first.
      
      and as a side-effect of the initial thread hanging around in a guaranteed
      way, there are three advantages:
      
       - signals sent to the thread group via sys_kill() work again. Previously
         if the initial thread exited then all subsequent sys_kill() calls to
         the group PID failed with a -ESRCH.
      
       - the get_pid() function got faster: it does not have to check for tgid
         collision anymore.
      
       - procps has an easier job displaying threaded applications - since the
         thread group leader is always around, no thread group can 'hide' from
         procps just because the thread group leader has exited.
      
       [ - NOTE: the same mechanism can/will also be used by the upcoming
           threaded-coredumps patch. ]
      
      there's also another (small) advantage for threading libraries: eg. the
      new libpthreads does not even have any notion of 'group of threads'
      anymore - it does not maintain any global list of threads. Via this
      syscall it can purely rely on the kernel to manage thread groups.
      
      the patch itself does some internal changes to the way a thread exits: now
      the unhashing of the PID and the signal-freeing is done atomically. This
      is needed to make sure the thread group leader unhashes itself precisely
      when the last thread group member has exited.
      
      (the sys_exit_group() syscall has been used by glibc's new libpthreads
      code for the past couple of weeks and the concept is working just fine.)
      b62bf732
    • Ingo Molnar's avatar
      [PATCH] exit.c compilation warning fix · 4c21fddc
      Ingo Molnar authored
      I forgot to remove an unused label in the deadlock fix patch.
      4c21fddc
    • Sam Ravnborg's avatar
      [PATCH] drivers/char/Makefile: Remove pty.o from export-objs · fb530c76
      Sam Ravnborg authored
      Remove pty.o from the export-objs list, since pty.c does not export
      any symbols.
      
      A /* EXPORT_SYMBOL */ comment may have fooled the original author.
      fb530c76
    • Sam Ravnborg's avatar
      [PATCH] zftape: Cleanup zftape_syms.c · a8b2e9c3
      Sam Ravnborg authored
      Removed compatibility cruft from zftape_syms.c.
      There is no need to be compatible with kernel 2.1.18 and older.
      Replaced FT_KSYM with direct call to EXPORT_SYMBOL.
      a8b2e9c3
    • Ivan Kokshaysky's avatar
      [PATCH] alpha update · e91208b7
      Ivan Kokshaysky authored
      - signal update; make do_signal use generic get_signal_to_deliver()
      - irqs_disabled macro
      - remove vmlinux.lds.s target from arch/alpha/Makefile since it works
        correctly in the top level Makefile
      - extra argument for pcibios_enable_device (most likely we'll never
        use it though...)
      e91208b7
  4. 10 Sep, 2002 2 commits
    • Jens Axboe's avatar
      bio.h: · 6ebbf06b
      Jens Axboe authored
        clean up with bio_kmap_irq() thing properly. remove the micro optimization of _not_ calling kmap_atomic() if this isn't a highmem page. we could keep that and do the inc_preempt_count() ourselves, but I'm not sure it's worth it and this is cleaner.
      6ebbf06b
    • Jens Axboe's avatar
      Merge axboe@brick.kernel.dk:/mnt/kernel/ide/linux-2.5 · fe0e4341
      Jens Axboe authored
      into hera.kernel.org:/home/axboe/BK/linux-2.5-ide
      fe0e4341
  5. 11 Sep, 2002 20 commits
    • Jens Axboe's avatar
      ide_map_buffer() and ide_unmap_buffer() could cause imbalanced calls · 37eb06f8
      Jens Axboe authored
      to bio_kmap/kunmap_irq(), which would screw the preemption count. pass
      in rq to ide_unmap_buffer() as well to make the right decision.
      37eb06f8
    • Jens Axboe's avatar
      missed pdc4030.h update: · 74d6048c
      Jens Axboe authored
      o silly IS_PDC4030_DRIVE definition
      74d6048c
    • Jens Axboe's avatar
      arch ide updates. mainly ide_ioreg_t type changes, and removal of · ab254e4f
      Jens Axboe authored
      silly old irq and region registration etc.
      ab254e4f
    • Jens Axboe's avatar
      ide-scsi updates: · d271af5d
      Jens Axboe authored
      o byte -> u8
      o use atapi register definitions
      o update to ide-iops changes
      o driver->end_request() changes
      o update to new ide-dma api
      o ->reinit to ->attach
      d271af5d
    • Jens Axboe's avatar
      add ide-lib helpers · 8d37f180
      Jens Axboe authored
      8d37f180
    • Jens Axboe's avatar
      ide configure updates · b19e6271
      Jens Axboe authored
      b19e6271
    • Jens Axboe's avatar
      0e771bcc
    • Jens Axboe's avatar
      ide core updates, and addition of ide-iops.c · 79b2577a
      Jens Axboe authored
      79b2577a
    • Jens Axboe's avatar
      ide_modes.h updates: · ce028ad0
      Jens Axboe authored
      o byte -> u8
      ce028ad0
    • Jens Axboe's avatar
      ide-taskfile updates: · e7e95e71
      Jens Axboe authored
      o ide-iops changes (mainly moving stuff to ide-iops.c)
      o byte -> u8
      o update to new ide-dma api
      o driver->end_request changes
      o various style cleanups
      o remove ALTSTAT_SCREW_UP stuff
      o WAIT_CMD -> WAIT_WORSTCASE interrupt timeout
      o add (commented out) various ata commands to match 2.4.20-pre5-ac
      o move the flagged_* interrupt handlers
      e7e95e71
    • Jens Axboe's avatar
      ide-tape update: · fcb417df
      Jens Axboe authored
      o byte -> u8
      o remove various register structs, it's ide general now
      o ide-iops changes
      o various style cleanups
      o update to new ide-dma api
      o remove idetape_do_end_request(), dupe of ide core helper
      o ->reinit to ->attach changes
      fcb417df
    • Jens Axboe's avatar
      ide-proc updates: · 30a57421
      Jens Axboe authored
      o remove low level driver ifdef mess
      o allow "host" to register into proc list instead
      30a57421
    • Jens Axboe's avatar
      ide-probe updates: · 61b238c6
      Jens Axboe authored
      o byte -> u8
      o drive_is_flashcard() moved to probe code
      o ide-iops changes
      o various cleanups
      o remove useless ide_lock debug stuff
      61b238c6
    • Jens Axboe's avatar
      ide-pnp updates: · 9fd68c4e
      Jens Axboe authored
      o remove *_FUNC abstraction
      o remove MODULE ifdefs
      o small style changes
      9fd68c4e
    • Jens Axboe's avatar
      new pci init code · 5023a3cb
      Jens Axboe authored
      5023a3cb
    • Jens Axboe's avatar
      ide-geometry updates: · edc5903b
      Jens Axboe authored
      o byte -> u8
      o small style cleanups
      edc5903b
    • Jens Axboe's avatar
      ide-floppy updates: · 0037ab50
      Jens Axboe authored
      o byte -> u8
      o remove various status register definitions, these are now ata (atapi)
        generic
      o ide-iops changes
      o remove idefloppy_end_request(), dupe of ide core helper
      o driver->end_request changes
      o lots of style cleanups
      o update to new dma interface
      o ->reinit to ->attach updates
      0037ab50
    • Jens Axboe's avatar
      ide-dma updates: · 0c5c55d1
      Jens Axboe authored
      o ide-iops changes
      o driver->end_request and ide_end_request changes
      o ->dmaproc() is now split into separate functions
      o work on new mmio adapters
      o init cleanup
      0c5c55d1
    • Jens Axboe's avatar
      ide-disk updates: · f89f8b52
      Jens Axboe authored
      o ide-iops changes
      o ide_end_request() now takes a nr_sectors argument, driver->end_request
        as well
      o remove idedisk_end_request(), it's a duplicate of ide core helper
      o byte -> u8
      o ->reinit is now ->attach (to match 2.4.20-pre5-ac)
      f89f8b52
    • Jens Axboe's avatar
      ide-cd updates: · ea185cb3
      Jens Axboe authored
      o kill silly ide_cdrom_end_reuquest() function, it only duplicates
        ide core code.
      o use the atapi error, status, ireason, etc types
      o use ide-iops functions, not IN_BYTE etc
      o use blk_fs_request() where appropriate
      o limit retries on MEDIUM_ERROR sense key
      o use new ide_end_request() that handles nr_sectors
      o rename ->reinit to ->attach
      ea185cb3