public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@turbolabs.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Michael Peddemors <michael@wizard.ca>, linux-kernel@vger.kernel.org
Subject: Re: Current Max Swap size? Performance issues
Date: Mon, 19 Nov 2001 02:48:56 -0700	[thread overview]
Message-ID: <20011119024856.E1308@lynx.no> (raw)
In-Reply-To: <1005948151.10803.18.camel@mistress> <20011116163346.L1308@lynx.no> <m1itc88ue5.fsf@frodo.biederman.org>
In-Reply-To: <m1itc88ue5.fsf@frodo.biederman.org>; from ebiederm@xmission.com on Sat, Nov 17, 2001 at 11:28:50PM -0700

On Nov 17, 2001  23:28 -0700, Eric W. Biederman wrote:
> Andreas Dilger <adilger@turbolabs.com> writes:
> > > 2 GIG swap partition (Is this still the limit?)
> > 
> > Yes, still the limit.  It turns out that this is not an on-disk format
> > limit, but rather an in-memory structure limit, in case you cared.  For
> > non-x86 platforms, there is a different limit.
> 
> Where?  The limit should be about 64GB or so on x86.  If it isn't it should
> be just a couple of lines to change it.  Or is the limit the vmalloc
> of the swap_map?

In my mm/swapfile.c code, I added comments about this, when I was adding
support for LABELs in swapfiles.  The new swapfile limits say:

/* The new swap format has a page count and a list of page
 * numbers which overlap bad blocks on disk.  We are limited
 * to 2^32 pages by the on-disk format (info.last_page and
 * page numbers in badpages are both unsigned ints, 16TiB for
 * 4kiB pages).  We are also limited by SWP_ENTRY() which
 * varies by architecture (64GiB for ia32).
 */
maxpages = SWP_OFFSET(SWP_ENTRY(0,~0UL)) - 1;

and include/asm-i386/pgtable.h has:
#define SWP_TYPE(x)		(((x).val >> 1) & 0x3f)
#define SWP_OFFSET(x)		((x).val >> 8)
#define SWP_ENTRY(type, offset) ((swp_entry_t){((type) << 1) | ((offset) << 8)})


So, we are limited to 2^24 pages of swap from a single swapfile, and 4kB
pages (2^12), so 2^36 bytes of swap, which would be 64GB per swapfile.

Hmm, this means I don't know where the 2GB limit comes from.  If we look
at the vmalloc of maxpages, we have 2x maxpages, so 2^25, or 32MB allocated
for a 64GB swapfile.  I don't know if that would be a problem.  For a 
2GB swapfile, that would only be 1MB for the swap_map allocation.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/


      reply	other threads:[~2001-11-19  9:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-16 22:02 Current Max Swap size? Performance issues Michael Peddemors
2001-11-16 23:33 ` Andreas Dilger
2001-11-18  6:28   ` Eric W. Biederman
2001-11-19  9:48     ` Andreas Dilger [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20011119024856.E1308@lynx.no \
    --to=adilger@turbolabs.com \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@wizard.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox