Jump to content











Photo
- - - - -

Allocating beyond 4GB using awealloc.


  • Please log in to reply
23 replies to this topic

#1 cornflake

cornflake

    Newbie

  • Members
  • 11 posts
  •  
    United States

Posted 29 November 2011 - 07:09 AM

I have awealloc driver 1.5.3.5 that installed with ImDisk. I followed the directions to enable it:

sc config awealloc start= system
net start awealloc

I have 6GB of memory on a Windows Vista x86 SP2 system. Vista can only see about 3.5GB. What I want to do is use everything above 4GB for a ramdisk for readyboost. When I try to create a ramdisk 2GB in size it does not work:

>imdisk -a -f \\.\awealloc -s 2G -m R: -p "/fs:ntfs /q /y"
Creating device...
Error creating virtual disk:
Not enough storage is available to process this command.


The event viewer shows:
Error allocating above 8 GB.
Error allocating above 6 GB.
Error allocating above 5 GB.
Error allocating above 4 GB.
Error allocating physical memory.

The biggest drive I can create seems to be around 1300MB. And that may or may not work, depending on just when I execute the command. So is Windows already using that extra 2GB of memory?

Thanks

#2 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 29 November 2011 - 10:28 AM

It seems that physical memory limits for each Windows release also limits how much memory that can be accessed through AWE. It is not clearly specified how much this is but reading this information from MS and then after some experiments I have came to the conclusion that 32 bit Windows Server 2003 can access at least 6 GB and 32 bit Windows XP only 4 GB. I have not tested Vista on that much memory so I can't say.

This old article only mentions server editions too:
http://support.microsoft.com/kb/283037
But I am not sure about various editions of Windows 7 though.

Also, make sure that physical address extension is turned on.
http://msdn.microsof...y/ff542202.aspx (Specific howto: http://www.bleepingc...topic93761.html)
PAE frustration: http://forums.techar...ance/983028.htm

#3 cornflake

cornflake

    Newbie

  • Members
  • 11 posts
  •  
    United States

Posted 29 November 2011 - 08:41 PM

I tried in RamDisk Plus 11.5.390 and it works. Here's how I did it:

First I went to the memory page and clicked the 'unmanaged' button.
In unmanaged I clicked 'configure' and enabled unmanaged memory and direct addressing. Seen in the pic:

Posted Image

Now unmanaged memory info shows 6144MB installed, 0 reserved, and direct addressing enabled.

Memory Information page shows:
Page size: 4096 bytes

NUMA count: 1

NUMA node: 00000001h



Node    Available Memory (MB)

0    3438



Estimated total memory available: 3438 MB



The System Management BIOS reports 6144 MB of

main memory installed in the system.


PFN information (click the PFN info button) shows:
Page size: 4096 bytes

Start: 100000h

End: 19FFFFh

Range: 0

Pages available: 655360


Then I chose to allocate a RamDisk. I chose 'Direct address memory NOT managed by Windows':
Posted Image


The next part I went with a manual PFN base. The reason I did that is because I want to use the 2GB after the 4GB limit. The way RamDisk Plus seems to work is it allows me to use almost everything after the 3438MB that is managed by Windows. I am erring on the side of caution for now because of problems I've read but if I'm being too cautious or misunderstand let me know what you guys think.
To determine the offset for the final 2GB I did:
6GB-4GB=2GB extra (2147483648 bytes)
2147483648 / 4096 = 524288 pages of memory (aka 80000 in hex)
19FFFF - 80000 = 11FFFF is my offset
RamDisk size set to 2048MB

That works, while awealloc doesn't work. The question is why, I guess.

#4 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 29 November 2011 - 08:49 PM

That works, while awealloc doesn't work. The question is why, I guess.


Answer is that awealloc uses AWE allocation. That is, not directly accessing memory that cannot be allocated through various memory API functions available in Windows kernel.

Read more in this thread:
http://reboot.pro/7973/

#5 cornflake

cornflake

    Newbie

  • Members
  • 11 posts
  •  
    United States

Posted 29 November 2011 - 10:06 PM

Hi thanks. I can't find anything out about the /AWE switch. Is that documented somewhere?

I assume I have AWE enabled. PAE is enabled. Can you think of any reason why I may not be able to access the full 2GB using AWE? It's weird because I can access different amounts, like I can access 1300MB and allocate it using awealloc but not always. Is there a diagnostic to determine what may be possibly accessing memory using AWE? Or can I zero the AWE section, dump it and then do 'strings' or something to see what is being held in there?

#6 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 30 November 2011 - 12:06 AM

Hi thanks. I can't find anything out about the /AWE switch. Is that documented somewhere?

I assume I have AWE enabled. PAE is enabled. Can you think of any reason why I may not be able to access the full 2GB using AWE? It's weird because I can access different amounts, like I can access 1300MB and allocate it using awealloc but not always. Is there a diagnostic to determine what may be possibly accessing memory using AWE? Or can I zero the AWE section, dump it and then do 'strings' or something to see what is being held in there?


I would think that reason might be that your Windows edition can only allocate from memory below 4 GB and from that only around 1300 MB might be available of the total 2 GB kernel address space, somewhat depending on how much memory other kernel components (drivers etc) are using at the moment. But I don't know enough about these things to give a definite answer.

#7 cornflake

cornflake

    Newbie

  • Members
  • 11 posts
  •  
    United States

Posted 01 December 2011 - 03:02 AM

I would think that reason might be that your Windows edition can only allocate from memory below 4 GB and from that only around 1300 MB might be available of the total 2 GB kernel address space, somewhat depending on how much memory other kernel components (drivers etc) are using at the moment. But I don't know enough about these things to give a definite answer.

ah, ok. I was under the impression that awealloc allocated at or past 4GB. I read this "Anyway, I have recently got a few reports that the new awealloc driver works perfectly for allocating memory beyond 4 GB on 32 bit Windows 7." but either due to my hardware or Vista I can't access past 4GB using AWE. I still can't find documentation for that /AWE switch either.

#8 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 01 December 2011 - 07:08 AM

ah, ok. I was under the impression that awealloc allocated at or past 4GB.


It tries the following: First allocating above 8 GB, then above 6 GB, 5 GB, 4 GB and finally if all that has failed it allocates anywhere it could find free memory addresses.

I read this "Anyway, I have recently got a few reports that the new awealloc driver works perfectly for allocating memory beyond 4 GB on 32 bit Windows 7." but either due to my hardware or Vista I can't access past 4GB using AWE. I still can't find documentation for that /AWE switch either.


It seems that /AWE switch was something experimental in early versions of one of the server editions and that AWE is automatically turned on nowadays when you have more than 3 GB of memory. Anyway, that in particular should never be a problem, really. Just make sure that PAE is turned on.

#9 mr_nice_2k@yahoo.com

mr_nice_2k@yahoo.com

    Newbie

  • Members
  • 16 posts
  •  
    Ecuador

Posted 26 February 2012 - 05:41 PM

I have the same problem. I'm not able to use any unmanaged memory by Windows.

I am using Windows 7 32bit Ultimate. Recently I installed 8GB of RAM (Windows says Installed Memory 8,00GB, 2,90 GB Usable) and was planning to use the excess RAM as a Ramdisk. As a longtime, enthusiuastic user of Imdisk it was the program of my choice but it failed this time. I did everything as mentioned but without success.

These were my steps:

Turned on PAE (via bcdedit) and confirmed it's status
Installed awealloc as described and started it
Then i used a command like "imdisk -a -f \\.\awealloc -s 4G -m R: -p "/fs:ntfs /q /y"" to install a ramdisk via awealloc

It failed with the error "Not enough storage is available to process this command." I also tried to create a smaller Ramdisk and then extend it's size, but without luck.

Othere programs like RamDisk Plus 11 by SuperSpeed or Primo Ramdisk by Romex Software, however, were able to use my extra RAM as a Ramdisk.

Do you have any solutions to solve my problem? Obviously the described way does not work.

Best regards,
mkay

#10 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 26 February 2012 - 07:00 PM

I have the same problem. I'm not able to use any unmanaged memory by Windows.

I am using Windows 7 32bit Ultimate. Recently I installed 8GB of RAM (Windows says Installed Memory 8,00GB, 2,90 GB Usable) and was planning to use the excess RAM as a Ramdisk. As a longtime, enthusiuastic user of Imdisk it was the program of my choice but it failed this time.


Your conclusions seems to correspond to what has been reported by other users. Awealloc as it works today seems unable to do this.

From discussions in other threads and forums we could probably say that we would need a new kind of awealloc driver that does not use AWE but some other allocation method, MmMapIoSpace or similar. I have had some plans of making something like that and I know that some other developers have had the same thoughts. But I have lots of other ongoing projects and I don't feel that this one should be given too much priority. There are many other solutions available that can do this. You just cannot use ImDisk for it, but there are still solutions available.

#11 cornflake

cornflake

    Newbie

  • Members
  • 11 posts
  •  
    United States

Posted 26 February 2012 - 08:35 PM

Othere programs like RamDisk Plus 11 by SuperSpeed or Primo Ramdisk by Romex Software, however, were able to use my extra RAM as a Ramdisk.

Do you have any solutions to solve my problem? Obviously the described way does not work.


Well, I have a solution. I am going to upgrade my Vista x86 OS to x64. I hate it when people give solutions like that ;)The bottom line for me is I need access to more memory. RamDisk Plus was unreliable in testing. There were all sorts of weird problems where the direct access ramdisk locked and the application didn't work. Their support was not helpful because working with direct access is an unsupported option. I understand the reasons for that and I've concluded that there really is no good or reliable solution other than to upgrade my operating system. You may have better luck depending on your BIOS, hardware, and operating system.

#12 kreon

kreon

    Newbie

  • Members
  • 23 posts

Posted 27 February 2012 - 03:08 PM

I have been tested on win7 x64 and 6 gb ram.Sometime I tried all the programs.
The largest possible value is ramdisk about ~1.5 Gb ram,if you set larger, and even it should be done-Sooner or later you get BSOD .Of course always swap disabled.

#13 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 27 February 2012 - 03:13 PM

I have been tested on win7 x64 and 6 gb ram.Sometime I tried all the programs.
The largest possible value is ramdisk about ~1.5 Gb ram,if you set larger, and even it should be done-Sooner or later you get BSOD .Of course always swap disabled.


Depending on what you mean with "ramdisk", but your test results surprises somewhat. I have got reports from users who have successfully used awealloc backed disks larger than 4 GB on 64-bit Windows 7. I don't know how good or bad "native" ImDisk virtual memory disks with such large sizes work, though.

#14 kreon

kreon

    Newbie

  • Members
  • 23 posts

Posted 27 February 2012 - 03:37 PM

Depending on what you mean with "ramdisk", but your test results surprises somewhat. I have got reports from users who have successfully used awealloc backed disks larger than 4 GB on 64-bit Windows 7. I don't know how good or bad "native" ImDisk virtual memory disks with such large sizes work, though.


All ramdisk  ramdisk plus, Dataram Ramdisk ,GiliSoft RamDisk and Imdisk I did not enable never PAE.Always Switched off the Windows swap file.Larger than 1,5 gb can operate stably hour, two to three,but it always ends with BSOD.But over 2 GB Ram disk can not be started,unless immediately after startup.

Edited by kreon, 27 February 2012 - 03:39 PM.


#15 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 27 February 2012 - 03:42 PM

All ramdisk ramdisk plus, Dataram Ramdisk ,GiliSoft RamDisk and Imdisk I did not enable never PAE.Always Switched off the Windows swap file.Larger than 1,5 gb can operate stably hour, two to three,but it always ends with BSOD.But over 2 GB Ram disk can not be started,unless immediately after startup.


Sounds like you create a virtual memory backed disk directly with ImDisk then. Have you tried with awealloc as well? At least you should not see any difference between creating it right after system startup compared to creating it later, in that case.

#16 kreon

kreon

    Newbie

  • Members
  • 23 posts

Posted 27 February 2012 - 03:56 PM

Thank you for your help, I'll try :air_fan: I have not tried, because I'm afraid, whether is it completely safe for the hardware.That is PAE and Awealloc. :cheers:

#17 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 27 February 2012 - 04:01 PM

Thank you for your help, I'll try :air_fan: I have not tried, because I'm afraid, whether is it completely safe for the hardware.That is PAE and Awealloc. :cheers:


PAE or not with awealloc should not make any practical difference on 64-bit platforms.

#18 friske

friske

    Member

  • Members
  • 97 posts
  •  
    Italy

Posted 29 March 2012 - 03:13 PM

I tried to use awelloc with / PAE in XP Pro and got no errors .
But it seems to me that the ram used is not over 3GB.
How can I check ?
With First Ramdisk by Romex Software PAE works perfectly .

#19 friske

friske

    Member

  • Members
  • 97 posts
  •  
    Italy

Posted 18 May 2012 - 10:24 AM

An additional driver, awealloc, in this install package supports memory allocation beyond 4 GB limit on 32 bit Windows through address window extension, AWE.

This means that not awealloc manages the memory PAE between 3 and 4 GB?
because to me it does not work , but seems to work Gavotte.

#20 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 18 May 2012 - 11:06 AM

This means that not awealloc manages the memory PAE between 3 and 4 GB?
because to me it does not work , but seems to work Gavotte.


Awealloc uses awe memory allocation. It seems that there are different size limits in different versions of Windows. For example, I can allocate between 4 GB and 6 GB in 32 bit Windows Server 2003, but not on 32 bit WIndows XP. Gavotte and a few others seem to just ignore any Windows memory allocation semantics and simply use memory above a certain memory limit. This is not really safe, since there is no way to tell if that memory is in use by something else and may get corrupted, or really free.

Please read this and other threads in this forum about this matter. You are not the first one asking and there have been a lot written about it.

#21 friske

friske

    Member

  • Members
  • 97 posts
  •  
    Italy

Posted 29 May 2012 - 10:08 AM

Gavotte and a few others seem to just ignore any Windows memory allocation semantics and simply use memory above a certain memory limit. This is not really safe, since there is no way to tell if that memory is in use by something else and may get corrupted, or really free.there have been a lot written about it.

Do it is possible to add a option to works as Gavotte, knowing the risks involved?

#22 Olof Lagerkvist

Olof Lagerkvist

    Silver Member

  • Developer
  • 964 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 29 May 2012 - 10:27 AM

Do it is possible to add a option to works as Gavotte, knowing the risks involved?


Yes. Easiest is probably to write a driver quite like 'awealloc', but uses this I/O space allocation instead. It requires, of course, some amount of work and I am afraid that would not happen soon.

It has been discussed now and then between me and a few others with driver development experience. So it might be that someone else makes such a driver available.

#23 friske

friske

    Member

  • Members
  • 97 posts
  •  
    Italy

Posted 28 January 2013 - 11:50 AM

Yes. Easiest is probably to write a driver quite like 'awealloc', but uses this I/O space allocation instead. It requires, of course, some amount of work and I am afraid that would not happen soon.

It would be a very important function in a ramdisk if I could have the time to implement it.



#24 rmattuschka

rmattuschka
  • Members
  • 2 posts
  •  
    Germany

Posted 03 June 2013 - 09:50 AM

You can install the patch from "http://www.saferbyte...al-perspective/" to use the memory above 4GB. then does the option / awealloc in ImDisk works.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users