Re: [PATCH v4 0/1] MR3598: ntdll: Add error and warning logs in more cases of memory exhaustion.
On Wed Jul 17 17:16:20 2024 +0000, theofficialgman wrote:
The issue I am having is when fully emulating x86_64 wine on arm64 using the likes of box64/fex/qemu. So the hardcode makes sense why the problem is happening. Thanks for the info, I'll look into using `get_host_addr_space_limit` for all architectures. That resolved the issue
@julliard please consider using the `get_host_addr_space_limit` for all architectures as is done with this patch ``` diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c index 0d88315..87b27fb 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -2436,8 +2436,6 @@ static NTSTATUS map_pe_header( void *ptr, size_t size, int fd, BOOL *removable ) return STATUS_SUCCESS; /* page protections will be updated later */ } -#ifdef __aarch64__ - /*********************************************************************** * get_host_addr_space_limit */ @@ -2464,6 +2462,7 @@ static void *get_host_addr_space_limit(void) return (void *)((addr << 1) - (granularity_mask + 1)); } +#ifdef __aarch64__ /*********************************************************************** * alloc_arm64ec_map @@ -3296,12 +3295,8 @@ void virtual_init(void) pthread_mutex_init( &virtual_mutex, &attr ); pthread_mutexattr_destroy( &attr ); -#ifdef __aarch64__ host_addr_space_limit = get_host_addr_space_limit(); TRACE( "host addr space limit: %p\n", host_addr_space_limit ); -#else - host_addr_space_limit = address_space_limit; -#endif if (preload_info && *preload_info) for (i = 0; (*preload_info)[i].size; i++) ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3598#note_76805
participants (1)
-
theofficialgman (ï¼ theofficialgman)