linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* swap: which is the maximum size allowed?
@ 2007-01-29 19:46 Eriberto
  2007-01-29 20:02 ` Christoph Lameter
  0 siblings, 1 reply; 2+ messages in thread
From: Eriberto @ 2007-01-29 19:46 UTC (permalink / raw)
  To: linux-mm

Hello,

I am trying understand the swap. I would like to know which is the
maximum swap size on i386. Is 64 GB? If yes, how to know the origin of
this "magic" number? How to calculate it? I don't found it (Internet).

Thanks in advance.

Eriberto - Brazil


--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: swap: which is the maximum size allowed?
  2007-01-29 19:46 swap: which is the maximum size allowed? Eriberto
@ 2007-01-29 20:02 ` Christoph Lameter
  0 siblings, 0 replies; 2+ messages in thread
From: Christoph Lameter @ 2007-01-29 20:02 UTC (permalink / raw)
  To: Eriberto; +Cc: linux-mm

On Mon, 29 Jan 2007, Eriberto wrote:

> I am trying understand the swap. I would like to know which is the
> maximum swap size on i386. Is 64 GB? If yes, how to know the origin of
> this "magic" number? How to calculate it? I don't found it (Internet).

If you look at include/asm-i386/pgtable-2level.h


/*
 * Bits 0, 6 and 7 are taken, split up the 29 bits of offset
 * into this range:
 */
#define PTE_FILE_MAX_BITS       29

#define pte_to_pgoff(pte) \
        ((((pte).pte_low >> 1) & 0x1f ) + (((pte).pte_low >> 8) << 5 ))

#define pgoff_to_pte(off) \
        ((pte_t) { (((off) & 0x1f) << 1) + (((off) >> 5) << 8) + 
_PAGE_FILE })

/* Encode and de-code a swap entry */
#define __swp_type(x)                   (((x).val >> 1) & 0x1f)
#define __swp_offset(x)                 ((x).val >> 8)
#define __swp_entry(type, offset)       ((swp_entry_t) { ((type) << 1) | 
((offset) << 8) })
#define __pte_to_swp_entry(pte)         ((swp_entry_t) { (pte).pte_low })
#define __swp_entry_to_pte(x)           ((pte_t) { (x).val })

5 bits are used for the swap file number (__swp_type). This gives you 32 
swap fileswith 2^(29-5)*PAGE_SIZE = 64 GB each.

The swap size is bigger if you use 3 page table levels.

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2007-01-29 20:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-29 19:46 swap: which is the maximum size allowed? Eriberto
2007-01-29 20:02 ` Christoph Lameter

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).