public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Upd: [PATCH NG] alloc_pages_limit & pages_min
       [not found] <Pine.LNX.4.33L.0108231600020.31410-100000@duckman.distro.conectiva>
@ 2001-08-23 19:28 ` Roger Larsson
  2001-08-24  9:25   ` Stephan von Krawczynski
  0 siblings, 1 reply; 4+ messages in thread
From: Roger Larsson @ 2001-08-23 19:28 UTC (permalink / raw)
  To: Rik van Riel, Linus Torvalds, alan.cox
  Cc: linux-mm, Linux Kernel Mailing List

Riel convinced be to back off a part of the patch.
Here comes an updated one.

-- 
Roger Larsson
Skellefteå
Sweden

*******************************************
Patch prepared by: roger.larsson@norran.net
Name of file: linux-2.4.8-pre3-pages_min-R3

--- linux/mm/page_alloc.c.orig  Thu Aug 23 19:58:55 2001
+++ linux/mm/page_alloc.c       Thu Aug 23 21:19:20 2001
@@ -253,11 +253,26 @@

                if (z->free_pages + z->inactive_clean_pages >= water_mark) {
                        struct page *page = NULL;
-                       /* If possible, reclaim a page directly. */
-                       if (direct_reclaim)
+
+                       /*
+                        * Reclaim a page from the inactive_clean list.
+                        * If needed, refill the free list up to the
+                        * low water mark.
+                        */
+                       if (direct_reclaim) {
                                page = reclaim_page(z);
-                       /* If that fails, fall back to rmqueue. */
-                       if (!page)
+
+                               while (page && z->free_pages < z->pages_min) {
+                                       __free_page(page);
+                                       page = reclaim_page(z);
+                               }
+
+                               /* let kreclaimd handle up to pages_high */
+                       }
+                       /* If that fails, fall back to rmqueue, but never let
+                       *  free_pages go below pages_min...
+                       */
+                       if (!page && z->free_pages >= z->pages_min)
                                page = rmqueue(z, order);
                        if (page)
                                return page;

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

* Re: Upd: [PATCH NG] alloc_pages_limit & pages_min
  2001-08-23 19:28 ` Upd: [PATCH NG] alloc_pages_limit & pages_min Roger Larsson
@ 2001-08-24  9:25   ` Stephan von Krawczynski
  2001-08-24 10:28     ` Roger Larsson
  0 siblings, 1 reply; 4+ messages in thread
From: Stephan von Krawczynski @ 2001-08-24  9:25 UTC (permalink / raw)
  To: Roger Larsson; +Cc: linux-kernel

On Thu, 23 Aug 2001 21:28:44 +0200
Roger Larsson <roger.larsson@norran.net> wrote:

> Riel convinced be to back off a part of the patch.
> Here comes an updated one.

Hello Roger,

this does not solve my problem with NFS-copies. Just for information. I tried and did not work.
Besides I expected the patch to make the free pages pool somehow bigger during file-copies, but ended up with this situation:

        total:    used:    free:  shared: buffers:  cached:
Mem:  921726976 918573056  3153920        0 12337152 816504832
Swap: 271392768        0 271392768
MemTotal:       900124 kB
MemFree:          3080 kB
MemShared:           0 kB
Buffers:         12048 kB
Cached:         797368 kB
SwapCached:          0 kB
Active:         473628 kB
Inact_dirty:    331796 kB
Inact_clean:      3992 kB
Inact_target:     1940 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       900124 kB
LowFree:          3080 kB
SwapTotal:      265032 kB
SwapFree:       265032 kB

The MemFree isn't really a lot compared to inact_dirty. knfsd fails at least.

Regards, Stephan


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

* Re: Upd: [PATCH NG] alloc_pages_limit & pages_min
  2001-08-24  9:25   ` Stephan von Krawczynski
@ 2001-08-24 10:28     ` Roger Larsson
  2001-08-24 12:50       ` Stephan von Krawczynski
  0 siblings, 1 reply; 4+ messages in thread
From: Roger Larsson @ 2001-08-24 10:28 UTC (permalink / raw)
  To: Stephan von Krawczynski; +Cc: linux-kernel

On Fridayen den 24 August 2001 11:25, Stephan von Krawczynski wrote:
> On Thu, 23 Aug 2001 21:28:44 +0200
>
> Roger Larsson <roger.larsson@norran.net> wrote:
> > Riel convinced be to back off a part of the patch.
> > Here comes an updated one.
>
> Hello Roger,
>
> this does not solve my problem with NFS-copies. Just for information. I
> tried and did not work. Besides I expected the patch to make the free pages
> pool somehow bigger during file-copies, but ended up with this situation:
>
> [snip]
>
> The MemFree isn't really a lot compared to inact_dirty. knfsd fails at
> least.

Wait a minute - knfsd... hmm...
Suppose knfsd allock without the wait flag - then it could cause this problems
by itself...

> Aug 21 20:14:51 admin kernel: __alloc_pages: 3-order allocation failed 
> (gfp=0x20/0).

Who is doing thise allocs?
Add a printout of current->pid with format %d
I bet it is knfsd itself (or a driver it uses).

Another thing to try is to run with non kernel nfs...

/RogerL

-- 
Roger Larsson
Skellefteå
Sweden

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

* Re: Upd: [PATCH NG] alloc_pages_limit & pages_min
  2001-08-24 10:28     ` Roger Larsson
@ 2001-08-24 12:50       ` Stephan von Krawczynski
  0 siblings, 0 replies; 4+ messages in thread
From: Stephan von Krawczynski @ 2001-08-24 12:50 UTC (permalink / raw)
  To: Roger Larsson; +Cc: linux-kernel

On Fri, 24 Aug 2001 12:28:13 +0200
Roger Larsson <roger.larsson@skelleftea.mail.telia.com> wrote:

> Another thing to try is to run with non kernel nfs...

Sorry, probably can't do that. As far as I read the docs from reiser there is a problem with unfs on large reiser disks. If I got that right, it will not work anyway, even without this specific problem.

Regards, Stephan

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

end of thread, other threads:[~2001-08-24 12:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <Pine.LNX.4.33L.0108231600020.31410-100000@duckman.distro.conectiva>
2001-08-23 19:28 ` Upd: [PATCH NG] alloc_pages_limit & pages_min Roger Larsson
2001-08-24  9:25   ` Stephan von Krawczynski
2001-08-24 10:28     ` Roger Larsson
2001-08-24 12:50       ` Stephan von Krawczynski

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