[lkml]   [2008]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectKSWAPD Algorithm
    Hi All,
    I countered a weird problem with kswapd:
    it runs in some infinite loop trying to swap until order 10 of zone
    highmem is OK, While zone higmem (as I understand) has nothing to do
    with contiguous physical memory (cause there is no 1-1 mapping) which
    means kswapd will continue to try to balance order 10 of zone highmem
    forever (or until someone release a very large chunk of highmem).
    Can anyone please explain me the algorithm of kswapd and why it tries
    to balance order 10 of zone higmem ?

    I build an instrumented kernel with debug messages in
    "zone_watermark_ok" function, and from the code and debug messages I
    see that "zone_watermark_ok" returns 0 when kswapd invokes it (through
    balance_pgdat) in order to decide if zone highmem is balanced or not,
    which lead in some configurations to infinite loop of kswapd ( if no
    large chunks of highmem released) . I added a condition to
    "balance_pgdat" so it doesn't try to balance order higher than 1 in
    zone highmem and this conditon solved the problem, what are the risks
    with such solution? isn't it a bug that kswapd is looking for
    continuous memory in zone highmem ( as I understand there is no 1-1
    mapping in zone highmem which is meaningless in kswapd)?

    Wassim Dagash.

     \ /
      Last update: 2008-12-03 08:05    [W:0.071 / U:0.976 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site