lkml.org 
[lkml]   [2004]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Active Memory Defragmentation: Our implementation & problems
    On Wed, 4 Feb 2004, Alok Mooley wrote:

    > --- "Richard B. Johnson" <root@chaos.analogic.com> >
    > If this is an Intel x86 machine, it is impossible
    > > for pages
    > > to get fragmented in the first place. The hardware
    > > allows any
    > > page, from anywhere in memory, to be concatenated
    > > into linear
    > > virtual address space. Even the kernel address space
    > > is virtual.
    > > The only time you need physically-adjacent pages is
    > > if you
    > > are doing DMA that is more than a page-length at a
    > > time. The
    > > kernel keeps a bunch of those pages around for just
    > > that
    > > purpose.
    > >
    > > So, if you are making a "memory defragmenter", it is
    > > a CPU time-sink.
    > > That's all.
    >
    > What if the external fragmentation increases so much
    > that it is not possible to find a large sized block?
    > Then, is it not better to defragment rather than swap
    > or fail?
    >
    > -Alok

    All "blocks" are the same size, i.e., PAGE_SIZE. When RAM
    is tight the content of a page is written to the swap-file
    according to a least-recently-used protocol. This frees
    a page. Pages are allocated to a process only one page at
    a time. This prevents some hog from grabbing all the memory
    in the machine. Memory allocation and physical page allocation
    are two different things, I can malloc() a gigabyte of RAM on
    a machine. It only gets allocated when an attempt is made
    to access a page.

    Cheers,
    Dick Johnson
    Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
    Note 96.31% of all statistics are fiction.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:00    [W:0.032 / U:120.060 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site