linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* 2.5.56-mm1
@ 2003-01-11 22:43 Andrew Morton
  2003-01-11 22:57 ` 2.5.56-mm1 Jeff Garzik
  2003-01-13 10:41 ` 2.5.56-mm1 William Lee Irwin III
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Morton @ 2003-01-11 22:43 UTC (permalink / raw)
  To: linux-kernel, linux-mm

http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.56/2.5.56-mm1/

Nothing much new here except for a fix for the ext3-related memory leak which
Con reported recently.


The main items which remain unmerged from the -mm patch series are now:

- red/black-tree based insertion and sorting for the I/O scheduler.

  Jens will be submitting this next week.  It's completely stable, and the
  patch includes the addition of the I/O scheduler tunables in
  /sys/block/hda/iosched/, which is fairly important.

- Code to automatically unplug request queues on the basis of their
  occupancy and a timeout.

  Jens will be reviewing this soon.

- dcache-RCU.

  This was recently updated to fix a rename race.  It's quite stable.  I'm
  not sure where we stand wrt merging it now.  Al seems to have disappeared.

- Ingo Oeser's user page walking rework.  This appears to be stable,
  although I'm not sure what testing it has had apart from a lot of direct-io
  testing.

- Quite a lot of misc stuff which I need to go through and either send or
  toss.


Changes since 2.5.55-mm1:


+linus.patch

 Latest from Linus

-inlines-net.patch
-deadline-fixups.patch
-i_shared_sem.patch
-cond_resched_lock-rework.patch
-untypedef-mmu_gather.patch
-touched_by_munmap-go-forwards.patch
-low-latency-page-unmapping.patch
-misc.patch
-smp-preempt-latency-fix.patch
-set_page_dirty_lock.patch
-inline-constant-small-copy_user.patch

 Merged

+deadline-fixes.patch

 Some deadline scheduler tweaks and fixes

+deadline-sysfs-fix.patch

 Fix up the deadline scheduler patches to track recent sysfs changes

+ext3-leak-fix.patch

 Fix the memory leak whcih Con reported

+hugetlbfs-read-write.patch

 Don't permit reading or writing of hugetlbfs files.



All 44 patches:

linus.patch
  cset-1.897-to-1.929.txt.gz

kgdb.patch

rcf.patch
  run-child-first after fork

devfs-fix.patch

cputimes_stat.patch
  Retore per-cpu time accounting, with a config option

rbtree-iosched.patch
  rbtree-based IO scheduler

deadline-fixes.patch
  deadsched cleanups/fixups

deadline-sysfs-fix.patch

ext3-ino_t-cleanup.patch
  Subject: [PATCH] 2.5 ext3 ino_t removal

smaller-head-arrays.patch

setuid-exec-no-lock_kernel.patch
  remove lock_kernel() from exec of setuid apps

ptrace-flush.patch
  Subject: [PATCH] ptrace on 2.5.44

buffer-debug.patch
  buffer.c debugging

warn-null-wakeup.patch

pentium-II.patch
  Pentium-II support bits

reiserfs-readpages.patch
  reiserfs v3 readpages support

rcu-stats.patch
  RCU statistics reporting

auto-unplug.patch
  self-unplugging request queues

less-unplugging.patch
  Remove most of the blk_run_queues() calls

ext3-fsync-speedup.patch
  Clean up ext3_sync_file()

lockless-current_kernel_time.patch
  Lockless current_kernel_timer()

scheduler-tunables.patch
  scheduler tunables

htlb-2.patch
  hugetlb: fix MAP_FIXED handling

ext3-leak-fix.patch
  fix ext3 memory leak

hugetlbfs-read-write.patch
  hugetlbfs: don't implement read/write file_ops

oprofile-p4.patch

op4-fix.patch

wli-02_do_sak.patch
  (undescribed patch)

wli-03_proc_super.patch
  (undescribed patch)

wli-06_uml_get_task.patch
  (undescribed patch)

wli-07_numaq_mem_map.patch
  (undescribed patch)

wli-08_numaq_pgdat.patch
  (undescribed patch)

wli-09_has_stopped_jobs.patch
  (undescribed patch)

wli-10_inode_wait.patch
  (undescribed patch)

wli-11_pgd_ctor.patch
  (undescribed patch)

wli-11_pgd_ctor-update.patch
  pgd_ctor update

wli-13_rmap_nrpte.patch
  (undescribed patch)

dcache_rcu-2.patch
  dcache_rcu-2-2.5.51.patch

dcache_rcu-3.patch
  dcache_rcu-3-2.5.51.patch

page-walk-api.patch

page-walk-api-2.5.53-mm2-update.patch
  pagewalk API update

page-walk-scsi.patch

page-walk-scsi-2.5.53-mm2.patch
  pagewalk scsi update

smalldevfs.patch
  smalldevfs




--
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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 2.5.56-mm1
  2003-01-11 22:43 2.5.56-mm1 Andrew Morton
@ 2003-01-11 22:57 ` Jeff Garzik
  2003-01-13  6:25   ` 2.5.56-mm1 Dipankar Sarma
  2003-01-13 10:41 ` 2.5.56-mm1 William Lee Irwin III
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff Garzik @ 2003-01-11 22:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm, viro

On Sat, Jan 11, 2003 at 02:43:08PM -0800, Andrew Morton wrote:
> - dcache-RCU.
> 
>   This was recently updated to fix a rename race.  It's quite stable.  I'm
>   not sure where we stand wrt merging it now.  Al seems to have disappeared.

I talked to him in person last week, and this was one of the topics of
discussion.  He seemed to think it was fundamentally unfixable.  He
proceed to explain why, and then explained the scheme he worked out to
improve things.  Unfortunately my memory cannot do justice to the
details.

Next time he explains it, I will write it down :)

Sorry for so lame a data point :)

	Jeff




--
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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 2.5.56-mm1
  2003-01-11 22:57 ` 2.5.56-mm1 Jeff Garzik
@ 2003-01-13  6:25   ` Dipankar Sarma
  0 siblings, 0 replies; 4+ messages in thread
From: Dipankar Sarma @ 2003-01-13  6:25 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Andrew Morton, linux-kernel, linux-mm, viro, Maneesh Soni

On Sat, Jan 11, 2003 at 11:00:38PM +0000, Jeff Garzik wrote:
> On Sat, Jan 11, 2003 at 02:43:08PM -0800, Andrew Morton wrote:
> > - dcache-RCU.
> > 
> >   This was recently updated to fix a rename race.  It's quite stable.  I'm
> >   not sure where we stand wrt merging it now.  Al seems to have disappeared.
> 
> I talked to him in person last week, and this was one of the topics of
> discussion.  He seemed to think it was fundamentally unfixable.  He
> proceed to explain why, and then explained the scheme he worked out to
> improve things.  Unfortunately my memory cannot do justice to the
> details.

The rename race is fixed now. Yes, it was unfixable using *existing* RCU
techniques, but one has to invent new tricks when the old bag of
tricks is empty :)

Fundamentally what happens is that rename may be *two* updates - delete
from one hash chain and insert into another hash chain. In order for
lockfree traversal to work correctly, you must have a grace period after
each update. If we do a grace period between these two updates in a rename,
it slows down renames to unacceptable levels. So we had a problem there.

The solution lies in the dcache itself - it has a fast path (cached_lookup)
and a slow path (real_lookup). So all we had to do was to detect that a
rename had happened to the dentry while we looked it up lockfree. This
is done by a generation counter (d_move_count) in the dentry and is
protected by the per-dentry spinlock which we take during rename and
a successful cache lookup. 

Two things can happen due to the rename race - lookup incorrectly succeeds
or lookup incorrectly fails. The success case is easily handled by 
the lockfree lookup code that looks like this -

for the dentries in the hash chain {
	... More stuff....
	move_count = dentry->d_move_count;
	if (dentry name matches) {
		/* lookup succeeds */
		spin_lock(&dentry->d_lock);
		if (move_count != dentry->d_move_count) {
			/* 
			 * A rename happened while looking up lockfree and 
			 * we now cannot gurantee
			 * that the lookup is correct
			 */
			spin_unlock(&dentry->d_lock);
			return slow_lookup();
		}
		....
		....
	}
	... More stuff....
}

If the lookup fails due to rename race, then there will anyway be a
slow real_lookup which is serialized with rename.

Maneesh did a lot of testing using many ramfs and many millions of renames
with millions of lookups going on at the same time and slow path was hit only
100 times or so. For practical workloads, this should have absolutely no
performance impact.

Thanks
Dipankar
--
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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 2.5.56-mm1
  2003-01-11 22:43 2.5.56-mm1 Andrew Morton
  2003-01-11 22:57 ` 2.5.56-mm1 Jeff Garzik
@ 2003-01-13 10:41 ` William Lee Irwin III
  1 sibling, 0 replies; 4+ messages in thread
From: William Lee Irwin III @ 2003-01-13 10:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sat, Jan 11, 2003 at 02:43:08PM -0800, Andrew Morton wrote:
> wli-11_pgd_ctor.patch
>   (undescribed patch)
> wli-11_pgd_ctor-update.patch
>   pgd_ctor update

pgd_alloc() has officially vaporized off my profiles on my (UP) homebox.


Thanks,
Bill
--
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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-01-13 10:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-11 22:43 2.5.56-mm1 Andrew Morton
2003-01-11 22:57 ` 2.5.56-mm1 Jeff Garzik
2003-01-13  6:25   ` 2.5.56-mm1 Dipankar Sarma
2003-01-13 10:41 ` 2.5.56-mm1 William Lee Irwin III

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox