* [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
@ 2015-12-24 1:07 chengang
2015-12-24 1:21 ` Chen Gang
2015-12-24 9:54 ` Laurent Vivier
0 siblings, 2 replies; 5+ messages in thread
From: chengang @ 2015-12-24 1:07 UTC (permalink / raw)
To: riku.voipio, laurent; +Cc: peter.maydell, Chen Gang, Chen Gang, qemu-devel, rth
From: Chen Gang <chengang@emindsoft.com.cn>
In this case, real_end is larger than end, which may cause mmap_frag
process the incorrect memory region.
Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
linux-user/mmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 7b459d5..57b0361 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
/* handle the end of the mapping */
if (end < real_end) {
ret = mmap_frag(real_end - qemu_host_page_size,
- real_end - qemu_host_page_size, real_end,
+ real_end - qemu_host_page_size, end,
prot, flags, fd,
offset + real_end - qemu_host_page_size - start);
if (ret == -1)
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
2015-12-24 1:07 [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap chengang
@ 2015-12-24 1:21 ` Chen Gang
2015-12-24 9:54 ` Laurent Vivier
1 sibling, 0 replies; 5+ messages in thread
From: Chen Gang @ 2015-12-24 1:21 UTC (permalink / raw)
To: riku.voipio, laurent; +Cc: peter.maydell, qemu-devel, rth
Hello all:
After this patch, the i386 wine notepad.exe can be bootup and run under
sw_64 host.
- The initialization is very very slow (about 10 minutes), it is mainly
running in find_vma_reserved (consume more than 95% time resource). I
guess, it can be optimized.
- After initialization, for real using, the performance is acceptable!!
:-)
- Next, I shall try the real Windows XP notepad.exe.
I guess, we need not softmmu, at least, for wine, it is true (wine will
mmap all memory areas during initializing, and manage them by itself
when real running).
Welcome any suggestions, ideas, and completions.
BTW: Merry Christmas! :-)
Thanks.
On 2015年12月24日 09:07, chengang@emindsoft.com.cn wrote:
> From: Chen Gang <chengang@emindsoft.com.cn>
>
> In this case, real_end is larger than end, which may cause mmap_frag
> process the incorrect memory region.
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> linux-user/mmap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 7b459d5..57b0361 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
> /* handle the end of the mapping */
> if (end < real_end) {
> ret = mmap_frag(real_end - qemu_host_page_size,
> - real_end - qemu_host_page_size, real_end,
> + real_end - qemu_host_page_size, end,
> prot, flags, fd,
> offset + real_end - qemu_host_page_size - start);
> if (ret == -1)
>
--
Chen Gang (陈刚)
Open, share, and attitude like air, water, and life which God blessed
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
2015-12-24 1:07 [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap chengang
2015-12-24 1:21 ` Chen Gang
@ 2015-12-24 9:54 ` Laurent Vivier
2015-12-24 15:25 ` Chen Gang
2016-01-11 13:03 ` Riku Voipio
1 sibling, 2 replies; 5+ messages in thread
From: Laurent Vivier @ 2015-12-24 9:54 UTC (permalink / raw)
To: riku.voipio, Chen Gang; +Cc: peter.maydell, qemu-devel, rth
Le 24/12/2015 02:07, chengang@emindsoft.com.cn a écrit :
> From: Chen Gang <chengang@emindsoft.com.cn>
>
> In this case, real_end is larger than end, which may cause mmap_frag
> process the incorrect memory region.
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> linux-user/mmap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 7b459d5..57b0361 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
> /* handle the end of the mapping */
> if (end < real_end) {
> ret = mmap_frag(real_end - qemu_host_page_size,
> - real_end - qemu_host_page_size, real_end,
> + real_end - qemu_host_page_size, end,
> prot, flags, fd,
> offset + real_end - qemu_host_page_size - start);
> if (ret == -1)
>
The fragment must effectively be mapped only to "end" not to "real_end"
(which is a host page aligned address, and thus this is not a fragment).
It is consistent with what it is done in the case of one single page.
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
2015-12-24 9:54 ` Laurent Vivier
@ 2015-12-24 15:25 ` Chen Gang
2016-01-11 13:03 ` Riku Voipio
1 sibling, 0 replies; 5+ messages in thread
From: Chen Gang @ 2015-12-24 15:25 UTC (permalink / raw)
To: Laurent Vivier, riku.voipio, Chen Gang; +Cc: peter.maydell, qemu-devel, rth
On 12/24/15 17:54, Laurent Vivier wrote:
>
> Le 24/12/2015 02:07, chengang@emindsoft.com.cn a écrit :
>> From: Chen Gang <chengang@emindsoft.com.cn>
>>
>> In this case, real_end is larger than end, which may cause mmap_frag
>> process the incorrect memory region.
>>
>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>> ---
>> linux-user/mmap.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
>> index 7b459d5..57b0361 100644
>> --- a/linux-user/mmap.c
>> +++ b/linux-user/mmap.c
>> @@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
>> /* handle the end of the mapping */
>> if (end < real_end) {
>> ret = mmap_frag(real_end - qemu_host_page_size,
>> - real_end - qemu_host_page_size, real_end,
>> + real_end - qemu_host_page_size, end,
>> prot, flags, fd,
>> offset + real_end - qemu_host_page_size - start);
>> if (ret == -1)
>>
>
> The fragment must effectively be mapped only to "end" not to "real_end"
> (which is a host page aligned address, and thus this is not a fragment).
> It is consistent with what it is done in the case of one single page.
>
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Thank you for your comments. I only met this issue, and knew it should
be fixed in this way, but really don't know the related details.
Thanks.
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
2015-12-24 9:54 ` Laurent Vivier
2015-12-24 15:25 ` Chen Gang
@ 2016-01-11 13:03 ` Riku Voipio
1 sibling, 0 replies; 5+ messages in thread
From: Riku Voipio @ 2016-01-11 13:03 UTC (permalink / raw)
To: Laurent Vivier; +Cc: peter.maydell, rth, Chen Gang, qemu-devel
On torstaina 24. joulukuuta 2015 11.54.09 EET, Laurent Vivier wrote:
>
> Le 24/12/2015 02:07, chengang@emindsoft.com.cn a écrit :
>> From: Chen Gang <chengang@emindsoft.com.cn>
>>
>> In this case, real_end is larger than end, which may cause mmap_frag
>> process the incorrect memory region.
>>
>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>> --- ...
>
> The fragment must effectively be mapped only to "end" not to "real_end"
> (which is a host page aligned address, and thus this is not a fragment).
> It is consistent with what it is done in the case of one single page.
>
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Applied with changing the patch comment to Laurent's explanation.
Riku
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-11 13:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-24 1:07 [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap chengang
2015-12-24 1:21 ` Chen Gang
2015-12-24 9:54 ` Laurent Vivier
2015-12-24 15:25 ` Chen Gang
2016-01-11 13:03 ` Riku Voipio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).