* [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).