* 2.5.41-mm2
@ 2002-10-10 5:40 Andrew Morton
2002-10-10 5:59 ` 2.5.41-mm2 David S. Miller
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Andrew Morton @ 2002-10-10 5:40 UTC (permalink / raw)
To: lkml, linux-mm
url: http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.41/2.5.41-mm2/
. The per-cpu pages patches continue to disgrace themselves. Improvements
in some microbenchmarks range from moderate (2%) to stunning (60%) but
we're seeing a consistent few-percent regression in tests which perform
networking to localhost. Heads continue to be scratched. This is
irritating because that code is supposed to be the foundation for a page
reservation API which fixes the radix-tree and pte_chain allocation failure
problems.
Ingo's original per-cpu-pages patch was said to be mainly beneficial for
web-serving type things, but no specweb testing has been possible for a
week or two due to oopses in the timer code.
. David McCracken's shared pagetable implementation is included - it is
configurable on or off under the "Processor type and features" menu.
. The swappiness control code seems to be working well.
-lbd1.patch
-lbd2.patch
-lbd3.patch
-lbd4.patch
-lbd5.patch
-lbd6.patch
-get_bios_geometry.patch
-64-bit-sector_t.patch
-alloc_pages_node-cleanup.patch
-discontig-no-contig_page_data.patch
-discontig-setup-fix.patch
-remove-get_free_page.patch
-ext3-dxdir.patch
-free_area_init-cleanup.patch
-per-node-mem_map.patch
-wli-libfs.patch
Merged
+ext3-yield.patch
Remove a sched_yield() from ext3 which causes fsync() to enormously
suck when the machine is under CPU load.
+guruhugh.patch
Fix a use-after-free bug in the mremap code.
+pte-highmem-warning.patch
Fix an "illegal sleep" warning in the mremap code
+raid0-fix.patch
Peter Chubb's "make raid0 work again" patch.
+ramfs-prepare-write-speedup.patch
Some fiddling with the fs/libfs address_space ops implementation.
+readv-writev-check-fix.patch
Make readv/writev return zero for zero segments
+shpte.patch
Shared pagetables for ia32
+slab-split-10-list_for_each_fix.patch
Fix a slab bug
+timer-tricks.patch
Tries to fix the timer problems, but doesn't.
linus.patch
cset-1.573.96.12-to-1.746.txt.gz
timer-tricks.patch
guruhugh.patch
Fix use-after-free bug in move_page_tables
pte-highmem-warning.patch
Fix an atomicity warning with pte-highmem
raw-use-o_direct.patch
Fix the raw driver
remove-radix_tree_reserve.patch
remove radix_tree_reserve()
ext3-yield.patch
Speed up ext3 fsyncs
readv-writev-check-fix.patch
readv/writev: return zero for zero segments
misc.patch
misc
swsusp-feature.patch
add shrink_all_memory() for swsusp
large-queue-throttle.patch
Improve writer throttling for small machines
exit-page-referenced.patch
Propagate pte referenced bit into pagecache during unmap
swappiness.patch
swappiness control
mapped-start-active.patch
start anonymous pages on the active list
rename-dirty_async_ratio.patch
rename dirty_async_ratio to dirty_ratio
auto-dirty-memory.patch
adaptive dirty-memory thresholding
batched-slab-asap.patch
batched slab shrinking and shrinker callback API
dio-fine-alignment.patch
Allow O_DIRECT to use 512-byte alignment
orlov-allocator.patch
lseek-ext2_readdir.patch
remove lock_kernel() from ext2_readdir()
write-deadlock.patch
Fix the generic_file_write-from-same-mmapped-page deadlock
rd-cleanup.patch
Cleanup and fix the ramdisk driver (doesn't work right yet)
spin-lock-check.patch
spinlock/rwlock checking infrastructure
hugetlb-prefault.patch
hugetlbpages: factor out some code for hugetlbfs
ramfs-aops.patch
Move ramfs address_space ops into libfs
hugetlb-header-split.patch
Move hugetlb declarations into their own header
hugetlbfs.patch
hugetlbfs file system
hugetlb-shm.patch
hugetlbfs backing for SYSV shared memory
ramfs-prepare-write-speedup.patch
correctness fixes in libfs address_space ops
akpm-deadline.patch
deadline scheduler tweaks
intel-user-copy.patch
Faster copt_*_user for Intel ia32 CPUs
raid0-fix.patch
RAID0 fix
rmqueue_bulk.patch
bulk page allocator
free_pages_bulk.patch
Bulk page freeing function
hot_cold_pages.patch
Hot/Cold pages and zone->lock amortisation
readahead-cold-pages.patch
Use cache-cold pages for pagecache reads.
pagevec-hot-cold-hint.patch
hot/cold hints for truncate and page reclaim
page-reservation.patch
Page reservation API
slab-split-01-rename.patch
slab cleanup: rename static functions
slab-split-02-SMP.patch
slab: enable the cpu arrays on uniprocessor
slab-split-03-tail.patch
slab: reduced internal fragmentation
slab-split-04-drain.patch
slab: take the spinlock in the drain function.
slab-split-05-name.patch
slab: remove spaces from /proc identifiers
slab-split-06-mand-cpuarray.patch
slab: cleanups and speedups
slab-split-07-inline.patch
slab: uninline poisoning checks
slab-split-08-reap.patch
slab: reap timers
cpucache_init-fix.patch
cpucache_init fix
slab-split-10-list_for_each_fix.patch
slab: for a list walking bug
shpte.patch
read_barrier_depends.patch
extended barrier primitives
rcu_ltimer.patch
RCU core
dcache_rcu.patch
Use RCU for dcache
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-10 5:40 2.5.41-mm2 Andrew Morton
@ 2002-10-10 5:59 ` David S. Miller
2002-10-10 6:45 ` 2.5.41-mm2 Ingo Molnar
2002-10-10 8:18 ` 2.5.41-mm2 William Lee Irwin III
2 siblings, 0 replies; 7+ messages in thread
From: David S. Miller @ 2002-10-10 5:59 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel, linux-mm
but we're seeing a consistent few-percent regression in tests which perform
networking to localhost.
There's debugging code in loopback that is helping us stress test
the TCP segmentation offload, you might want to disable that to
get more reliable numbers in 2.5.x.
Try this:
--- drivers/net/loopback.c.~1~ Wed Oct 9 23:01:16 2002
+++ drivers/net/loopback.c Wed Oct 9 23:01:35 2002
@@ -190,12 +190,12 @@
dev->rebuild_header = eth_rebuild_header;
dev->flags = IFF_LOOPBACK;
dev->features = NETIF_F_SG|NETIF_F_FRAGLIST|NETIF_F_NO_CSUM|NETIF_F_HIGHDMA;
-
+#if 0
/* Current netfilter will die with oom linearizing large skbs,
* however this will be cured before 2.5.x is done.
*/
dev->features |= NETIF_F_TSO;
-
+#endif
dev->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-10 6:45 ` 2.5.41-mm2 Ingo Molnar
@ 2002-10-10 6:44 ` Dave Hansen
2002-10-11 4:32 ` 2.5.41-mm2 Dave Hansen
1 sibling, 0 replies; 7+ messages in thread
From: Dave Hansen @ 2002-10-10 6:44 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Andrew Morton, lkml, linux-mm
Ingo Molnar wrote:
> On Wed, 9 Oct 2002, Andrew Morton wrote:
>
>> Ingo's original per-cpu-pages patch was said to be mainly beneficial
>> for web-serving type things, but no specweb testing has been possible
>> for a week or two due to oopses in the timer code.
>
> i sent my latest timer patch to Dave Hansen but have not heard back since.
> I've attached the latest patch, this kernel also printks a bit more when
> it sees invalid timer usage.
>
> in any case, the oops Dave was seeing i believe was fixed by Linus (the
> PgUp fix), and it was in the keyboard code. If there's anything else still
> going on then the attached patch should either fix it or provide further
> clues.
Sorry, I haven't had a chance to test it yet. The Specweb setup likes
to eat ethernet cards and I haven't put in replacements yet. I'll try
and get some time in on it tomorrow.
--
Dave Hansen
haveblue@us.ibm.com
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-10 5:40 2.5.41-mm2 Andrew Morton
2002-10-10 5:59 ` 2.5.41-mm2 David S. Miller
@ 2002-10-10 6:45 ` Ingo Molnar
2002-10-10 6:44 ` 2.5.41-mm2 Dave Hansen
2002-10-11 4:32 ` 2.5.41-mm2 Dave Hansen
2002-10-10 8:18 ` 2.5.41-mm2 William Lee Irwin III
2 siblings, 2 replies; 7+ messages in thread
From: Ingo Molnar @ 2002-10-10 6:45 UTC (permalink / raw)
To: Andrew Morton; +Cc: lkml, linux-mm, Dave Hansen
On Wed, 9 Oct 2002, Andrew Morton wrote:
> Ingo's original per-cpu-pages patch was said to be mainly beneficial
> for web-serving type things, but no specweb testing has been possible
> for a week or two due to oopses in the timer code.
i sent my latest timer patch to Dave Hansen but have not heard back since.
I've attached the latest patch, this kernel also printks a bit more when
it sees invalid timer usage.
in any case, the oops Dave was seeing i believe was fixed by Linus (the
PgUp fix), and it was in the keyboard code. If there's anything else still
going on then the attached patch should either fix it or provide further
clues.
Ingo
--- linux/kernel/timer.c.orig 2002-10-09 10:04:51.000000000 +0200
+++ linux/kernel/timer.c 2002-10-09 10:06:59.000000000 +0200
@@ -266,29 +266,31 @@
int del_timer_sync(timer_t *timer)
{
tvec_base_t *base = tvec_bases;
- int i, ret;
+ int i, ret = 0;
- ret = del_timer(timer);
+del_again:
+ ret += del_timer(timer);
- for (i = 0; i < NR_CPUS; i++) {
+ for (i = 0; i < NR_CPUS; i++, base++) {
if (!cpu_online(i))
continue;
if (base->running_timer == timer) {
while (base->running_timer == timer) {
cpu_relax();
- preempt_disable();
- preempt_enable();
+ preempt_check_resched();
}
break;
}
- base++;
}
+ if (timer_pending(timer))
+ goto del_again;
+
return ret;
}
#endif
-static void cascade(tvec_base_t *base, tvec_t *tv)
+static int cascade(tvec_base_t *base, tvec_t *tv)
{
/* cascade all the timers from tv up one level */
struct list_head *head, *curr, *next;
@@ -310,7 +312,8 @@
curr = next;
}
INIT_LIST_HEAD(head);
- tv->index = (tv->index + 1) & TVN_MASK;
+
+ return tv->index = (tv->index + 1) & TVN_MASK;
}
/***
@@ -322,26 +325,18 @@
*/
static inline void __run_timers(tvec_base_t *base)
{
- unsigned long flags;
-
- spin_lock_irqsave(&base->lock, flags);
+ spin_lock_irq(&base->lock);
while ((long)(jiffies - base->timer_jiffies) >= 0) {
struct list_head *head, *curr;
/*
* Cascade timers:
*/
- if (!base->tv1.index) {
- cascade(base, &base->tv2);
- if (base->tv2.index == 1) {
- cascade(base, &base->tv3);
- if (base->tv3.index == 1) {
- cascade(base, &base->tv4);
- if (base->tv4.index == 1)
- cascade(base, &base->tv5);
- }
- }
- }
+ if (!base->tv1.index &&
+ (cascade(base, &base->tv2) == 1) &&
+ (cascade(base, &base->tv3) == 1) &&
+ cascade(base, &base->tv4) == 1)
+ cascade(base, &base->tv5);
repeat:
head = base->tv1.vec + base->tv1.index;
curr = head->next;
@@ -360,7 +355,10 @@
base->running_timer = timer;
#endif
spin_unlock_irq(&base->lock);
- fn(data);
+ if (!fn)
+ printk("Bad: timer %p has NULL fn. (data: %08lx)\n", timer, data);
+ else
+ fn(data);
spin_lock_irq(&base->lock);
goto repeat;
}
@@ -370,7 +368,7 @@
#if CONFIG_SMP
base->running_timer = NULL;
#endif
- spin_unlock_irqrestore(&base->lock, flags);
+ spin_unlock_irq(&base->lock);
}
/******************************************************************/
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-10 5:40 2.5.41-mm2 Andrew Morton
2002-10-10 5:59 ` 2.5.41-mm2 David S. Miller
2002-10-10 6:45 ` 2.5.41-mm2 Ingo Molnar
@ 2002-10-10 8:18 ` William Lee Irwin III
2 siblings, 0 replies; 7+ messages in thread
From: William Lee Irwin III @ 2002-10-10 8:18 UTC (permalink / raw)
To: Andrew Morton; +Cc: lkml, linux-mm
On Wed, Oct 09, 2002 at 10:40:01PM -0700, Andrew Morton wrote:
> url: http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.41/2.5.41-mm2/
hugetlbfs update:
CAP_IPC_LOCK is required to utilize hugetlb shm segments, memory
allocation, and other facilities. The following patch does three things:
(1) check capable(CAP_IPC_LOCK) in ->f_ops->mmap
This may be redundant but it errors out with less state to
clean up and at least clarifies the fact that checks are
being performed at the relevant entry points.
(2) check capable(CAP_IPC_LOCK) in hugetlbfs_zero_setup()
This is called at shmget() time and is an actual potential
security hole. hugetlb_prefault() does not perform this
check itself, so it must be done here.
--- akpm-2.5.41/fs/hugetlbfs/inode.c 2002-10-08 18:43:39.000000000 -0700
+++ wli-2.5.41/fs/hugetlbfs/inode.c 2002-10-10 00:30:15.000000000 -0700
@@ -56,6 +56,9 @@
struct address_space *mapping = inode->i_mapping;
int ret;
+ if (!capable(CAP_IPC_LOCK))
+ return -EPERM;
+
if (vma->vm_start & ~HPAGE_MASK)
return -EINVAL;
@@ -259,6 +262,9 @@
struct qstr quick_string;
char buf[16];
+ if (!capable(CAP_IPC_LOCK))
+ return ERR_PTR(-EPERM);
+
n = atomic_read(&hugetlbfs_counter);
atomic_inc(&hugetlbfs_counter);
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-10 6:45 ` 2.5.41-mm2 Ingo Molnar
2002-10-10 6:44 ` 2.5.41-mm2 Dave Hansen
@ 2002-10-11 4:32 ` Dave Hansen
2002-10-11 5:30 ` 2.5.41-mm2 Ingo Molnar
1 sibling, 1 reply; 7+ messages in thread
From: Dave Hansen @ 2002-10-11 4:32 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Andrew Morton, lkml, linux-mm
Ingo Molnar wrote:
> On Wed, 9 Oct 2002, Andrew Morton wrote:
>> Ingo's original per-cpu-pages patch was said to be mainly beneficial
>> for web-serving type things, but no specweb testing has been possible
>> for a week or two due to oopses in the timer code.
>
> i sent my latest timer patch to Dave Hansen but have not heard back since.
> I've attached the latest patch, this kernel also printks a bit more when
> it sees invalid timer usage.
>
> in any case, the oops Dave was seeing i believe was fixed by Linus (the
> PgUp fix), and it was in the keyboard code. If there's anything else still
> going on then the attached patch should either fix it or provide further
> clues.
Ingo,
I'm running the current Bitkeeper tree with your patch, with no
oopses in sight. The oops happens in seconds without the patch, but I
haven't seen anything in an hour of running Specweb. It looks pretty
good. Please feed that patch to Linus if you haven't already.
--
Dave Hansen
haveblue@us.ibm.com
--
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] 7+ messages in thread
* Re: 2.5.41-mm2
2002-10-11 4:32 ` 2.5.41-mm2 Dave Hansen
@ 2002-10-11 5:30 ` Ingo Molnar
0 siblings, 0 replies; 7+ messages in thread
From: Ingo Molnar @ 2002-10-11 5:30 UTC (permalink / raw)
To: Dave Hansen; +Cc: Andrew Morton, lkml, linux-mm
On Thu, 10 Oct 2002, Dave Hansen wrote:
> I'm running the current Bitkeeper tree with your patch, with no
> oopses in sight. The oops happens in seconds without the patch, but I
> haven't seen anything in an hour of running Specweb. It looks pretty
> good. Please feed that patch to Linus if you haven't already.
great. Linus has applied the patch already.
Ingo
--
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] 7+ messages in thread
end of thread, other threads:[~2002-10-11 5:30 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-10 5:40 2.5.41-mm2 Andrew Morton
2002-10-10 5:59 ` 2.5.41-mm2 David S. Miller
2002-10-10 6:45 ` 2.5.41-mm2 Ingo Molnar
2002-10-10 6:44 ` 2.5.41-mm2 Dave Hansen
2002-10-11 4:32 ` 2.5.41-mm2 Dave Hansen
2002-10-11 5:30 ` 2.5.41-mm2 Ingo Molnar
2002-10-10 8:18 ` 2.5.41-mm2 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