linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Linux 2.6.9-ac16
@ 2004-12-17 23:35 Chuck Ebbert
  2004-12-20 17:27 ` Chris Friesen
  0 siblings, 1 reply; 21+ messages in thread
From: Chuck Ebbert @ 2004-12-17 23:35 UTC (permalink / raw)
  To: Chris Friesen; +Cc: Alan Cox, Chris Ross, linux-kernel

Chris Friesen wrote:

> Chris Ross wrote:
>
> > This kernel still suffers from the faulty OOM killing troubles of 
> > vanilla 2.6.9. Could you please pick up at least one of the recent fixes 
> > for this problem, such as as Rik van Riel's?
>
> Can someone point me to his patch?  I've been working on and off to try and get 
> reasonable OOM behaviour.

 I have these two patches (plus 208 more) applied to 2.6.9 and haven't seen
any OOM kills even under heavy swap pressure.  Building an allyesconfig kernel
on a 384M SMP machine running X goes 250M into swap and survives, but it does freeze
solid for long periods while swapping.  The dots on the KDE clock even stop blinking!

 Nobody has found an answer for the freezes, which persist even in the latest
2.6.10-rc but there's a vm_writeout throttling patch in -ac that I haven't tried.

======================================================================================
# mm_spurious_oomkill.patch
#       include/linux/rmap.h -2 +2
#       mm/rmap.c -10 +13
#       mm/vmscan.c -2 +2
#
#       2004/11/19 14:54:22-08:00 akpm@osdl.org 
#       [PATCH] vmscan: ignore swap token when in trouble
#       
#       The token-based thrashing control patches introduced a problem: when a task
#       which doesn't hold the token tries to run direct-reclaim, that task is told
#       that pages which belong to the token-holding mm are referenced, even though
#       they are not.  This means that it is possible for a huge number of a
#       non-token-holding mm's pages to be scanned to no effect.  Eventually, we give
#       up and go and oom-kill something.
#       
#       So the patch arranges for the thrashing control logic to be defeated if the
#       caller has reached the highest level of scanning priority.
#       
#       Signed-off-by: Andrew Morton <akpm@osdl.org>
#       Signed-off-by: Linus Torvalds <torvalds@osdl.org>
# 
--- 2.6.9/include/linux/rmap.h
+++ 2.6.9.1/include/linux/rmap.h
@@ -88,7 +88,7 @@
 /*
  * Called from mm/vmscan.c to handle paging out
  */
-int page_referenced(struct page *, int is_locked);
+int page_referenced(struct page *, int is_locked, int ignore_token);
 int try_to_unmap(struct page *);
 
 /*
@@ -102,7 +102,7 @@
 #define anon_vma_prepare(vma)  (0)
 #define anon_vma_link(vma)     do {} while (0)
 
-#define page_referenced(page,l)        TestClearPageReferenced(page)
+#define page_referenced(page,l,i) TestClearPageReferenced(page)
 #define try_to_unmap(page)     SWAP_FAIL
 
 #endif /* CONFIG_MMU */
--- 2.6.9/mm/rmap.c
+++ 2.6.9.1/mm/rmap.c
@@ -253,7 +253,7 @@
  * repeatedly from either page_referenced_anon or page_referenced_file.
  */
 static int page_referenced_one(struct page *page,
-       struct vm_area_struct *vma, unsigned int *mapcount)
+       struct vm_area_struct *vma, unsigned int *mapcount, int ignore_token)
 {
        struct mm_struct *mm = vma->vm_mm;
        unsigned long address;
@@ -288,7 +288,7 @@
        if (ptep_clear_flush_young(vma, address, pte))
                referenced++;
 
-       if (mm != current->mm && has_swap_token(mm))
+       if (mm != current->mm && !ignore_token && has_swap_token(mm))
                referenced++;
 
        (*mapcount)--;
@@ -301,7 +301,7 @@
        return referenced;
 }
 
-static int page_referenced_anon(struct page *page)
+static int page_referenced_anon(struct page *page, int ignore_token)
 {
        unsigned int mapcount;
        struct anon_vma *anon_vma;
@@ -314,7 +314,8 @@
 
        mapcount = page_mapcount(page);
        list_for_each_entry(vma, &anon_vma->head, anon_vma_node) {
-               referenced += page_referenced_one(page, vma, &mapcount);
+               referenced += page_referenced_one(page, vma, &mapcount,
+                                                       ignore_token);
                if (!mapcount)
                        break;
        }
@@ -333,7 +334,7 @@
  *
  * This function is only called from page_referenced for object-based pages.
  */
-static int page_referenced_file(struct page *page)
+static int page_referenced_file(struct page *page, int ignore_token)
 {
        unsigned int mapcount;
        struct address_space *mapping = page->mapping;
@@ -371,7 +372,8 @@
                        referenced++;
                        break;
                }
-               referenced += page_referenced_one(page, vma, &mapcount);
+               referenced += page_referenced_one(page, vma, &mapcount,
+                                                       ignore_token);
                if (!mapcount)
                        break;
        }
@@ -388,7 +390,7 @@
  * Quick test_and_clear_referenced for all mappings to a page,
  * returns the number of ptes which referenced the page.
  */
-int page_referenced(struct page *page, int is_locked)
+int page_referenced(struct page *page, int is_locked, int ignore_token)
 {
        int referenced = 0;
 
@@ -400,14 +402,15 @@
 
        if (page_mapped(page) && page->mapping) {
                if (PageAnon(page))
-                       referenced += page_referenced_anon(page);
+                       referenced += page_referenced_anon(page, ignore_token);
                else if (is_locked)
-                       referenced += page_referenced_file(page);
+                       referenced += page_referenced_file(page, ignore_token);
                else if (TestSetPageLocked(page))
                        referenced++;
                else {
                        if (page->mapping)
-                               referenced += page_referenced_file(page);
+                               referenced += page_referenced_file(page,
+                                                               ignore_token);
                        unlock_page(page);
                }
        }
--- 2.6.9/mm/vmscan.c
+++ 2.6.9.1/mm/vmscan.c
@@ -377,7 +377,7 @@
                if (page_mapped(page) || PageSwapCache(page))
                        sc->nr_scanned++;
 
-               referenced = page_referenced(page, 1);
+               referenced = page_referenced(page, 1, sc->priority <= 0);
                /* In active use or really unfreeable?  Activate it. */
                if (referenced && page_mapping_inuse(page))
                        goto activate_locked;
@@ -715,7 +715,7 @@
                if (page_mapped(page)) {
                        if (!reclaim_mapped ||
                            (total_swap_pages == 0 && PageAnon(page)) ||
-                           page_referenced(page, 0)) {
+                           page_referenced(page, 0, sc->priority <= 0)) {
                                list_add(&page->lru, &l_active);
                                continue;
                        }
======================================================================================
# vm_pages_scanned_active_list.patch
#       mm/vmscan.c -1 +1
#
#       Stop kswapd from looping.
#
#       Patch by Nick Piggin 24 Oct 2004
#       Signed-off-by: Andrew Morton <akpm@osdl.org>
#       Signed-off-by: Linus Torvalds <torvalds@osdl.org>
#       Status: in 2.6.10
#
--- 2.6.9/mm/vmscan.c
+++ 2.6.9.1/mm/vmscan.c
@@ -574,7 +574,6 @@ static void shrink_cache(struct zone *zo
                        nr_taken++;
                }
                zone->nr_inactive -= nr_taken;
-               zone->pages_scanned += nr_taken;
                spin_unlock_irq(&zone->lru_lock);
 
                if (nr_taken == 0)
@@ -675,6 +674,7 @@ refill_inactive_zone(struct zone *zone, 
                }
                pgscanned++;
        }
+       zone->pages_scanned += pgscanned;
        zone->nr_active -= pgmoved;
        spin_unlock_irq(&zone->lru_lock);
 
======================================================================================
--
Please take it as a sign of my infinite respect for you,
that I insist on you doing all the work.
                                        -- Rusty Russell

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

* Re: Linux 2.6.9-ac16
  2004-12-17 23:35 Linux 2.6.9-ac16 Chuck Ebbert
@ 2004-12-20 17:27 ` Chris Friesen
  0 siblings, 0 replies; 21+ messages in thread
From: Chris Friesen @ 2004-12-20 17:27 UTC (permalink / raw)
  To: Chuck Ebbert; +Cc: Alan Cox, Chris Ross, linux-kernel

Chuck Ebbert wrote:

>  Nobody has found an answer for the freezes, which persist even in the latest
> 2.6.10-rc but there's a vm_writeout throttling patch in -ac that I haven't tried.

Heh.  Figures.  Those freezes are what bothers me most, since I've already got a 
patch that protects critical processes from being OOM-killed as long as they're 
sane.

I just want an OOM-killer that is FAST and doesn't lock up the machine.  I don't 
really care what it kills, since it won't be *able* to kill anything really 
critical.

Chris

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

* Re: Linux 2.6.9-ac16
@ 2004-12-22  6:44 Chuck Ebbert
  0 siblings, 0 replies; 21+ messages in thread
From: Chuck Ebbert @ 2004-12-22  6:44 UTC (permalink / raw)
  To: Con Kolivas; +Cc: Alan Cox, Chris Ross, linux-kernel, Chris Friesen

Con Kolivas wrote:

> Given that the sysctl is not there in 2.6.9 there is no point exporting the 
> variable only to ignore it. You only need this one liner:

 But I might decide to backport the sysctl later; this way makes it
easier to do.  It also makes it more intuitive to reenable the token
by just changing a #define instead of deleting a line of code.

--
Please take it as a sign of my infinite respect for you,
that I insist on you doing all the work.
                                        -- Rusty Russell

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

* Re: Linux 2.6.9-ac16
  2004-12-21 23:49 Chuck Ebbert
  2004-12-21 23:58 ` Nick Piggin
@ 2004-12-22  2:49 ` Con Kolivas
  1 sibling, 0 replies; 21+ messages in thread
From: Con Kolivas @ 2004-12-22  2:49 UTC (permalink / raw)
  To: Chuck Ebbert; +Cc: Chris Friesen, linux-kernel, Chris Ross, Alan Cox

Chuck Ebbert writes:

> Chuck Ebbert wrote:
> 
>>  I backported this patch to 2.6.9 but haven't tested it yet.  It requires the
>> 'spurious oomkill' patch I posted earlier in this thread.  Early reports
>> are that it stops the freezes during heavy paging.
> 
>  OK here's one that actually compiles.  (3AM was not a good time to be
> making patches.)

Given that the sysctl is not there in 2.6.9 there is no point exporting the 
variable only to ignore it. You only need this one liner:

>  {
>         int referenced = 0;
>  
> +       ignore_token = 1;

Cheers,
Con


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

* Re: Linux 2.6.9-ac16
  2004-12-21 23:49 Chuck Ebbert
@ 2004-12-21 23:58 ` Nick Piggin
  2004-12-22  2:49 ` Con Kolivas
  1 sibling, 0 replies; 21+ messages in thread
From: Nick Piggin @ 2004-12-21 23:58 UTC (permalink / raw)
  To: Chuck Ebbert, Andrew Morton
  Cc: Chris Friesen, linux-kernel, Chris Ross, Alan Cox

Any chance this can get into 2.6 before Linus fires off 2.6.10?

Chuck Ebbert wrote:
> Chuck Ebbert wrote:
> 
> 
>> I backported this patch to 2.6.9 but haven't tested it yet.  It requires the
>>'spurious oomkill' patch I posted earlier in this thread.  Early reports
>>are that it stops the freezes during heavy paging.
> 
> 
>  OK here's one that actually compiles.  (3AM was not a good time to be
> making patches.)
> 
> # mm_swap_token_disable.patch
> #       include/linux/swap.h -0 +1
> #       mm/rmap.c -0 +3
> #       mm/thrash.c -1 +4
> #
> #       NOTE: On 2.6.9 there is no sysctl to change
> #             swap_token_default_timeout.
> #
> #       Based on a patch by Con Kolivas for 2.6.10
> #       Backported to 2.6.9 by Chuck Ebbert <76306.1226@compuserve.com>
> #
> --- 2.6.9.1/include/linux/swap.h
> +++ 2.6.9.2/include/linux/swap.h
> @@ -230,6 +230,7 @@
>  
>  /* linux/mm/thrash.c */
>  extern struct mm_struct * swap_token_mm;
> +extern unsigned long swap_token_default_timeout;
>  extern void grab_swap_token(void);
>  extern void __put_swap_token(struct mm_struct *);
>  
> --- 2.6.9.1/mm/rmap.c
> +++ 2.6.9.2/mm/rmap.c
> @@ -394,6 +394,9 @@ int page_referenced(struct page *page, i
>  {
>         int referenced = 0;
>  
> +       if (!swap_token_default_timeout)
> +               ignore_token = 1;
> +
>         if (page_test_and_clear_young(page))
>                 referenced++;
>  
> --- 2.6.9.1/mm/thrash.c
> +++ 2.6.9.2/mm/thrash.c
> @@ -19,7 +19,11 @@ unsigned long swap_token_check;
>  struct mm_struct * swap_token_mm = &init_mm;
>  
>  #define SWAP_TOKEN_CHECK_INTERVAL (HZ * 2)
> -#define SWAP_TOKEN_TIMEOUT (HZ * 300)
> +#define SWAP_TOKEN_TIMEOUT     0
> +/*
> + * Currently disabled; Needs further code to work at HZ * 300.
> + */
> +unsigned long swap_token_default_timeout = SWAP_TOKEN_TIMEOUT;
>  
>  /*
>   * Take the token away if the process had no page faults
> _

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

* Re: Linux 2.6.9-ac16
@ 2004-12-21 23:49 Chuck Ebbert
  2004-12-21 23:58 ` Nick Piggin
  2004-12-22  2:49 ` Con Kolivas
  0 siblings, 2 replies; 21+ messages in thread
From: Chuck Ebbert @ 2004-12-21 23:49 UTC (permalink / raw)
  To: Chris Friesen; +Cc: linux-kernel, Chris Ross, Alan Cox

Chuck Ebbert wrote:

>  I backported this patch to 2.6.9 but haven't tested it yet.  It requires the
> 'spurious oomkill' patch I posted earlier in this thread.  Early reports
> are that it stops the freezes during heavy paging.

 OK here's one that actually compiles.  (3AM was not a good time to be
making patches.)

# mm_swap_token_disable.patch
#       include/linux/swap.h -0 +1
#       mm/rmap.c -0 +3
#       mm/thrash.c -1 +4
#
#       NOTE: On 2.6.9 there is no sysctl to change
#             swap_token_default_timeout.
#
#       Based on a patch by Con Kolivas for 2.6.10
#       Backported to 2.6.9 by Chuck Ebbert <76306.1226@compuserve.com>
#
--- 2.6.9.1/include/linux/swap.h
+++ 2.6.9.2/include/linux/swap.h
@@ -230,6 +230,7 @@
 
 /* linux/mm/thrash.c */
 extern struct mm_struct * swap_token_mm;
+extern unsigned long swap_token_default_timeout;
 extern void grab_swap_token(void);
 extern void __put_swap_token(struct mm_struct *);
 
--- 2.6.9.1/mm/rmap.c
+++ 2.6.9.2/mm/rmap.c
@@ -394,6 +394,9 @@ int page_referenced(struct page *page, i
 {
        int referenced = 0;
 
+       if (!swap_token_default_timeout)
+               ignore_token = 1;
+
        if (page_test_and_clear_young(page))
                referenced++;
 
--- 2.6.9.1/mm/thrash.c
+++ 2.6.9.2/mm/thrash.c
@@ -19,7 +19,11 @@ unsigned long swap_token_check;
 struct mm_struct * swap_token_mm = &init_mm;
 
 #define SWAP_TOKEN_CHECK_INTERVAL (HZ * 2)
-#define SWAP_TOKEN_TIMEOUT (HZ * 300)
+#define SWAP_TOKEN_TIMEOUT     0
+/*
+ * Currently disabled; Needs further code to work at HZ * 300.
+ */
+unsigned long swap_token_default_timeout = SWAP_TOKEN_TIMEOUT;
 
 /*
  * Take the token away if the process had no page faults
_
--
Please take it as a sign of my infinite respect for you,
that I insist on you doing all the work.
                                        -- Rusty Russell

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

* Re: Linux 2.6.9-ac16
@ 2004-12-21  9:11 Chuck Ebbert
  0 siblings, 0 replies; 21+ messages in thread
From: Chuck Ebbert @ 2004-12-21  9:11 UTC (permalink / raw)
  To: Chris Friesen; +Cc: linux-kernel, Chris Ross, Alan Cox

Chris Friesen wrote:

> Chuck Ebbert wrote:
> 
> >  Nobody has found an answer for the freezes, which persist even in the latest
> > 2.6.10-rc but there's a vm_writeout throttling patch in -ac that I haven't tried.
>
> Heh.  Figures.  Those freezes are what bothers me most, since I've already got a 
> patch that protects critical processes from being OOM-killed as long as they're 
> sane.

 I backported this patch to 2.6.9 but haven't tested it yet.  It requires the
'spurious oomkill' patch I posted earlier in this thread.  Early reports
are that it stops the freezes during heavy paging.

 Also appended is a newer patch from Andrew that may help as well.  It's obviously
correct but I haven't done anything with it yet so it may not apply to 2.6.9.

===================================================================================
# mm_swap_token_timeout.patch
#
#       Disable token-based thrashing control when token
#       timeout is zero and make zero the default value.
#
#       NOTE: On 2.6.9 there is no way to change the
#       token timeout at runtime like there is on 2.6.10.
#       You must edit mm/thrash.c instead.
#
#       Patch by Con Kolivas for 2.6.10-rc3 20 Dec 2004
#       Backported to 2.6.9 by Chuck Ebbert
#
--- 2.6.9.1/mm/rmap.c
+++ 2.6.9.2/mm/rmap.c
@@ -395,6 +395,9 @@ int page_referenced(struct page *page, i
 {
        int referenced = 0;
 
+       if (!SWAP_TOKEN_TIMEOUT)
+               ignore_token = 1;
+
        if (page_test_and_clear_young(page))
                referenced++;
 
--- 2.6.9.1/mm/thrash.c
+++ 2.6.9.2/mm/thrash.c
@@ -19,7 +19,10 @@ unsigned long swap_token_check;
 struct mm_struct * swap_token_mm = &init_mm;
 
 #define SWAP_TOKEN_CHECK_INTERVAL (HZ * 2)
-#define SWAP_TOKEN_TIMEOUT (HZ * 300)
+#define SWAP_TOKEN_TIMEOUT     0
+/*
+ * Currently disabled; Needs further code to work at HZ * 300.
+ */
 
 /*
  * Take the token away if the process had no page faults
===================================================================================
# We haven't been incrementing local variable total_scanned since the
# scan_control stuff went in.  That broke kswapd throttling.
# 
# Signed-off-by: Andrew Morton <akpm@osdl.org>
# ---
# 
#  25-akpm/mm/vmscan.c |    1 +
#  1 files changed, 1 insertion(+)
# 
# diff -puN mm/vmscan.c~vmscan-total_scanned-fix mm/vmscan.c
--- 25/mm/vmscan.c~vmscan-total_scanned-fix     2004-12-20 12:47:25.855643408 -0800
+++ 25-akpm/mm/vmscan.c 2004-12-20 12:47:25.860642648 -0800
@@ -1063,6 +1063,7 @@ scan:
                        shrink_slab(sc.nr_scanned, GFP_KERNEL, lru_pages);
                        sc.nr_reclaimed += reclaim_state->reclaimed_slab;
                        total_reclaimed += sc.nr_reclaimed;
+                       total_scanned += sc.nr_scanned;
                        if (zone->all_unreclaimable)
                                continue;
                        if (zone->pages_scanned >= (zone->nr_active +
===================================================================================
--
Please take it as a sign of my infinite respect for you,
that I insist on you doing all the work.
                                        -- Rusty Russell

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

* Re: Linux 2.6.9-ac16
  2004-12-20 16:19               ` Chris Ross
@ 2004-12-20 19:54                 ` Alan Cox
  0 siblings, 0 replies; 21+ messages in thread
From: Alan Cox @ 2004-12-20 19:54 UTC (permalink / raw)
  To: Chris Ross; +Cc: Jan Engelhardt, LKML

On Llu, 2004-12-20 at 16:19, Chris Ross wrote:
> What sort of reasonably OK? My experience on my 64MB P2-350 Dell 
> Optiplex is that 2.6.9-acXX will kill things off at random even when the 
> machine isn't out of memory. If you have any particular test cases you 
> would like run just ask, I understand that some of the difficulty is 
> that the VM developers have machines plenty big enough not to suffer the 
> problems.

I normally test down to about 100Mbyte but not lower. The 2.6.9-ac15
tree introduced Marcelo's suggested fix for the VM writeout oom cases.


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

* Re: Linux 2.6.9-ac16
  2004-12-20 14:48             ` Alan Cox
@ 2004-12-20 16:19               ` Chris Ross
  2004-12-20 19:54                 ` Alan Cox
  0 siblings, 1 reply; 21+ messages in thread
From: Chris Ross @ 2004-12-20 16:19 UTC (permalink / raw)
  To: Alan Cox; +Cc: Jan Engelhardt, LKML


Alan Cox escreveu:
> Or boot with mem=. I actually do test runs with -ac on a 128Mb box with
> about 16Mb of that stolen as video ram. 2.6.9 isn't behaving perfectly
> but seems reasonably ok for most loads except brokenoffice

What sort of reasonably OK? My experience on my 64MB P2-350 Dell 
Optiplex is that 2.6.9-acXX will kill things off at random even when the 
machine isn't out of memory. If you have any particular test cases you 
would like run just ask, I understand that some of the difficulty is 
that the VM developers have machines plenty big enough not to suffer the 
problems.

The embedded market is different, we're not likely to see multi-gigabyte 
mobile phones, PDAs, PVRs or whatever for a while at least. 64MB is not 
*that* small.

Regards,
Chris R.

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

* Re: Linux 2.6.9-ac16
  2004-12-18 15:06           ` Jan Engelhardt
  2004-12-18 16:01             ` Chris Ross
@ 2004-12-20 14:48             ` Alan Cox
  2004-12-20 16:19               ` Chris Ross
  1 sibling, 1 reply; 21+ messages in thread
From: Alan Cox @ 2004-12-20 14:48 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: LKML

On Sad, 2004-12-18 at 15:06, Jan Engelhardt wrote:
> >> Andrea's fix and the selection changes should go into 2.6.10, but I
> >> suspect that the VM gurus havent still reached a point, where they
> >> agree. I also have the feeling that the problem is partially ignored.
> >> Obviously has everybody plenty of memory in his boxes. </rant off>
> 
> Well you can always take out your VMware and cut it down to <few RAM> MB by 
> hand, just to get an experience how "low-end" users feel.

Or boot with mem=. I actually do test runs with -ac on a 128Mb box with
about 16Mb of that stolen as video ram. 2.6.9 isn't behaving perfectly
but seems reasonably ok for most loads except brokenoffice


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

* Re: Linux 2.6.9-ac16
  2004-12-18 15:11         ` Bill Davidsen
  2004-12-18 15:06           ` Jan Engelhardt
@ 2004-12-19 16:22           ` Thomas Gleixner
  1 sibling, 0 replies; 21+ messages in thread
From: Thomas Gleixner @ 2004-12-19 16:22 UTC (permalink / raw)
  To: Bill Davidsen; +Cc: Chris Ross, Chris Friesen, Alan Cox, LKML, Andrew Morton

On Sat, 2004-12-18 at 10:11 -0500, Bill Davidsen wrote:

> As someone who runs most new versions first on a 96MB (slow) machine, I 
> would agree that this is a desirable change. I'm not sure yet if the 
> selection is optimal, but it's better than the stock kernel, which seems 
> to follow the "kill them all, let god sort it out" principle.

The main fix IMHO is Andrea's correct solution of the invocation
including the removal of the evidential useless protection timers and
counters in out_of_memory().

The selection mechanism is now nearly matching the comment above badness
() much better: "this algorithm has been meticulously tuned to meet the
principle of least surprise ... (be careful when you change it)".

It can always be further optimized, but it will never meet the
expectation of all users

tglx



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

* Re: Linux 2.6.9-ac16
  2004-12-18 15:06           ` Jan Engelhardt
@ 2004-12-18 16:01             ` Chris Ross
  2004-12-20 14:48             ` Alan Cox
  1 sibling, 0 replies; 21+ messages in thread
From: Chris Ross @ 2004-12-18 16:01 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: LKML


Jan Engelhardt escreveu:
> Well you can always take out your VMware and cut it down to <few RAM> MB by 
> hand, just to get an experience how "low-end" users feel.

It's not just "low-end users", my interest is in the embedded space 
where it's normal to dimension things as closely (read, cheaply) as 
possible. Random processes being killed off is not helpful, especially 
when the system hasn't actually run out of memory which is the case with 
the 2.6.9+

Regards,
Chris R.

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

* Re: Linux 2.6.9-ac16
  2004-12-18  6:01       ` Thomas Gleixner
@ 2004-12-18 15:11         ` Bill Davidsen
  2004-12-18 15:06           ` Jan Engelhardt
  2004-12-19 16:22           ` Thomas Gleixner
  0 siblings, 2 replies; 21+ messages in thread
From: Bill Davidsen @ 2004-12-18 15:11 UTC (permalink / raw)
  To: tglx; +Cc: Chris Ross, Chris Friesen, Alan Cox, LKML, Andrew Morton

Thomas Gleixner wrote:

> Andrea fixed the invocation problem, which also handles the reentrancy
> problem in a clean way. It get's us rid of the ugly count, time,
> whatever mechanisms in out_of_memory which was designed to cover the
> invocation problem but was not able to prevent reentrancy and the
> resulting overkill (kill a random amount of processes even if enough
> memory is available). 
> 
> I added the "Take child processes into account" modification for the
> whom to kill selection on top of that and I was not able to make it
> missbehave with my different test scenarios.
> 
> The patches are available in parts in this thread and the final combined
> patch is there:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=110269783227867&w=2
> 
> 2.6.10-rc3 contains a partial fix for the erroneous invocation problem,
> but it is not as effective as Andrea's solution and it still runs into
> overkill once the oom mechanism is invoked.
> 
> Andrea's fix and the selection changes should go into 2.6.10, but I
> suspect that the VM gurus havent still reached a point, where they
> agree. I also have the feeling that the problem is partially ignored.
> Obviously has everybody plenty of memory in his boxes. </rant off>

As someone who runs most new versions first on a 96MB (slow) machine, I 
would agree that this is a desirable change. I'm not sure yet if the 
selection is optimal, but it's better than the stock kernel, which seems 
to follow the "kill them all, let god sort it out" principle.

-- 
bill davidsen <davidsen@tmr.com>
   CTO TMR Associates, Inc
   Doing interesting things with small computers since 1979

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

* Re: Linux 2.6.9-ac16
  2004-12-18 15:11         ` Bill Davidsen
@ 2004-12-18 15:06           ` Jan Engelhardt
  2004-12-18 16:01             ` Chris Ross
  2004-12-20 14:48             ` Alan Cox
  2004-12-19 16:22           ` Thomas Gleixner
  1 sibling, 2 replies; 21+ messages in thread
From: Jan Engelhardt @ 2004-12-18 15:06 UTC (permalink / raw)
  Cc: LKML

>> Andrea's fix and the selection changes should go into 2.6.10, but I
>> suspect that the VM gurus havent still reached a point, where they
>> agree. I also have the feeling that the problem is partially ignored.
>> Obviously has everybody plenty of memory in his boxes. </rant off>

Well you can always take out your VMware and cut it down to <few RAM> MB by 
hand, just to get an experience how "low-end" users feel.

> As someone who runs most new versions first on a 96MB (slow) machine, I would
> agree that this is a desirable change. I'm not sure yet if the selection is
> optimal, but it's better than the stock kernel, which seems to follow the "kill
> them all, let god sort it out" principle.



Jan Engelhardt
-- 

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

* Re: Linux 2.6.9-ac16
  2004-12-17 15:45     ` Chris Ross
@ 2004-12-18  6:01       ` Thomas Gleixner
  2004-12-18 15:11         ` Bill Davidsen
  0 siblings, 1 reply; 21+ messages in thread
From: Thomas Gleixner @ 2004-12-18  6:01 UTC (permalink / raw)
  To: Chris Ross; +Cc: Chris Friesen, Alan Cox, LKML

On Fri, 2004-12-17 at 16:45 +0100, Chris Ross wrote:
> Hi Chris,
> 
> Chris Friesen escreveu:
> > As it stands, 2.6.10-rc2-mm4 still shows nasty behaviour in OOM
> > conditions, killing off more tasks than strictly required, and
> > locking up the system for 10-15secs while doing it.
> > 
> > I'd be much happier doing a quick and dirty scan and knocking off 
> > something *now* rather than locking up the system.  Surely it can't
> > take 60 billion cycles of cpu time to pick a task to kill.
> 
> Thomas Gleixner has been particularly interested the algorithms for 
> deciding which task to kill (like me he got fed up with it picking the 
> ssh daemon first).
> 
> See for example the thread at 
> http://marc.theaimsgroup.com/?t=110189482200001&r=1&w=2
> 
> Some of the delay is by design: when OOM is reached we kill something 
> off, wait a bit for the memory to be freed and become available to the 
> system again, check whether now have enough memory, if not rinse and 
> repeat. However, as I recall this is compounded by 2.6.9 having some 
> nasty rentrancy problems causing the OOM killer to be called something 
> like 100 times instead of once.
> 
> Perhaps Thomas could enlighten us as to the current state of play here?

Andrea fixed the invocation problem, which also handles the reentrancy
problem in a clean way. It get's us rid of the ugly count, time,
whatever mechanisms in out_of_memory which was designed to cover the
invocation problem but was not able to prevent reentrancy and the
resulting overkill (kill a random amount of processes even if enough
memory is available). 

I added the "Take child processes into account" modification for the
whom to kill selection on top of that and I was not able to make it
missbehave with my different test scenarios.

The patches are available in parts in this thread and the final combined
patch is there:
http://marc.theaimsgroup.com/?l=linux-kernel&m=110269783227867&w=2

2.6.10-rc3 contains a partial fix for the erroneous invocation problem,
but it is not as effective as Andrea's solution and it still runs into
overkill once the oom mechanism is invoked.

Andrea's fix and the selection changes should go into 2.6.10, but I
suspect that the VM gurus havent still reached a point, where they
agree. I also have the feeling that the problem is partially ignored.
Obviously has everybody plenty of memory in his boxes. </rant off>

Andrea's fix revealed some GFP_ flag related problems, which should be
addressed seperately. Detailed explanation is in the mail thread.

tglx



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

* Re: Linux 2.6.9-ac16
  2004-12-17 11:23 ` Arjan van de Ven
@ 2004-12-17 18:54   ` Francois Romieu
  0 siblings, 0 replies; 21+ messages in thread
From: Francois Romieu @ 2004-12-17 18:54 UTC (permalink / raw)
  To: Arjan van de Ven; +Cc: Alan Cox, Linux Kernel Mailing List

Arjan van de Ven <arjan@infradead.org> :
> On Thu, 2004-12-16 at 18:43 +0000, Alan Cox wrote:
> > o	Acenic must use __devinitdata for hotplug	(Alan Cox)
> > 	| based on an RH patch
[...]
>  MODULE_PARM_DESC(tx_ratio, "AceNIC/3C985/GA620 ratio of NIC memory used
> for TX/RX descriptors (range 0-63)");
> 
> 
> -static char version[] __initdata =
> +static char version[] __devinitdata =
>    "acenic.c: v0.92 08/05/2002  Jes Sorensen, linux-acenic@SunSITE.dk\n"
>    "http://home.cern.ch/~jes/gige/acenic.html\n";
> 
> you broke this one... :-)
> the version var *cannot* be initdata of any kind, since the ethtool
> ioctl uses the variable. End Of Story(tm)

Episode 2

Actually ethtool_drvinfo.get_drvinfo() does not use _this_ version var
in the acenic driver. Btw it would be waaaaay too long for the 32 bytes
allowed in the misc fields of struct ethtool_drvinfo) (I messed the
r8169 driver this way).

--
Ueimor

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

* Re: Linux 2.6.9-ac16
  2004-12-17 14:51   ` Chris Friesen
@ 2004-12-17 15:45     ` Chris Ross
  2004-12-18  6:01       ` Thomas Gleixner
  0 siblings, 1 reply; 21+ messages in thread
From: Chris Ross @ 2004-12-17 15:45 UTC (permalink / raw)
  To: Chris Friesen; +Cc: Alan Cox, Linux Kernel Mailing List, Thomas Gleixner

Hi Chris,

Chris Friesen escreveu:
> As it stands, 2.6.10-rc2-mm4 still shows nasty behaviour in OOM
> conditions, killing off more tasks than strictly required, and
> locking up the system for 10-15secs while doing it.
> 
> I'd be much happier doing a quick and dirty scan and knocking off 
> something *now* rather than locking up the system.  Surely it can't
> take 60 billion cycles of cpu time to pick a task to kill.

Thomas Gleixner has been particularly interested the algorithms for 
deciding which task to kill (like me he got fed up with it picking the 
ssh daemon first).

See for example the thread at 
http://marc.theaimsgroup.com/?t=110189482200001&r=1&w=2

Some of the delay is by design: when OOM is reached we kill something 
off, wait a bit for the memory to be freed and become available to the 
system again, check whether now have enough memory, if not rinse and 
repeat. However, as I recall this is compounded by 2.6.9 having some 
nasty rentrancy problems causing the OOM killer to be called something 
like 100 times instead of once.

Perhaps Thomas could enlighten us as to the current state of play here?

Regards,
Chris R.


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

* Re: Linux 2.6.9-ac16
  2004-12-17 13:08 ` Chris Ross
@ 2004-12-17 14:51   ` Chris Friesen
  2004-12-17 15:45     ` Chris Ross
  0 siblings, 1 reply; 21+ messages in thread
From: Chris Friesen @ 2004-12-17 14:51 UTC (permalink / raw)
  To: Chris Ross; +Cc: Alan Cox, Linux Kernel Mailing List

Chris Ross wrote:
> 
> Alan Cox escreveu:
> 
>> Further small fixes for different minor things. A merge of some of the 
>> small
>> cleanups from Fedora work and also the fixes for the igmp and vc holes. 
> 
> 
> This kernel still suffers from the faulty OOM killing troubles of 
> vanilla 2.6.9. Could you please pick up at least one of the recent fixes 
> for this problem, such as as Rik van Riel's?

Can someone point me to his patch?  I've been working on and off to try and get 
reasonable OOM behaviour.  As it stands, 2.6.10-rc2-mm4 still shows nasty 
behaviour in OOM conditions, killing off more tasks than strictly required, and 
locking up the system for 10-15secs while doing it.

I'd be much happier doing a quick and dirty scan and knocking off something 
*now* rather than locking up the system.  Surely it can't take 60 billion cycles 
of cpu time to pick a task to kill.

Chris


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

* Re: Linux 2.6.9-ac16
  2004-12-16 18:43 Alan Cox
  2004-12-17 11:23 ` Arjan van de Ven
@ 2004-12-17 13:08 ` Chris Ross
  2004-12-17 14:51   ` Chris Friesen
  1 sibling, 1 reply; 21+ messages in thread
From: Chris Ross @ 2004-12-17 13:08 UTC (permalink / raw)
  To: Alan Cox; +Cc: Linux Kernel Mailing List


Alan Cox escreveu:
> Further small fixes for different minor things. A merge of some of the small
> cleanups from Fedora work and also the fixes for the igmp and vc holes. 

This kernel still suffers from the faulty OOM killing troubles of 
vanilla 2.6.9. Could you please pick up at least one of the recent fixes 
for this problem, such as as Rik van Riel's? As it stands -ac16 is 
unusable on a machine with as "little" as 64MB RAM, and bigger machines 
will just run into the same problems later.


  For example the following happens when trying to compile UML on a 64MB 
machine, whereas the same build completes without incident on 2.6.10-rc2-mm4

   LD      init/built-in.o
   LD      .tmp_vmlinux1
collect2: ld terminated with signal 9 [Killed]
make[2]: *** [.tmp_vmlinux1] Error 1
make[2]: Leaving directory `/home/chris/src/umlsim-65/kernel/linux-2.6.9'
make[1]: *** [linux-2.6.9/vmlinux] Error 2
make[1]: Leaving directory `/home/chris/src/umlsim-65/kernel'
make: *** [all] Error 1


The entry in the system log for this is

Dec 17 13:46:39 sleepy oom-killer: gfp_mask=0xd2
Dec 17 13:46:40 sleepy DMA per-cpu:
Dec 17 13:46:40 sleepy cpu 0 hot: low 2, high 6, batch 1
Dec 17 13:46:40 sleepy cpu 0 cold: low 0, high 2, batch 1
Dec 17 13:46:40 sleepy Normal per-cpu:
Dec 17 13:46:40 sleepy cpu 0 hot: low 4, high 12, batch 2
Dec 17 13:46:40 sleepy cpu 0 cold: low 0, high 4, batch 2
Dec 17 13:46:40 sleepy HighMem per-cpu: empty
Dec 17 13:46:40 sleepy
Dec 17 13:46:40 sleepy Free pages:         244kB (0kB HighMem)
Dec 17 13:46:40 sleepy Active:12016 inactive:499 dirty:0 writeback:0 
unstable:0
free:61 slab:1349 mapped:12003 pagetables:130
Dec 17 13:46:40 sleepy DMA free:60kB min:60kB low:120kB high:180kB 
active:11960k
B inactive:256kB present:16384kB
Dec 17 13:46:40 sleepy protections[]: 0 0 0
Dec 17 13:46:40 sleepy Normal free:184kB min:188kB low:376kB high:564kB 
active:3
6104kB inactive:1740kB present:49144kB
Dec 17 13:46:40 sleepy protections[]: 0 0 0
Dec 17 13:46:40 sleepy HighMem free:0kB min:128kB low:256kB high:384kB 
active:0k
B inactive:0kB present:0kB
Dec 17 13:46:40 sleepy protections[]: 0 0 0
Dec 17 13:46:40 sleepy DMA: 1*4kB 1*8kB 1*16kB 1*32kB 0*64kB 0*128kB 
0*256kB 0*5
12kB 0*1024kB 0*2048kB 0*4096kB = 60kB
Dec 17 13:46:40 sleepy Normal: 0*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 
0*256kB
0*512kB 0*1024kB 0*2048kB 0*4096kB = 184kB
Dec 17 13:46:40 sleepy HighMem: empty
Dec 17 13:46:40 sleepy Swap cache: add 2428, delete 2095, find 168/191, 
race 0+0
Dec 17 13:46:40 sleepy Out of Memory: Killed process 11648 (ld).


Regards,
Chris R.

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

* Re: Linux 2.6.9-ac16
  2004-12-16 18:43 Alan Cox
@ 2004-12-17 11:23 ` Arjan van de Ven
  2004-12-17 18:54   ` Francois Romieu
  2004-12-17 13:08 ` Chris Ross
  1 sibling, 1 reply; 21+ messages in thread
From: Arjan van de Ven @ 2004-12-17 11:23 UTC (permalink / raw)
  To: Alan Cox; +Cc: Linux Kernel Mailing List

On Thu, 2004-12-16 at 18:43 +0000, Alan Cox wrote:
> o	Acenic must use __devinitdata for hotplug	(Alan Cox)
> 	| based on an RH patch

diff -u --new-file --recursive --exclude-from /usr/src/exclude
linux.vanilla-2.6.9/drivers/net/acenic.c
linux-2.6.9/drivers/net/acenic.c
--- linux.vanilla-2.6.9/drivers/net/acenic.c    2004-10-20
23:16:54.000000000 +0100
+++ linux-2.6.9/drivers/net/acenic.c    2004-12-16 17:13:10.799818288
+0000
@@ -444,7 +444,7 @@
 MODULE_PARM_DESC(tx_ratio, "AceNIC/3C985/GA620 ratio of NIC memory used
for TX/RX descriptors (range 0-63)");


-static char version[] __initdata =
+static char version[] __devinitdata =
   "acenic.c: v0.92 08/05/2002  Jes Sorensen, linux-acenic@SunSITE.dk\n"
   "
http://home.cern.ch/~jes/gige/acenic.html\n";



you broke this one... :-)
the version var *cannot* be initdata of any kind, since the ethtool
ioctl uses the variable. End Of Story(tm)



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

* Linux 2.6.9-ac16
@ 2004-12-16 18:43 Alan Cox
  2004-12-17 11:23 ` Arjan van de Ven
  2004-12-17 13:08 ` Chris Ross
  0 siblings, 2 replies; 21+ messages in thread
From: Alan Cox @ 2004-12-16 18:43 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Further small fixes for different minor things. A merge of some of the small
cleanups from Fedora work and also the fixes for the igmp and vc holes. 

Arjan van de Ven is now building RPMS of the kernel and those can be found
in the RPM subdirectory and should be yum-able. Expect the RPMS to lag the
diff a little as the RPM builds and tests do take time.

The HPT366 rework project is also not ready (its gone back to the drawing
board until the current panic is over if you are a volunteer and wondered 
what is up).

ftp://ftp.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.9/

Key:	o	- only in -ac
	*	- already fixed upstream
	X	- discarded later as wrong
	+	- ac specific (fix not relevant to non -ac)

2.6.9-ac16
o	Fix sys5 semaphore wakeups			(Manfred Spraul)
*	Avoid maths overflow on VC resize		(Georgi Guninski,
							 Linus Torvalds)
*	Add D-Link DGE-528T to the r8169 PCI idents	(Francois Romieu)
*	Fix cciss ioctl problems			(Mike Miller)
*	Fix wrong IRQ problems with DAC960		(Bjorn Helgaas)
*	Minor typo fix in cdrom driver			(efalk@google)
*	Add 3PARdata SCSI idents for sparse lun		(Castor Fu)
o	Fix Paul Laufer's email address			(Paul Laufer)
*	More ATI IDE PCI identifiers			(Enrico Scholza)
*	Fix some /proc oopses				(Manfred Spraul)
o	Fix build of CS461x gameport			(Adrian Bunk)
*	Get CAPI isdn back working on SMP		(Karsten Keil)
o	Fix AT2701FX AMD PCnet32 on fibre		(Guido Guenther)
*	Fix igmp source filter counting/corruption	(Chris Wright)
*	Fix missing SHM_LOCK priviledge checks		(Hugh Dickins)
*	Clear %ebp on sysenter based syscall exit	(Brad Spender)
o	Suggest irqpoll when we get screaming irqs	(Alan Cox)
o	Fix misleading microcode message		(Arjan van de Ven)
o	Don't warn on scsi ioctl kmalloc fail		(Arjan van de Ven)
o	Acenic must use __devinitdata for hotplug	(Alan Cox)
	| based on an RH patch
o	Add a 1620 byte slab cache for ethernet frames	(Arjan van de Ven)
o	Fix 64bit build of kconfig			(Arjan van de Ven)
o	Add more AC97 table data

2.6.9-ac15
o	Kill "open failed" cdrom message.		(Alan Cox)
	| This is a natural event from code poking around
	| doing CD detection etc
o	Fix crash with aacraid double complete	(Mark Salyzyn, Tom Coughlan,
						 Alan Cox)
*	Fix oops after unload ip_conntrack_standalone
o	Allow cross compile of x86_32 kernel on x86_64	(Arjan van de Ven)
*	Fix a small leak in the ip option code		(Dave Miller)
*	Fix a small leak in ip_conntrack_ftp		(Dave Miller)
*	Fix control message validation		(Herbert Xu, Georgi Guninski)
*	Backported key xfrm patches	(Patrick McHardy, Dave Miller, 
					 		Herbert Xu)
*	Backport vm OOM fix				(Marcelo Tosatti)
o	Make sx8 naming follow LANANA			(Jeremy Katz)
o	Fix getblk_slow hang				(Chris Mason)
o	Watchdog support for early cobalt ALi hardware	(Mike Waychison)
o	Fix cable detect on older promise 	(Bartlomiej Zolnierkiewicz)
o	Fix vm86 irq handling				(Pavel Pisa)

2.6.9-ac14
o	Use LBA28 if a drive does LBA48 but rejects	(Alan Cox)
	SET_MAX_EXT and friends (Maxtor 4R120L4 ..)
*	Make sure md uses rdev_dec properly		(Neil Brown)
*	Remove bogus WARN from futex v signal 		(Rusty Russell)
*	Fix via-rhine crash on resume			(Randy Dunlap)
*	Fix x86+64 IRQ loss bug on uniprocessor		(Petr Vandrovec)
*	Don't print undefined sibling data on em64t	(Venkatesh Pallipadi)
*	Further overlapping vma/exec fixes for 64bit	(Zou Nan hai)
	boxes
*	Re-enable escaped ACPI debug			(Len Brown)
*	SELinux hook for ia32 emulation fd pass check	(Mitchell Blank Jr)
*	Fix DECnet oops in accept			(Patrick Caulfield)
*	Fix cciss oops with config tools		(Andrew Patterson)
*	io_edgeport oops fix				(Greg Kroah-Hartmann)
*	Fix leak in bio_copy error path			(Jens Axboe)
o	Fix buffer sizes on ia32 emulation for x86_64	(Jeremy Fitzhardinge,
							 Chris Wright)
o	Initial patch for ide_abort hang		(Alan Cox)
o	Fix serveral ide timing violations on reset	(Alan Cox)
+	Fix dumb bug in ALi/ULi driver			(Alan Cox)
+	Fix /proc/ide/*/capacity bug			(Alan Cox)
o	Support CSB6-R Serverworks raid			(Alan Cox)
o	Teach ide-cd to use sense data for file system	(Alan Cox)
	requests
	- This means you get better diagonstics on CD errors
	- It means a partial I/O failure will get you back the ok sectors
	- It may fix the problem some users have with ISO copying and ide-cd

2.6.9-ac13 
	Accidentally released 2.6.9-ac12 as this

2.6.9-ac12
o	Configurable 100/1Khz clock for x86		(James Bottomley)
	| 100Hz is great for battery life
o	Fixup subordinate bus plumbing for boxes like
	the HP zv5000z (somewhat experimental)
+	Fix ACPI=n build				(Chuck Ehbert)
o	EDD boot options				(Matt Domsch)
*	Fix proc reporting of ppid		(Dinakar Guniguntula)
	| Backport c/o Ingo
o	Improved smbfs fixes				(Chuck Ebhert)
o	Fix reset problems with older 3c59x/3c90x	(John Linville)
o	Fix oops if aic79xx is loaded with no hardware	(Adam Manthei)
	present
o	Token ring locking fix
*	Fix smc9192					(Russell King)
*	Refcount scsi command queue properly		(James Bottomley)
*	Fix CD-ROM returns from new TUR code		(James Bottomley)
*	Fix scribble after close on Nvidia ethernet	(Manfred Spraul)
*	Fix queuecommand() behaviour for USB disk	(Alan Stern)
	after unplug
*	Fix xtime adjustment error that could cause	(Andrew Morton)
	clock slew
*	Fix IPv6 fragmentation problems			(Herbert Xu)
*	Fix mm ref leak in proc/cmdline			(Prasanna Meda)
*	Fix a tiny race in the timer code		(Ben Herrenschmidt)
*	Fix crash if security_load_policy fails		(Jeff Mahoney)
*	Fix scsi queue return error in ide-scsi		(Jens Axboe)
	and 3w-9xxx
*	Avoid overflow in sg timeouts with large user	(James Bottomley)
	provided timeout
*	Fix statm accounting				(Hugh Dickins)
	| Backported by Jason Baron
*	Fix mlock v VM_IO hang				(Hugh Dickins)
*	Fix Intel i8x0 PCM audio with ALSA		(Takashi Iwai)
*	Fix further visor fix problems			(Roger Luethi)
o	New ATI IXP PCI identifier			(Pascal Lengard)
o	Fix URL for lanana				(Alexander Stohr)
*	Fix via_irqpic to not be __devinit		(Andi Kleen)
*	PPP multilink fixes				(Paul Mackerras)
*	Backport OSS emulation fixes			(Marcel Sebek)

2.6.9-ac11
o	Allow users to force it8212 out of raid mode	(David Howells)
o	On some platforms the flashing keylights	(Alan Cox)
	riggers bogus keyboard warnings. The error
	appears from other stuff too like keyboard
	switches so kill it
o	Add support for ALi 5228 PATA IDE		(Clear Zhang)
o	Add support for newer ALi AGP			(Clear Zhang)
*	Seqpacket and SELinux fix			(James Morris)
o	Fix ide /proc and legacy devices problem	(Alan Cox)

2.6.9-ac10
o	Fix tiny ide-cd race				(Alan Cox)
*	Remove an apparently bogus IDE CD blacklist   (Srihari Vijayaraghavan)
	for a drive confirmed to work
o	Correct vendor of some Cyrix chipsets in docs
*	Error path locking fix for appletalk		(Andries Brouwer)
*	Remove a suspicious __initdata			(Andries Brouwer)
*	Further binfmt_elf work				(Jakub Jelinek)
o	SMBfs overflow fixes				(Stefan Esser)
	| Collated together by Juan Quintela
*	Don't spew debug on bioses with ACPI		(Len Brown)
	breakpoints left in them.
*	Further NFS disconnected dentry fix		(Neil Brown)
*	tmpfs inode accounting leak fix			(Hugh Dickins)
*	x86-64: Fix user triggerable oops on debugger	(Andi Kleen)
	vsyscall page access	
*	Serialize datagram read on AF_UNIX		(Dave Miller)
*	Disable PnP BIOS when using ACPI		(Adam Belay)
*	Fix oops in visor driver caused by DoS fixes	(Roger Luethi)
o	Fix several IDE drivers that assumed > 0 was	(Alan Cox)
	also an error return for pci probe functions
*	Backport netlink updates/fixes from 10rc2	(Herbert Xu,
							 Dave Miller)
*	Backport multihop routing oops fix		(Christian Ehrhardt)
*	Backport TSO fixes				(Herbert Xu)

2.6.9-ac9
*	Linus moved the remap_page_range flag fixes 	(Linus Torvalds)
	into the function. Now this has had some 
	testing do the same in -ac and shrink the
	diff a lot
*	Fix low memory oops in device mapper		(N Cunningham)
*	Fix duplicate kfree in dm-target error path	(Alasdair Kergon)
*	Use a new bio on a md retry			(Neil Brown)
+	Fix mediabay compile				(Alan Cox)
*	Increase EDD array size				(Matt Domsch)
*	Fix locking error/DoS in k15kusb105		(Greg Kroah-Hartmann)
*	Fix locking hang on error path of whiteheat	(Greg Kroah-Hartmann)
*	Use sector_t for md (fixes some large raids)	(Neil Brown)
*	Fix further USB locking errors			(Greg Kroah-Hartmann)
*	Report the right thing on a pnpbios fault	(Andy Whitcroft)
*	Add PCI quirk for VIA audio			(David Shaohua Li)
*	Fix neighbour table counter atomicity		(Herbert Xu)
*	Error out on early exec before rootfs		(Chris Wright)
*	Fix a.out crash with junk binary and 		(Chris Wright)
	virtual memory limits disabled
*	Import atomic_int_return for the neighbour fix	(KaiKai Kohei)

2.6.9-ac8
*	Fix binfmt_exec partial read problem		(Chris Wright)
*	Fix E820 overflow on x86-64 as per x86-32	(Andi Kleen)

2.6.9-ac7
o	Redo the fixups in siimage/it8212 so they	(Alan Cox)
	always actually work
o	Fix up both drives on an IT8212 raid		(Alan Cox)
*	Remove a debug printk/2 sec wait from CS5520	(Alan Cox)
*	Move partial decode test to ide-cs/delkin only	(Alan Cox)
*	Fix partial decode test for no serial number	(Alan Cox)
o	Add support for disks on early rev IT821x	(Alan Cox)
+	Allow ide-disk to be modular again		(Tomas Szepe)
*	Further fixup fixes			(Bartlomiej Zolnierkiewicz)
*	Apple Ipod-mini size reporting fix		(Avi Kivity)
*	Initial (non SMP) cdu31a driver rescue		(Ondrej Zary)
o	Allow READ_BUFFER_CAPACITY to SG_IO users	(Daniel Drake)

2.6.9-ac6
+	Fix problem with -ac5 msdos changes		(Vojtech Pavlik)

2.6.9-ac5
o	Fix oops in and enable IT8212 driver		(Alan Cox)
o	Minor delkin driver fix				(Mark Lord)
*	Fix NFS mount hangs with long FQDN		(Jan Kasprzak)
	| I've used this version as its clearly correct for 2.6.9 
	| although it might not be the right future solution
o	Fix overstrict FAT checks stopping reading of	(Vojtech Pavlik)
	some devices like Nokia phones
*	Fix misdetection of some drives as MRW capable	(Peter Osterlund)
*	Fix promise 20267 hang with very long I/O's	(Krzysztof Chmielewski)
*	Fix a case where serial break was not sent for	(Paul Fulghum)
	the right time.
*	Fix S/390 specific SACF hole			(Martin Schwidefsky)
*	NVidia ACPI timer override			(Andi Kleen)
o	Correct VIA PT880 PCI ident (and AGP ident)	(Dave Jones)
*	Fix EDID/E820 corruption 			(Venkatesh Pallipadi)
*	Tighten security on TIOCCONS			(od@suse.de)
*	Fix incorrect __init s that could cause crash	(Randy Dunlap)

2.6.9-ac4
*	Fix minor DoS bug in visor USB driver		(Greg Kroah-Hartmann)
o	Delkin cardbus IDE support			(Mark Lord)
+	Fix SMP hang with IDE unregister		(Mark Lord)
*	Fix proc file removal with IDE unregister	(Mark Lord)
*	Fix aic7xxx sleep with locks held and debug	(Luben Tuikov)
	spew
o	First take at HPT372N problem fixing		(Alan Cox)

2.6.9-ac3
*	Fix syncppp/async ppp problems with new hangup	(Paul Fulghum)
*	Fix broken parport_pc unload			(Andrea Arcangeli)
*	Security fix for smbfs leak/overrun		(Urban Widmark)
*	Stop i8xx_tco making some boxes reboot on load	(wim@iguana)
*	Fix cpia/module tools deadlock			(Peter Pregler)
+	Fix missing suid_dumpable export		(Alan Cox)

2.6.9-ac2
+	Fix invalid kernel version stupidity		(Adrian Bunk)
*	Compiler ICE workaround/fixup			(Linus Torvalds)
*	Fix network DoS bug in 2.6.9			(Herbert Xu)
	| Suggested by Sami Farin
o	Flash lights on panic as in 2.4			(Andi Kleen)

2.6.9-ac1

Security Fixes
*	Set VM_IO on areas that are temporarily		(Alan Cox)
	marked PageReserved (Serious bug)
o	Lock ide-proc against driver unload		(Alan Cox)
	(very low severity)

Bug Fixes
o	Working IDE locking				(Alan Cox)
	| And a great deal of review by Bartlomiej
o	Handle E7xxx boxes with USB legacy flaws	(Alan Cox)
	
Functionality
o	Allow booting with "irqpoll" or "irqfixup"	(Alan Cox)
	on systems with broken IRQ tables.
o	Support for setuid core dumping in some		(Alan Cox)
	environments (off by default)
*	Support for drives that don't report geometry
o	IT8212 support (raid and passthrough)		(Alan Cox)
o	Allow IDE to grab all unknown generic IDE	(Alan Cox)
	devices (boot with "all-generic-ide")
o	Restore PWC driver				(Luc Saillard)

Other
*	Small pending tty clean-up to moxa		(Alan Cox)
*	Put VIA Velocity (tm) adapters under gigabit	(VIA)


--
Subliminal URLS: www.no2id.org, www.magnatune.com, www.ntk.net
	         www.machinaesupremacy.com www.bzflag.org



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

end of thread, other threads:[~2004-12-22  6:48 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-17 23:35 Linux 2.6.9-ac16 Chuck Ebbert
2004-12-20 17:27 ` Chris Friesen
  -- strict thread matches above, loose matches on Subject: below --
2004-12-22  6:44 Chuck Ebbert
2004-12-21 23:49 Chuck Ebbert
2004-12-21 23:58 ` Nick Piggin
2004-12-22  2:49 ` Con Kolivas
2004-12-21  9:11 Chuck Ebbert
2004-12-16 18:43 Alan Cox
2004-12-17 11:23 ` Arjan van de Ven
2004-12-17 18:54   ` Francois Romieu
2004-12-17 13:08 ` Chris Ross
2004-12-17 14:51   ` Chris Friesen
2004-12-17 15:45     ` Chris Ross
2004-12-18  6:01       ` Thomas Gleixner
2004-12-18 15:11         ` Bill Davidsen
2004-12-18 15:06           ` Jan Engelhardt
2004-12-18 16:01             ` Chris Ross
2004-12-20 14:48             ` Alan Cox
2004-12-20 16:19               ` Chris Ross
2004-12-20 19:54                 ` Alan Cox
2004-12-19 16:22           ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).