* 2.5.72-mm1 @ 2003-06-17 8:40 ` Andrew Morton 0 siblings, 0 replies; 4+ messages in thread From: Andrew Morton @ 2003-06-17 8:40 UTC (permalink / raw) To: linux-kernel, linux-mm ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.72/2.5.72-mm1/ . A fairly large batch of changes in the block request allocation, batching and throttling code. To address worst-case latency, improve throughput in benchmarky loads, etc. . The memory debugging patch which unmaps pages and large slab objects from the kernel virtual address space is back. Changes since 2.5.71-mm1: -yenta-unload-oops-fix.patch -rpc-depopulate-fix.patch Merged +ppc64-fixes-2.patch PPC64 touchups from Anton +pcmcia-detect-fix.patch CardSevices fix +1-kmem-cache-destroy.patch Tidy up slab error message handling. +2-slab-poison-fix.patch Corectly poison uninitialised memory with 0x5a5a5a5a +3-unmap-page-debugging.patch New version of Manfred's unmap-unused-kernel-pages debug patch +sysv-semundo-fixes.patch sysv IPC fixes +raw-devfs-support.patch devfs support for /dev/raw/* +misc5.patch Misc fixes +scroll-distance-fix.patch Support console scrolling of more then +127/-128 rows +generic-io-contexts.patch +blk-request-batching.patch +get_io_context-fix.patch +blk-allocation-commentary.patch +blk-batching-throttle-fix.patch Block request batching fairness and efficiency. +io_submit_one-EINVAL-fix.patch AIO error handling fix. -aio-poll.patch Dropped: apparently incorrect and obviously not being tested. +lock_buffer_wq-fix.patch buffer locking BUG fix +unuse_mm-locked.patch Might fix some problems with the new AIO patches. +time-goes-backwards.patch Demonstrate that do_gettimeofday() tends to leap backwards 45 seconds. +keventd-thread-cleanup.patch kmod fixes +skip-apic-ids-on-boot.patch Ability to disable specific APICs +AT_SECURE-auxv-entry.patch Security stuff All 176 patches: mm.patch add -mmN to EXTRAVERSION kgdb-ga.patch kgdb stub for ia32 (George Anzinger's one) kgdb-use-ggdb.patch HZ-100.patch config_spinline.patch uninline spinlocks for profiling accuracy. ppc64-fixes-2.patch Maek ppc64 compile ppc64-bat-initialisation-fix.patch ppc64: BAT initialisation fix ppc64-pci-update.patch ppc64-reloc_hide.patch ppc64-semaphore-reimplementation.patch ppc64: use the ia32 semaphore implementation sym-do-160.patch make the SYM driver do 160 MB/sec x86_64-fixes.patch x86_64 fixes irqreturn-snd-via-fix.patch via sound irqreturn fix config-PAGE_OFFSET.patch Configurable kenrel/user memory split pcmcia-detect-fix.patch pcmcia detection fix lru_cache_add-check.patch lru_cache_add debug check delay-ksoftirqd-fallback.patch Try harded in IRQ context before falling back to ksoftirqd fb-image-depth-fix.patch fbdev image depth fix ds-09-vicam-usercopy-fix.patch vicam usercopy fix buffer-debug.patch buffer.c debugging show_stack-cleanup.patch show_stack() portability and cleanup patch ppc64-show_stack.patch e100-use-after-free-fix.patch statfs64-3.patch Add system calls statfs64 and fstatfs64 statfs64-3-fixes-1.patch 1-kmem-cache-destroy.patch kmem_cache_destroy(): use slab_error() 2-slab-poison-fix.patch slab poisoning fix 3-unmap-page-debugging.patch page unmappng debug patch VM_RESERVED-check.patch VM_RESERVED check rcu-stats.patch RCU statistics reporting sysv-semundo-fixes.patch sysv semundo raw-devfs-support.patch raw.c devfs support ide_setting_sem-fix.patch hugetlbfs-size-inodes-mount-option.patch hugetlbfs: specify size & inodes at mount reslabify-pgds-and-pmds.patch re-slabify i386 pgd's and pmd's misc5.patch misc fixes scroll-distance-fix.patch Premit big console scrolls linux-isp.patch isp-update-1.patch isp-remove-pci_detect.patch list_del-debug.patch list_del debug check airo-schedule-fix.patch airo.c: don't sleep in atomic regions resurrect-batch_requests.patch bring back the batch_requests function kblockd.patch Create `kblockd' workqueue cfq-infrastructure.patch elevator-completion-api.patch elevator completion API as-iosched.patch anticipatory I/O scheduler as-proc-read-write.patch AS: pgbench improvement as-discrete-read-fifo-batches.patch AS: discrete read fifo batches as-sync-async.patch AS sync/async batches as-hash-removal-fix.patch AS: hash removal fix as-jumbo-patch-for-scsi.patch AS jumbo patch (for SCSI and TCQ) as-stupid.patch AS: fix stupid thinko as-no-batch-antic-limit.patch AS: no batch-antic-limit as-autotune-write-batches.patch AS: autotune write batches as-div-by-zero-fix.patch AS: divide by zero fix as-more-HZ.patch AS: more HZ != 1000 fixes as-even-more-write-batch-tuning.patch AS: update_write_batch tuning as-locking.patch AS locking as-HZ.patch AS HZ fixes as-double-free-and-debug.patch AS: fix a leak + more debugging as-fix-seek-estimation.patch AS: maybe repair performance drop of random read O_DIRECT as-fix-seeky-loads.patch AS: fix IBM's seek load unplug-use-kblockd.patch Use kblockd for running request queues cfq-2.patch CFQ scheduler, #2 CFQ: update to rq-dyn API cfq-hash-removal-fix.patch CFQ: hash removal fix cfq-list_del-fix.patch CFQ: empty the queuelist per-queue-nr_requests.patch per queue nr_requests blk-invert-watermarks.patch blk_congestion_wait threshold cleanup blk-as-hint.patch blk-as-hint get_request_wait-oom-fix.patch handle OOM in get_request_wait(). blk-fair-batches.patch blk-fair-batches blk-fair-batches-2.patch blk fair batches #2 generic-io-contexts.patch generic io contexts blk-request-batching.patch block request batching get_io_context-fix.patch get_io_context fixes blk-allocation-commentary.patch block allocation comments blk-batching-throttle-fix.patch blk batch requests fix print-build-options-on-oops.patch print a few config options on oops mmap-prefault.patch prefault of executable mmaps bio-debug-trap.patch BIO debugging patch sound-irq-hack.patch show_task-free-stack-fix.patch show_task() fix and cleanup put_task_struct-debug.patch ia32-mknod64.patch mknod64 for ia32 ext2-64-bit-special-inodes.patch ext2: support for 64-bit device nodes ext3-64-bit-special-inodes.patch ext3: support for 64-bit device nodes 64-bit-dev_t-kdev_t.patch 64-bit dev_t and kdev_t oops-dump-preceding-code.patch i386 oops output: dump preceding code lockmeter.patch ext3-no-bkl.patch ext3: move lock_kernel() down into the JBD layer. journal_get_write_access-speedup.patch JBD: journal_get_write_access() speedup ext3-concurrent-block-inode-allocation.patch ext3: concurrent block/inode allocation Fix orlov allocator boundary case ext3-concurrent-block-allocation-hashed.patch ext3: scalable counters and locks fix ext3 inode allocator race jbd-010-b_committed_data-race-fix.patch JBD: fix race over access to b_committed_data jbd-020-locking-schema.patch JBD: plan JBD locking schema jbd-030-remove-splice_lock.patch JBD: remove jh_splice_lock jbd-040-journal_add_journal_head-locking.patch JBD: fine-grain journal_add_journal_head locking jbd-045-rename-journal_unlock_journal_head.patch JBD: rename journal_unlock_journal_head to journal_put_journal_head jbd-050-b_frozen_data-locking.patch JBD: Finish protection of journal_head.b_frozen_data jbd-060-b_committed_data-locking.patch JBD: implement b_committed_data locking jbd-070-b_transaction-locking.patch JBD: implement b_transaction locking rules jbd-080-b_next_transaction-locking.patch JBD: Implement b_next_transaction locking rules jbd-090-b_tnext-locking.patch JBD: b_tnext locking jbd-100-remove-journal_datalist_lock.patch JBD: remove journal_datalist_lock jbd-110-t_nr_buffers-locking.patch JBD: t_nr_buffers locking jbd-120-t_updates-locking.patch JBD: t_updates locking jbd-130-t_outstanding_credits-locking.patch JBD: implement t_outstanding_credits locking jbd-140-t_jcb-locking.patch JBD: implement t_jcb locking jbd-150-j_barrier_count-locking.patch JBD: implement j_barrier_count locking jbd-160-j_running_transaction-locking.patch JBD: implement j_running_transaction locking jbd-170-j_committing_transaction-locking.patch JBD: implement j_committing_transaction locking jbd-180-j_checkpoint_transactions.patch JBD: implement j_checkpoint_transactions locking jbd-190-j_head-locking.patch JBD: implement journal->j_head locking jbd-200-j_tail-locking.patch JBD: implement journal->j_tail locking jbd-210-j_free-locking.patch JBD: implement journal->j_free locking jbd-220-j_commit_sequence-locking.patch JBD: implement journal->j_commit_sequence locking jbd-230-j_commit_request-locking.patch JBD: implement j_commit_request locking jbd-240-dual-revoke-tables.patch JBD: implement dual revoke tables. jbd-250-remove-sleep_on.patch JBD: remove remaining sleep_on()s jbd-300-remove-lock_kernel.patch JBD: remove lock_kernel() jbd-400-remove-lock_journal.patch JBD: remove lock_journal() jbd-510-h_credits-fix.patch JBD: journal_release_buffer: handle credits fix jbd-520-journal_unmap_buffer-race.patch JBD: journal_unmap_buffer race fix jbd-530-walk_page_buffers-race-fix.patch ext3: ext3_writepage race fix jbd-540-journal_try_to_free_buffers-race-fix.patch JBD: buffer freeing non-race comment jbd-550-locking-checks.patch JBD: add some locking assertions jbd-570-transaction-state-locking.patch JBD: additional transaction shutdown locking jbd-580-log_start_commit-race-fix.patch JBD: fix log_start_commit race jbd-590-do_get_write_access-speedup.patch JBD: do_get_write_access() speedup ext3-010-fix-journalled-data.patch ext3: fix data=journal mode ext3-035-journal_try_to_free_buffers-race-fix.patch ext3-040-recursive-ext3_write_inode-check.patch ext3: add a dump_stack() ext3-050-ioctl-transaction-leak.patch ext3: fix error-path handle leak ext3-070-xattr-clone-leak-fix.patch Fix leak in ext3_acl_chmod() ext3-080-remove-block-inode-count-message.patch ext3: remove mount-time diagnostic messages jbd-600-journal_dirty_metadata-speedup.patch JBD: journal_dirty_metadata() speedup jbd-610-journal_dirty_metadata-diags.patch JBD: journal_dirty_metadata diagnostics jbd-620-commit-vs-start-race-fix.patch JBD: fix race between journal_commit_transaction and start_this_handle ext3-090-journalled-writepage-vs-truncate-fix.patch ext3: fix data=journal for small blocksize jbd-630-remove-j_commit_timer_active.patch JBD: remove j_commit_timer_active jbd-650-truncate-ordered-pages.patch ext3: explicitly free truncated pages jbd-660-log_do_checkpoint-fix.patch JBD: log_do_checkpoint() locking fixes jbd-670-log_start_commit-locking-fix.patch JBD: fix locking around log_start_commit() jbd-680-log_wait_for_space-fix.patch JBD: hold onto j_state_lock after log_wait_for_space(). invalidate_mmap_range.patch Interface to invalidate regions of mmaps aio-01-retry.patch AIO: Core retry infrastructure io_submit_one-EINVAL-fix.patch Fix aio process hang on EINVAL aio-02-lockpage_wq.patch AIO: Async page wait aio-03-fs_read.patch AIO: Filesystem aio read aio-04-buffer_wq.patch AIO: Async buffer wait aio-05-fs_write.patch AIO: Filesystem aio write aio-05-fs_write-fix.patch aio-06-bread_wq.patch AIO: Async block read aio-06-bread_wq-fix.patch aio-07-ext2getblk_wq.patch AIO: Async get block for ext2 O_SYNC-speedup-2.patch speed up O_SYNC writes aio-09-o_sync.patch aio O_SYNC aio-10-BUG-fix.patch AIO: fix a BUG aio-11-workqueue-flush.patch AIO: flush workqueues before destroying ioctx'es aio-12-readahead.patch AIO: readahead fixes lock_buffer_wq-fix.patch lock_buffer_wq fix unuse_mm-locked.patch AIO: hold the context lock across unuse_mm vfsmount_lock.patch From: Maneesh Soni <maneesh@in.ibm.com> Subject: [patch 1/2] vfsmount_lock syncppp-locking-fix.patch syncppp locking fix sched-hot-balancing-fix.patch fix for CPU scheduler load distribution truncate-pagefault-race-fix.patch Fix vmtruncate race and distributed filesystem race remove-swapper_inode.patch remove swapper_inode sync-write-more-pages.patch dirty inode writeback fix workqueue-reorg-fix.patch workqueue.c subtle fix and core extraction task_struct-use-after-free-fix.patch proc_pid_lookup use-after-free fix sleepometer.patch sleep instrumentation time-goes-backwards.patch demonstrate do_gettimeofday() going backwards keventd-thread-cleanup.patch Fix kmod return value skip-apic-ids-on-boot.patch skip apicids on boot AT_SECURE-auxv-entry.patch AT_SECURE auxv entry ^ permalink raw reply [flat|nested] 4+ messages in thread
* 2.5.72-mm1 @ 2003-06-17 8:40 ` Andrew Morton 0 siblings, 0 replies; 4+ messages in thread From: Andrew Morton @ 2003-06-17 8:40 UTC (permalink / raw) To: linux-kernel, linux-mm ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.72/2.5.72-mm1/ . A fairly large batch of changes in the block request allocation, batching and throttling code. To address worst-case latency, improve throughput in benchmarky loads, etc. . The memory debugging patch which unmaps pages and large slab objects from the kernel virtual address space is back. Changes since 2.5.71-mm1: -yenta-unload-oops-fix.patch -rpc-depopulate-fix.patch Merged +ppc64-fixes-2.patch PPC64 touchups from Anton +pcmcia-detect-fix.patch CardSevices fix +1-kmem-cache-destroy.patch Tidy up slab error message handling. +2-slab-poison-fix.patch Corectly poison uninitialised memory with 0x5a5a5a5a +3-unmap-page-debugging.patch New version of Manfred's unmap-unused-kernel-pages debug patch +sysv-semundo-fixes.patch sysv IPC fixes +raw-devfs-support.patch devfs support for /dev/raw/* +misc5.patch Misc fixes +scroll-distance-fix.patch Support console scrolling of more then +127/-128 rows +generic-io-contexts.patch +blk-request-batching.patch +get_io_context-fix.patch +blk-allocation-commentary.patch +blk-batching-throttle-fix.patch Block request batching fairness and efficiency. +io_submit_one-EINVAL-fix.patch AIO error handling fix. -aio-poll.patch Dropped: apparently incorrect and obviously not being tested. +lock_buffer_wq-fix.patch buffer locking BUG fix +unuse_mm-locked.patch Might fix some problems with the new AIO patches. +time-goes-backwards.patch Demonstrate that do_gettimeofday() tends to leap backwards 45 seconds. +keventd-thread-cleanup.patch kmod fixes +skip-apic-ids-on-boot.patch Ability to disable specific APICs +AT_SECURE-auxv-entry.patch Security stuff All 176 patches: mm.patch add -mmN to EXTRAVERSION kgdb-ga.patch kgdb stub for ia32 (George Anzinger's one) kgdb-use-ggdb.patch HZ-100.patch config_spinline.patch uninline spinlocks for profiling accuracy. ppc64-fixes-2.patch Maek ppc64 compile ppc64-bat-initialisation-fix.patch ppc64: BAT initialisation fix ppc64-pci-update.patch ppc64-reloc_hide.patch ppc64-semaphore-reimplementation.patch ppc64: use the ia32 semaphore implementation sym-do-160.patch make the SYM driver do 160 MB/sec x86_64-fixes.patch x86_64 fixes irqreturn-snd-via-fix.patch via sound irqreturn fix config-PAGE_OFFSET.patch Configurable kenrel/user memory split pcmcia-detect-fix.patch pcmcia detection fix lru_cache_add-check.patch lru_cache_add debug check delay-ksoftirqd-fallback.patch Try harded in IRQ context before falling back to ksoftirqd fb-image-depth-fix.patch fbdev image depth fix ds-09-vicam-usercopy-fix.patch vicam usercopy fix buffer-debug.patch buffer.c debugging show_stack-cleanup.patch show_stack() portability and cleanup patch ppc64-show_stack.patch e100-use-after-free-fix.patch statfs64-3.patch Add system calls statfs64 and fstatfs64 statfs64-3-fixes-1.patch 1-kmem-cache-destroy.patch kmem_cache_destroy(): use slab_error() 2-slab-poison-fix.patch slab poisoning fix 3-unmap-page-debugging.patch page unmappng debug patch VM_RESERVED-check.patch VM_RESERVED check rcu-stats.patch RCU statistics reporting sysv-semundo-fixes.patch sysv semundo raw-devfs-support.patch raw.c devfs support ide_setting_sem-fix.patch hugetlbfs-size-inodes-mount-option.patch hugetlbfs: specify size & inodes at mount reslabify-pgds-and-pmds.patch re-slabify i386 pgd's and pmd's misc5.patch misc fixes scroll-distance-fix.patch Premit big console scrolls linux-isp.patch isp-update-1.patch isp-remove-pci_detect.patch list_del-debug.patch list_del debug check airo-schedule-fix.patch airo.c: don't sleep in atomic regions resurrect-batch_requests.patch bring back the batch_requests function kblockd.patch Create `kblockd' workqueue cfq-infrastructure.patch elevator-completion-api.patch elevator completion API as-iosched.patch anticipatory I/O scheduler as-proc-read-write.patch AS: pgbench improvement as-discrete-read-fifo-batches.patch AS: discrete read fifo batches as-sync-async.patch AS sync/async batches as-hash-removal-fix.patch AS: hash removal fix as-jumbo-patch-for-scsi.patch AS jumbo patch (for SCSI and TCQ) as-stupid.patch AS: fix stupid thinko as-no-batch-antic-limit.patch AS: no batch-antic-limit as-autotune-write-batches.patch AS: autotune write batches as-div-by-zero-fix.patch AS: divide by zero fix as-more-HZ.patch AS: more HZ != 1000 fixes as-even-more-write-batch-tuning.patch AS: update_write_batch tuning as-locking.patch AS locking as-HZ.patch AS HZ fixes as-double-free-and-debug.patch AS: fix a leak + more debugging as-fix-seek-estimation.patch AS: maybe repair performance drop of random read O_DIRECT as-fix-seeky-loads.patch AS: fix IBM's seek load unplug-use-kblockd.patch Use kblockd for running request queues cfq-2.patch CFQ scheduler, #2 CFQ: update to rq-dyn API cfq-hash-removal-fix.patch CFQ: hash removal fix cfq-list_del-fix.patch CFQ: empty the queuelist per-queue-nr_requests.patch per queue nr_requests blk-invert-watermarks.patch blk_congestion_wait threshold cleanup blk-as-hint.patch blk-as-hint get_request_wait-oom-fix.patch handle OOM in get_request_wait(). blk-fair-batches.patch blk-fair-batches blk-fair-batches-2.patch blk fair batches #2 generic-io-contexts.patch generic io contexts blk-request-batching.patch block request batching get_io_context-fix.patch get_io_context fixes blk-allocation-commentary.patch block allocation comments blk-batching-throttle-fix.patch blk batch requests fix print-build-options-on-oops.patch print a few config options on oops mmap-prefault.patch prefault of executable mmaps bio-debug-trap.patch BIO debugging patch sound-irq-hack.patch show_task-free-stack-fix.patch show_task() fix and cleanup put_task_struct-debug.patch ia32-mknod64.patch mknod64 for ia32 ext2-64-bit-special-inodes.patch ext2: support for 64-bit device nodes ext3-64-bit-special-inodes.patch ext3: support for 64-bit device nodes 64-bit-dev_t-kdev_t.patch 64-bit dev_t and kdev_t oops-dump-preceding-code.patch i386 oops output: dump preceding code lockmeter.patch ext3-no-bkl.patch ext3: move lock_kernel() down into the JBD layer. journal_get_write_access-speedup.patch JBD: journal_get_write_access() speedup ext3-concurrent-block-inode-allocation.patch ext3: concurrent block/inode allocation Fix orlov allocator boundary case ext3-concurrent-block-allocation-hashed.patch ext3: scalable counters and locks fix ext3 inode allocator race jbd-010-b_committed_data-race-fix.patch JBD: fix race over access to b_committed_data jbd-020-locking-schema.patch JBD: plan JBD locking schema jbd-030-remove-splice_lock.patch JBD: remove jh_splice_lock jbd-040-journal_add_journal_head-locking.patch JBD: fine-grain journal_add_journal_head locking jbd-045-rename-journal_unlock_journal_head.patch JBD: rename journal_unlock_journal_head to journal_put_journal_head jbd-050-b_frozen_data-locking.patch JBD: Finish protection of journal_head.b_frozen_data jbd-060-b_committed_data-locking.patch JBD: implement b_committed_data locking jbd-070-b_transaction-locking.patch JBD: implement b_transaction locking rules jbd-080-b_next_transaction-locking.patch JBD: Implement b_next_transaction locking rules jbd-090-b_tnext-locking.patch JBD: b_tnext locking jbd-100-remove-journal_datalist_lock.patch JBD: remove journal_datalist_lock jbd-110-t_nr_buffers-locking.patch JBD: t_nr_buffers locking jbd-120-t_updates-locking.patch JBD: t_updates locking jbd-130-t_outstanding_credits-locking.patch JBD: implement t_outstanding_credits locking jbd-140-t_jcb-locking.patch JBD: implement t_jcb locking jbd-150-j_barrier_count-locking.patch JBD: implement j_barrier_count locking jbd-160-j_running_transaction-locking.patch JBD: implement j_running_transaction locking jbd-170-j_committing_transaction-locking.patch JBD: implement j_committing_transaction locking jbd-180-j_checkpoint_transactions.patch JBD: implement j_checkpoint_transactions locking jbd-190-j_head-locking.patch JBD: implement journal->j_head locking jbd-200-j_tail-locking.patch JBD: implement journal->j_tail locking jbd-210-j_free-locking.patch JBD: implement journal->j_free locking jbd-220-j_commit_sequence-locking.patch JBD: implement journal->j_commit_sequence locking jbd-230-j_commit_request-locking.patch JBD: implement j_commit_request locking jbd-240-dual-revoke-tables.patch JBD: implement dual revoke tables. jbd-250-remove-sleep_on.patch JBD: remove remaining sleep_on()s jbd-300-remove-lock_kernel.patch JBD: remove lock_kernel() jbd-400-remove-lock_journal.patch JBD: remove lock_journal() jbd-510-h_credits-fix.patch JBD: journal_release_buffer: handle credits fix jbd-520-journal_unmap_buffer-race.patch JBD: journal_unmap_buffer race fix jbd-530-walk_page_buffers-race-fix.patch ext3: ext3_writepage race fix jbd-540-journal_try_to_free_buffers-race-fix.patch JBD: buffer freeing non-race comment jbd-550-locking-checks.patch JBD: add some locking assertions jbd-570-transaction-state-locking.patch JBD: additional transaction shutdown locking jbd-580-log_start_commit-race-fix.patch JBD: fix log_start_commit race jbd-590-do_get_write_access-speedup.patch JBD: do_get_write_access() speedup ext3-010-fix-journalled-data.patch ext3: fix data=journal mode ext3-035-journal_try_to_free_buffers-race-fix.patch ext3-040-recursive-ext3_write_inode-check.patch ext3: add a dump_stack() ext3-050-ioctl-transaction-leak.patch ext3: fix error-path handle leak ext3-070-xattr-clone-leak-fix.patch Fix leak in ext3_acl_chmod() ext3-080-remove-block-inode-count-message.patch ext3: remove mount-time diagnostic messages jbd-600-journal_dirty_metadata-speedup.patch JBD: journal_dirty_metadata() speedup jbd-610-journal_dirty_metadata-diags.patch JBD: journal_dirty_metadata diagnostics jbd-620-commit-vs-start-race-fix.patch JBD: fix race between journal_commit_transaction and start_this_handle ext3-090-journalled-writepage-vs-truncate-fix.patch ext3: fix data=journal for small blocksize jbd-630-remove-j_commit_timer_active.patch JBD: remove j_commit_timer_active jbd-650-truncate-ordered-pages.patch ext3: explicitly free truncated pages jbd-660-log_do_checkpoint-fix.patch JBD: log_do_checkpoint() locking fixes jbd-670-log_start_commit-locking-fix.patch JBD: fix locking around log_start_commit() jbd-680-log_wait_for_space-fix.patch JBD: hold onto j_state_lock after log_wait_for_space(). invalidate_mmap_range.patch Interface to invalidate regions of mmaps aio-01-retry.patch AIO: Core retry infrastructure io_submit_one-EINVAL-fix.patch Fix aio process hang on EINVAL aio-02-lockpage_wq.patch AIO: Async page wait aio-03-fs_read.patch AIO: Filesystem aio read aio-04-buffer_wq.patch AIO: Async buffer wait aio-05-fs_write.patch AIO: Filesystem aio write aio-05-fs_write-fix.patch aio-06-bread_wq.patch AIO: Async block read aio-06-bread_wq-fix.patch aio-07-ext2getblk_wq.patch AIO: Async get block for ext2 O_SYNC-speedup-2.patch speed up O_SYNC writes aio-09-o_sync.patch aio O_SYNC aio-10-BUG-fix.patch AIO: fix a BUG aio-11-workqueue-flush.patch AIO: flush workqueues before destroying ioctx'es aio-12-readahead.patch AIO: readahead fixes lock_buffer_wq-fix.patch lock_buffer_wq fix unuse_mm-locked.patch AIO: hold the context lock across unuse_mm vfsmount_lock.patch From: Maneesh Soni <maneesh@in.ibm.com> Subject: [patch 1/2] vfsmount_lock syncppp-locking-fix.patch syncppp locking fix sched-hot-balancing-fix.patch fix for CPU scheduler load distribution truncate-pagefault-race-fix.patch Fix vmtruncate race and distributed filesystem race remove-swapper_inode.patch remove swapper_inode sync-write-more-pages.patch dirty inode writeback fix workqueue-reorg-fix.patch workqueue.c subtle fix and core extraction task_struct-use-after-free-fix.patch proc_pid_lookup use-after-free fix sleepometer.patch sleep instrumentation time-goes-backwards.patch demonstrate do_gettimeofday() going backwards keventd-thread-cleanup.patch Fix kmod return value skip-apic-ids-on-boot.patch skip apicids on boot AT_SECURE-auxv-entry.patch AT_SECURE auxv entry -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.5.72-mm1 2003-06-17 8:40 ` 2.5.72-mm1 Andrew Morton @ 2003-06-18 21:24 ` William Lee Irwin III -1 siblings, 0 replies; 4+ messages in thread From: William Lee Irwin III @ 2003-06-18 21:24 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Tue, Jun 17, 2003 at 01:40:44AM -0700, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.72/2.5.72-mm1/ > . A fairly large batch of changes in the block request allocation, > batching and throttling code. To address worst-case latency, improve > throughput in benchmarky loads, etc. > . The memory debugging patch which unmaps pages and large slab objects > from the kernel virtual address space is back. The following patch implements node-local memory allocation support for hugetlb. Successfully tested on NUMA-Q. -- wli diff -prauN linux-2.5.72/arch/i386/mm/hugetlbpage.c htlb-2.5.72-1/arch/i386/mm/hugetlbpage.c --- linux-2.5.72/arch/i386/mm/hugetlbpage.c 2003-06-16 21:20:22.000000000 -0700 +++ htlb-2.5.72-1/arch/i386/mm/hugetlbpage.c 2003-06-17 14:04:05.000000000 -0700 @@ -24,9 +24,41 @@ static long htlbpagemem; int htlbpage_max; static long htlbzone_pages; -static LIST_HEAD(htlbpage_freelist); +static struct list_head hugepage_freelists[MAX_NUMNODES]; static spinlock_t htlbpage_lock = SPIN_LOCK_UNLOCKED; +static void enqueue_huge_page(struct page *page) +{ + list_add(&page->list, + &hugepage_freelists[page_zone(page)->zone_pgdat->node_id]); +} + +static struct page *dequeue_huge_page(void) +{ + int nid = numa_node_id(); + struct page *page = NULL; + + if (list_empty(&hugepage_freelists[nid])) { + for (nid = 0; nid < MAX_NUMNODES; ++nid) + if (!list_empty(&hugepage_freelists[nid])) + break; + } + if (nid >= 0 && nid < MAX_NUMNODES && !list_empty(&hugepage_freelists[nid])) { + page = list_entry(hugepage_freelists[nid].next, struct page, list); + list_del(&page->list); + } + return page; +} + +static struct page *alloc_fresh_huge_page(void) +{ + static int nid = 0; + struct page *page; + page = alloc_pages_node(nid, GFP_HIGHUSER, HUGETLB_PAGE_ORDER); + nid = (nid + 1) % numnodes; + return page; +} + void free_huge_page(struct page *page); static struct page *alloc_hugetlb_page(void) @@ -35,13 +67,11 @@ static struct page *alloc_hugetlb_page(v struct page *page; spin_lock(&htlbpage_lock); - if (list_empty(&htlbpage_freelist)) { + page = dequeue_huge_page(); + if (!page) { spin_unlock(&htlbpage_lock); return NULL; } - - page = list_entry(htlbpage_freelist.next, struct page, list); - list_del(&page->list); htlbpagemem--; spin_unlock(&htlbpage_lock); set_page_count(page, 1); @@ -253,7 +283,7 @@ void free_huge_page(struct page *page) INIT_LIST_HEAD(&page->list); spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); htlbpagemem++; spin_unlock(&htlbpage_lock); } @@ -369,7 +399,8 @@ int try_to_free_low(int count) map = NULL; spin_lock(&htlbpage_lock); - list_for_each(p, &htlbpage_freelist) { + /* all lowmem is on node 0 */ + list_for_each(p, &hugepage_freelists[0]) { if (map) { list_del(&map->list); update_and_free_page(map); @@ -406,11 +437,11 @@ int set_hugetlb_mem_size(int count) return (int)htlbzone_pages; if (lcount > 0) { /* Increase the mem size. */ while (lcount--) { - page = alloc_pages(__GFP_HIGHMEM, HUGETLB_PAGE_ORDER); + page = alloc_fresh_huge_page(); if (page == NULL) break; spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); htlbpagemem++; htlbzone_pages++; spin_unlock(&htlbpage_lock); @@ -451,12 +482,15 @@ static int __init hugetlb_init(void) int i; struct page *page; + for (i = 0; i < MAX_NUMNODES; ++i) + INIT_LIST_HEAD(&hugepage_freelists[i]); + for (i = 0; i < htlbpage_max; ++i) { - page = alloc_pages(__GFP_HIGHMEM, HUGETLB_PAGE_ORDER); + page = alloc_fresh_huge_page(); if (!page) break; spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); spin_unlock(&htlbpage_lock); } htlbpage_max = htlbpagemem = htlbzone_pages = i; ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.5.72-mm1 @ 2003-06-18 21:24 ` William Lee Irwin III 0 siblings, 0 replies; 4+ messages in thread From: William Lee Irwin III @ 2003-06-18 21:24 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Tue, Jun 17, 2003 at 01:40:44AM -0700, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.72/2.5.72-mm1/ > . A fairly large batch of changes in the block request allocation, > batching and throttling code. To address worst-case latency, improve > throughput in benchmarky loads, etc. > . The memory debugging patch which unmaps pages and large slab objects > from the kernel virtual address space is back. The following patch implements node-local memory allocation support for hugetlb. Successfully tested on NUMA-Q. -- wli diff -prauN linux-2.5.72/arch/i386/mm/hugetlbpage.c htlb-2.5.72-1/arch/i386/mm/hugetlbpage.c --- linux-2.5.72/arch/i386/mm/hugetlbpage.c 2003-06-16 21:20:22.000000000 -0700 +++ htlb-2.5.72-1/arch/i386/mm/hugetlbpage.c 2003-06-17 14:04:05.000000000 -0700 @@ -24,9 +24,41 @@ static long htlbpagemem; int htlbpage_max; static long htlbzone_pages; -static LIST_HEAD(htlbpage_freelist); +static struct list_head hugepage_freelists[MAX_NUMNODES]; static spinlock_t htlbpage_lock = SPIN_LOCK_UNLOCKED; +static void enqueue_huge_page(struct page *page) +{ + list_add(&page->list, + &hugepage_freelists[page_zone(page)->zone_pgdat->node_id]); +} + +static struct page *dequeue_huge_page(void) +{ + int nid = numa_node_id(); + struct page *page = NULL; + + if (list_empty(&hugepage_freelists[nid])) { + for (nid = 0; nid < MAX_NUMNODES; ++nid) + if (!list_empty(&hugepage_freelists[nid])) + break; + } + if (nid >= 0 && nid < MAX_NUMNODES && !list_empty(&hugepage_freelists[nid])) { + page = list_entry(hugepage_freelists[nid].next, struct page, list); + list_del(&page->list); + } + return page; +} + +static struct page *alloc_fresh_huge_page(void) +{ + static int nid = 0; + struct page *page; + page = alloc_pages_node(nid, GFP_HIGHUSER, HUGETLB_PAGE_ORDER); + nid = (nid + 1) % numnodes; + return page; +} + void free_huge_page(struct page *page); static struct page *alloc_hugetlb_page(void) @@ -35,13 +67,11 @@ static struct page *alloc_hugetlb_page(v struct page *page; spin_lock(&htlbpage_lock); - if (list_empty(&htlbpage_freelist)) { + page = dequeue_huge_page(); + if (!page) { spin_unlock(&htlbpage_lock); return NULL; } - - page = list_entry(htlbpage_freelist.next, struct page, list); - list_del(&page->list); htlbpagemem--; spin_unlock(&htlbpage_lock); set_page_count(page, 1); @@ -253,7 +283,7 @@ void free_huge_page(struct page *page) INIT_LIST_HEAD(&page->list); spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); htlbpagemem++; spin_unlock(&htlbpage_lock); } @@ -369,7 +399,8 @@ int try_to_free_low(int count) map = NULL; spin_lock(&htlbpage_lock); - list_for_each(p, &htlbpage_freelist) { + /* all lowmem is on node 0 */ + list_for_each(p, &hugepage_freelists[0]) { if (map) { list_del(&map->list); update_and_free_page(map); @@ -406,11 +437,11 @@ int set_hugetlb_mem_size(int count) return (int)htlbzone_pages; if (lcount > 0) { /* Increase the mem size. */ while (lcount--) { - page = alloc_pages(__GFP_HIGHMEM, HUGETLB_PAGE_ORDER); + page = alloc_fresh_huge_page(); if (page == NULL) break; spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); htlbpagemem++; htlbzone_pages++; spin_unlock(&htlbpage_lock); @@ -451,12 +482,15 @@ static int __init hugetlb_init(void) int i; struct page *page; + for (i = 0; i < MAX_NUMNODES; ++i) + INIT_LIST_HEAD(&hugepage_freelists[i]); + for (i = 0; i < htlbpage_max; ++i) { - page = alloc_pages(__GFP_HIGHMEM, HUGETLB_PAGE_ORDER); + page = alloc_fresh_huge_page(); if (!page) break; spin_lock(&htlbpage_lock); - list_add(&page->list, &htlbpage_freelist); + enqueue_huge_page(page); spin_unlock(&htlbpage_lock); } htlbpage_max = htlbpagemem = htlbzone_pages = i; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-06-18 21:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-06-17 8:40 2.5.72-mm1 Andrew Morton 2003-06-17 8:40 ` 2.5.72-mm1 Andrew Morton 2003-06-18 21:24 ` 2.5.72-mm1 William Lee Irwin III 2003-06-18 21:24 ` 2.5.72-mm1 William Lee Irwin III
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.