Am 10.08.2011 um 10:47 schrieb Jeremy Chadwick:

> On Wed, Aug 10, 2011 at 08:27:27AM +0000, Holger Kipp wrote:
>>
>> Am 10.08.2011 um 10:09 schrieb Daniel Kalchev:
>>
>>> On 10.08.11 10:47, Jeremy Chadwick wrote:
>>>> On Wed, Aug 10, 2011 at 10:13:14AM +0300, Daniel Kalchev wrote:
>>>>> I am more concerned that with 32GB of swap in single device I could not 
>>>>> dump kernel core, with 64GB of RAM.
>>>> My apologies if I've misunderstood something, but why does this of any
>>>> concern?  Machine has 64GB RAM.  You have a single swap slice that's
>>>> effectively 32GB.  How is a kernel panic worth of 64GB RAM going to fit
>>>> into a 32GB swap slice?
>>>>
>>> The swap partitions are 64GB, it is only that FreeBSD refuses to use more 
>>> than 32GB of each for swap. But.. it might happily dump core to the whole 
>>> partition, tests will show.
>>
>> I doubt it. Have you tried increasing kern.maxswzone? It is the size in KB 
>> (for 32GB it is set to 33554432).
>> kern.maxswzone: Maximum memory for swap metadata
>
> The variable is set to 32MBytes, not 32GBytes.  The default size is
> defined as variable VM_SWZONE_SIZE_MAX, which is 32*1024*1024 per
> sys/i386/include/param.h and sys/amd64/include/param.h.
>
> Furthermore, this variable does not do what you're implying.

Ah, then I misinterpreted the output of "man loader" which states:

     kern.maxswzone
                   Limits the amount of KVM to be used to hold swap meta
                   information, which directly governs the maximum amount of
                   swap the system can support.

> So we're back to where we started: swap slices/partitions can be greater
> than 32GBytes in size, but "something" is limiting the maximum amount of
> memory which can be dumped to a single swap swap to 32GBytes.

Anyway, there is one thing in /usr/src/sys/vm/swap_pager.c (so if you get this
warning (reducing size to maximum of... per swap unit)), this might be the
reason:

        /*
         * If we go beyond this, we get overflows in the radix
         * tree bitmap code.
         */
        mblocks = 0x40000000 / BLIST_META_RADIX;
        if (nblks > mblocks) {
                printf("WARNING: reducing size to maximum of %lu blocks per 
swap unit\n",
                        mblocks);
                nblks = mblocks;
        }


Hope this is of some help.

Best regards,
Holger



--
Holger Kipp
Diplom-Mathematiker
Senior Consultant

Tel. : +49 30 436 58 114
Fax. : +49 30 436 58 214
Mobil: +49 178 36 58 114
Email: holger.k...@alogis.com

alogis AG
Alt-Moabit 90b
D-10559 Berlin

web : http://www.alogis.com

----------------------------------------------------------

alogis AG
Sitz/Registergericht: Berlin/AG Charlottenburg, HRB 71484
Vorstand: Arne Friedrichs, Joern Samuelson
Aufsichtsratsvorsitzender: Reinhard Mielke
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to