New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 803665 link

Starred by 3 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

Create a metric for total used virtual address space for Windows 32-bit.

Project Member Reported by erikc...@chromium.org, Jan 18 2018

Issue description

Windows 32-bit OOM-rate is directly affected by virtual address space usage, since there's a 4GB limit. A recent regression to virtual address space usage [but not commit charge] required investigation by many engineers over a several-day period to discover. A simple metric would have caught this much earlier in telemetry tests and/or canary/dev channels, and would have made it easier to debug.
 
Do we have any significant number of customers running on 32-bit Windows? On those machines the limit is almost always 2 GiB (occasionally 3 GB), but never 4 GiB.

Do you think there is any useful way that we can record the fragmentation level of the address space? There are two levels in which this might cause concern:

a) If we reserve 64 KiB out of every 512 KiB then we will have lots of address space left but we will not be able to reserve 512 KiB.
b) Address space is doled out on Windows in 64 KiB chunks so if we reserve 4 KiB out of every 64 KiB we may show that 90% of address space is available and yet not be able to reserve 64 KiB of RAM. I'm listing this separately because I don't know how this will be reported so we should keep the 64 KiB address-space allocation granularity in mind.

Or, it may be that there is no tidy way to summarize fragmentation and it is sufficient to just report reserved address space.

There are several metrics that are interesting w.r.t. fragmentation - I suggest that as a basic first step we just report the total. :)

Comment 3 by dskiba@chromium.org, Jan 18 2018

I think this can be useful on Android too. I remember talking to WebAssembly guys about address space exhaustion preventing allocation of large byte arrays.

Comment 4 by hpayer@chromium.org, Jan 19 2018

Cc: hpayer@chromium.org
Fragmentation is tricky to measure. You would need to provide a histogram that displays the number of continuous free blocks of certain sizes to have a more detailed view of the memory state.

Total is a good first step proxy.

Sign in to add a comment