Opened 7 years ago

Last modified 7 years ago

#67 new enhancement

Vbox should try to use PAE ram over 4GB if possible

Reported by: Allan Owned by:
Priority: minor Milestone: Enhanced
Component: Driver Keywords:
Cc:

Description

For Vbox clients, getting enough RAM is not easy on a normal OS/2 system. A way to work around this for newer systems would be to try to use RAM addressable via PAE. This have already been proven possible through the QSinit boot loader - that implements a ramdisk as an example to use >4GB RAM

Implementing a driver, that can give Vbox access to all available RAM over 4GB, could be a _major_ advantage - even for running several OS/2 apps on a normal OS/2 system, that would normally require too much memory to co-exist

Change History (2)

comment:1 Changed 7 years ago by herwigb

There are plans to implement something like that.

comment:2 Changed 7 years ago by Valery V. Sedletski

There is an idea to implement swapping of VM memory to a file, or to memory above 4 GB, via the PAE ramdisk driver from QSINIT loader or PSE36 mode related new KEE's in OS/4 kernel. (The latter case should be an order of magnitude quicker). Also, with QSINIT, the missing part is an API for drivers (an IDC call is required for that. But only ioctl API for ring3 apps exists atm). The best would be creating a layer/library for transparently-accessing these two backends. The necessary modifications to VBox code seems to be the paging (nested paging) related parts of VBox runtime (ring0 part). So, the vboxdrv.sys/VMMR0 needs to manage (shadow) page tables on its own, so that, any access to memory above 4 GB limit causes swapping of PAE/PSE36 memory to a buffer below 4 GB. And swapping the unneeded pages out. So, it is required to allocate some pool in lower 4 GB for each VM. Then pages in this pool are swapped each time with the pool above 4 GB, which is assigned to the same VM. So, we need also some management for these two pools.

PS: Also, I think, we'll need a configuration option (a checkbox) for each VM. So, if it is checked, than the memory above 4 GB is used. Also, we need a slider control, which specifies a percent of memory, allocated below 4 GB.

Last edited 7 years ago by Valery V. Sedletski (previous) (diff)
Note: See TracTickets for help on using tickets.