delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/10/21/05:16:23

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: "Silvano Mantione" <mantione AT tele2 DOT it>
Newsgroups: comp.os.msdos.djgpp
References: <AGMkb.445$947 DOT 280 AT nntpserver DOT swip DOT net> <3f944c94 DOT sandmann AT clio DOT rice DOT edu>
Subject: HELP with DPMI under DOS - Part II
Lines: 85
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Message-ID: <8N6lb.684$947.530@nntpserver.swip.net>
NNTP-Posting-Host: 81.211.206.254
X-Complaints-To: news-abuse AT swip DOT net
X-Trace: nntpserver.swip.net 1066727620 81.211.206.254 (Tue, 21 Oct 2003 11:13:40 MET DST)
NNTP-Posting-Date: Tue, 21 Oct 2003 11:13:40 MET DST
Organization: A Customer of Tele2
X-Sender: -@d81-211-206-254.cust.tele2.it
Date: Tue, 21 Oct 2003 11:13:43 +0200
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Some notice:
1) for Ben Peddell: page-table overhead of about 1kB per 1MB of memory. Yes
infact I go out of DOS memory when I try to allocate more than 500Mb (as
Sandmann said).
2) for Meynard: I don't use EMM386, and Himem, after I tryed to free more
DOS with himem and dos=high I success to allocate few more megabyte but
never more 500Mb.
3) for DJ Deloirie: of course I allocate bytes.
4) for Eli Zaretskii : here is my short program:
int main(int argc, char *argv[])
{
char *pp;
unsigned int mem, M;

mem = _go32_dpmi_remaining_physical_memory();
printf("Avaiable %u\n", mem);
printf("Stack    %d\n", stackavail());

M=1024*1024*1024;

 do {   pp= malloc(M);
         M-=1024;
    } while(!pp);
  M+=1024;

 printf("Allocati %db, %fk, %fM\n", M, (double) M/1024, (double)
M/(1024*1024));

  printf("Finito\n");
 exit(0);
}
5) for Charlies Sandman: I will try to use sbrk(), I use to disable swap
file I will turn it on again (what about performance?). Some question where
I will find cwsdpmi r6 and pmode/dj ? What about the unreal mode with djgpp
executable ? If I use sbrk() I will have performance lost?

Thank You
Silvano






"Charles Sandmann" <sandmann AT clio DOT rice DOT edu> wrote in message
news:3f944c94 DOT sandmann AT clio DOT rice DOT edu...
> > I'm tryuing to allocate an array of 1023Mb on a PC with 1Gb RAM
installed
> > but I can't success.
>
> How are you trying to allocate the memory?  I would suggest you use
> sbrk() to allocate such large chunks.  I also suggest you remove EMM
> providers from your configuration, and tell us what GO32-V2 prints.
>
> In my testing, I routinely allocate 2GB of memory for testing CWSDPMI,
> so I know it works.  It will fail if you disable paging and try to
allocate
> more than about 500MB.  The long term fix for this is to use 4MB pages,
> which is available in CWSDPMI r6 wip/test release.
>
> > I try do modify the parameters of cwsdpmi with
> > cwsparam, I also try pmode/dj, but nothing to do.
>
> I've also allocated 2GB of memory with the most recent pmode/dj - so this
> points to maybe something in your configuration or how you are trying to
> allocate the memory.
>
> > I'm writing an application
> > memory critical and I'm planning to buy 2Gb more memory (3Gb total) do
> > someone have some idea to how can I allocate this memory in a single
array
> > under DOS?
>
> If you are planning to use more than 2GB, you *MUST* use sbrk() for
> allocation.  (There are limitations in malloc() which will prevent you
> from using more than 2GB in a single allocation).
>
> Using 3GB (or 4GB) of memory under DOS in a single array has generated
> lots of email to me - but so far no one has built a machine and tested
> more than 2GB of physical usage - and sent me results.
>
> You will want to use the r6 test release if you plan to use more than
> 500MB.


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019