* [Qemu-devel] Re: qemu 0.7.1 + dkms-qvm86-0.7.1 (mandriva 2005 / cooker) produces version mismatch
@ 2005-08-29 16:56 Hannes Fuchs
2005-08-29 18:05 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Francois Rioux
0 siblings, 1 reply; 16+ messages in thread
From: Hannes Fuchs @ 2005-08-29 16:56 UTC (permalink / raw)
To: qemu-devel
Hello,
Thanks for your help.
## From: Gwenole Beauchesne <gbeauchesne@mandriva.com>
## Actually also make sure you don't have a stale qvm86 module already
prior
to the dkms'ed variant from MDK. e.g. one you manually built and placed
in
a more prioritized location than the output of dkms builds.
There were no stale qvm86 or kqemu modules, I removed everthing (rpm ,
src, modules) before new tries.
##From: Pascal Terjan <pterjan@gmail.com>
## do you use the same package version of qemu and dkms-qvm86 ?
Yes, I downloaded the correct/same cooker versions.
## And anyway running cooker packages on stable version is not a good
idea.
## Please rebuild the rpm on 2005 or use the version from
## http://fasmz.org/~pterjan/rpm/10.2/
It looks like an incompatibility of 2005 and cooker qemu/qvm86 packages.
Now I installed pterjan's qemu and kqemu module which works great!
The pjertan's qvm86 module makes errors on installing so I switched to
kqemu.
Again, thank you.
Regards,
Hannes
BTW: I installed successfully following in qemu windows xp, windows 2000
professional, windows 2000 server and centos 4 with scalix community
groupware server.
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-29 16:56 [Qemu-devel] Re: qemu 0.7.1 + dkms-qvm86-0.7.1 (mandriva 2005 / cooker) produces version mismatch Hannes Fuchs
@ 2005-08-29 18:05 ` Francois Rioux
2005-08-29 18:53 ` John R. Hogerhuis
2005-08-29 22:01 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Jim C. Brown
0 siblings, 2 replies; 16+ messages in thread
From: Francois Rioux @ 2005-08-29 18:05 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]
The KQEMU doc mentions setting QEMU_TMPDIR to a ramdisk for increased performances under KQEMU which saves the memory image of the guest OS.
I'm running XP Pro as the Host with qemu version 0.7.1-3 which includes KQEMU (I can see it is enabled with 'info kqemu'.)
I've added 'set QEMU_TMPDIR=c:\tmp' to my qemu launch script. However I can't see that file. The folder is empty no matter how I look at it. I know the doc says the file is hidden but shouldn't I see it if I 'dir c:/tmp /AH'? Also Properties of that folder show no files, no size.
Where is that hidden file? And how can I move it to a ram drive in Windows?
I notice that QEMU is quite slower than VMWare. Apparently due to the way IO occur. What are the strategies to enhance that performance? Does anyone knows if the current patches apply to Windows builds?
Thanks for your help.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
[-- Attachment #2: Type: text/html, Size: 1094 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-29 18:05 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Francois Rioux
@ 2005-08-29 18:53 ` John R. Hogerhuis
2005-08-29 21:59 ` Jim C. Brown
2005-08-29 22:01 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Jim C. Brown
1 sibling, 1 reply; 16+ messages in thread
From: John R. Hogerhuis @ 2005-08-29 18:53 UTC (permalink / raw)
To: qemu-devel
On Mon, 2005-08-29 at 11:05 -0700, Francois Rioux wrote:
> I notice that QEMU is quite slower than VMWare.
It certainly is.
> Apparently due to the way IO occur. What are the strategies to
> enhance that performance?
Curious, why do you think that? There are probably a whole host of
reasons that VmWare is faster, IO devices are only one part of the
picture.
The more interesting place for optimizations is on the dynamic code
generation. VmWare is a virtualizer while QEMU employs a default
strategy of dynamically generating direct (I think) threaded code. So
the way to achieve improved speed is to improve the dynamic code
generator.
KQEMU presumably does this on X86 by inlining more of the original code
with minimal changes (i.e more tokens containing bigger swaths of native
code, and less simple instruction emulation tokens), so performance will
be more like what you could expect from a virtualizer. KQEMU is not open
source though, so if you want to fiddle with that, you probably would
have to do it on qvm86.
As to IO, one thought is to run a Windows X server (such as the free one
that comes with Cygwin) natively on the host rather than under
emulation. Do testing with tuntap networking. User-net networking is
slow, Slirp code could certainly stand some bugfixes and optimizations.
There are different tricks you can do to improve the experience. For
example, avoid booting your virtual images from scratch. Boot to
desktop, and savevm. Then in the future, boot straight off the savevm,
it is much faster that way.
-- John.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-29 18:53 ` John R. Hogerhuis
@ 2005-08-29 21:59 ` Jim C. Brown
2005-08-30 7:29 ` [Qemu-devel] qemu optimization John R. Hogerhuis
0 siblings, 1 reply; 16+ messages in thread
From: Jim C. Brown @ 2005-08-29 21:59 UTC (permalink / raw)
To: jhoger, qemu-devel
On Mon, Aug 29, 2005 at 11:53:26AM -0700, John R. Hogerhuis wrote:
> On Mon, 2005-08-29 at 11:05 -0700, Francois Rioux wrote:
>
> KQEMU presumably does this on X86 by inlining more of the original code
> with minimal changes (i.e more tokens containing bigger swaths of native
> code, and less simple instruction emulation tokens), so performance will
> be more like what you could expect from a virtualizer. KQEMU is not open
> source though, so if you want to fiddle with that, you probably would
> have to do it on qvm86.
>
Um, KQEMU/qvm86 don't do dynamic translation. They are virtualizers. They run
the code given to them (more or less) unchanged. They are simpler than VMware
because they only virtualize a subset of code (they dont support virtualizing
kernel code), so qemu still does translation for the code which cant be
virtualized (and in addition, switches become slightly more expensive due to
needing to convert register state between kernel and user code).
Without them, there is no native code run by qemu - everything is translated.
--
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-29 18:05 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Francois Rioux
2005-08-29 18:53 ` John R. Hogerhuis
@ 2005-08-29 22:01 ` Jim C. Brown
2005-08-30 3:45 ` Francois Rioux
1 sibling, 1 reply; 16+ messages in thread
From: Jim C. Brown @ 2005-08-29 22:01 UTC (permalink / raw)
To: qemu-devel
On Mon, Aug 29, 2005 at 11:05:05AM -0700, Francois Rioux wrote:
>
> The KQEMU doc mentions setting QEMU_TMPDIR to a ramdisk for increased performances under KQEMU which saves the memory image of the guest OS.
>
> I'm running XP Pro as the Host with qemu version 0.7.1-3 which includes KQEMU (I can see it is enabled with 'info kqemu'.)
>
> I've added 'set QEMU_TMPDIR=c:\tmp' to my qemu launch script. However I can't see that file. The folder is empty no matter how I look at it. I know the doc says the file is hidden but shouldn't I see it if I 'dir c:/tmp /AH'? Also Properties of that folder show no files, no size.
>
> Where is that hidden file? And how can I move it to a ram drive in Windows?
>
IIUC this is a reference to shmfs. So this doesn't apply to KQEMU on Windows
hosts. I'm not an expert on the Windows versions tho, so I'm not 100% sure of
this.
--
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-29 22:01 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Jim C. Brown
@ 2005-08-30 3:45 ` Francois Rioux
2005-08-30 9:08 ` Filip Navara
0 siblings, 1 reply; 16+ messages in thread
From: Francois Rioux @ 2005-08-30 3:45 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1888 bytes --]
Thank you folks for the insights.
I know everyone with the knowledge in made magic to come with the current QEMU and you're working on enhancements. I'm unfortunately unable to help with that. I couldn't even make my own build for on Windows!
That said, I'm curioux and looking for out of the bag tricks until the next release.
This QEMU is fun to use and the accelerator makes it finally usable.
Ramdisk might have been a real performance accelerator for Windows hosts with enough RAM available. Since I can't find the temp memory image file is saved, I can't use that option.
Any other hint would help.
Regards,
Francois
"Jim C. Brown" <jma5@umd.edu> wrote:
On Mon, Aug 29, 2005 at 11:05:05AM -0700, Francois Rioux wrote:
>
> The KQEMU doc mentions setting QEMU_TMPDIR to a ramdisk for increased performances under KQEMU which saves the memory image of the guest OS.
>
> I'm running XP Pro as the Host with qemu version 0.7.1-3 which includes KQEMU (I can see it is enabled with 'info kqemu'.)
>
> I've added 'set QEMU_TMPDIR=c:\tmp' to my qemu launch script. However I can't see that file. The folder is empty no matter how I look at it. I know the doc says the file is hidden but shouldn't I see it if I 'dir c:/tmp /AH'? Also Properties of that folder show no files, no size.
>
> Where is that hidden file? And how can I move it to a ram drive in Windows?
>
IIUC this is a reference to shmfs. So this doesn't apply to KQEMU on Windows
hosts. I'm not an expert on the Windows versions tho, so I'm not 100% sure of
this.
--
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel
---------------------------------
Start your day with Yahoo! - make it your home page
[-- Attachment #2: Type: text/html, Size: 2430 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Qemu-devel] qemu optimization
2005-08-29 21:59 ` Jim C. Brown
@ 2005-08-30 7:29 ` John R. Hogerhuis
2005-08-30 11:17 ` Paul Brook
0 siblings, 1 reply; 16+ messages in thread
From: John R. Hogerhuis @ 2005-08-30 7:29 UTC (permalink / raw)
To: qemu-devel, Jim C. Brown
On Mon, 2005-08-29 at 17:59 -0400, Jim C. Brown wrote:
> Um, KQEMU/qvm86 don't do dynamic translation. They are virtualizers. They run
> the code given to them (more or less) unchanged.
Sorry, I was speaking more generally (and imprecisely) about the
qemu/kqemu as a combination. As you state below, there is still dynamic
translation going on, just not by the kqemu or qvm86 modules.
(snip)
>
> Without them, there is no native code run by qemu - everything is translated.
>
Yep. But even in that situation, there will always be room for
improvement in how the dynamic code generator works.
I wonder, has anyone tried doing a peephole optimizer? Translate key
instruction sequences to macro instructions? There have got to be a few
such high-traffic sequences that run all the time in Windows or Linux
that could be implemented in the dynamically generated dynamic code
generator.
The most difficult part of the analysis would be to find such sequences
for interesting guest OSs and applications. I think the implementation
part would be pretty straightforward. You would have to take a hit
computing a hash the first time through a translation block so that you
could match up the block with the macroinstructions.
Actually if GCC is around on the machine, it could even be done
automatically. Put QEMU into a maintenance mode, and it would start to
collect statistics about the translation blocks. You do your normal work
on the guest machine for a little bit, maybe do a few processor
intensive things that typically take too much time.. Then tell QEMU to
stop collecting data. It looks at the translation blocks, and finds the
top ten most popular translation blocks. It generates a little C file
with the macro instructions in it, compiles it with gcc and generates a
extension to the code generator tailored to the particular guest
environment.
I guess it's an open question whether handing gcc instruction primitives
globbed together into into macroinstrucions will provide much benefit.
Depends on how smart gcc is, I guess.
-- John.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-30 3:45 ` Francois Rioux
@ 2005-08-30 9:08 ` Filip Navara
2005-08-30 13:42 ` Francois Rioux
0 siblings, 1 reply; 16+ messages in thread
From: Filip Navara @ 2005-08-30 9:08 UTC (permalink / raw)
To: qemu-devel
Francois Rioux wrote:
[snip]
> Ramdisk might have been a real performance accelerator for Windows
> hosts with enough RAM available. Since I can't find the temp memory
> image file is saved, I can't use that option.
Why do you think that it would improve performance? Sorry, but that's
complete rubbish... The guest RAM is allocated using standard virtual
memory functions and as long as you have enough memory the system will
probably leave it in the physical RAM anyway... If you don't, it's
swapped out to page file. This is much more versatile solution since you
don't have to reserve a chunk of the RAM for a disk and _permanently_
waste your memory resources this way...
>
>
> */"Jim C. Brown" <jma5@umd.edu>/* wrote:
[snip]
> IIUC this is a reference to shmfs. So this doesn't apply to KQEMU
> on Windows
> hosts. I'm not an expert on the Windows versions tho, so I'm not
> 100% sure of
> this.
>
Correct.
- Filip
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] qemu optimization
2005-08-30 7:29 ` [Qemu-devel] qemu optimization John R. Hogerhuis
@ 2005-08-30 11:17 ` Paul Brook
2005-08-30 18:05 ` John R. Hogerhuis
0 siblings, 1 reply; 16+ messages in thread
From: Paul Brook @ 2005-08-30 11:17 UTC (permalink / raw)
To: qemu-devel, jhoger
> > Without them, there is no native code run by qemu - everything is
> > translated.
>
> Yep. But even in that situation, there will always be room for
> improvement in how the dynamic code generator works.
>
> I wonder, has anyone tried doing a peephole optimizer? Translate key
> instruction sequences to macro instructions? There have got to be a few
> such high-traffic sequences that run all the time in Windows or Linux
> that could be implemented in the dynamically generated dynamic code
> generator.
You might want to look at my hand-coded backed for qemu. The intention is that
this will eventually replace dyngen/gcc altogether. Currently everything
except the experimental m68k target uses a mixture of the old and the
micro-ops.
One of the differences is that most of the semantics and guest CPU state
accesses are explicit, so it should be possible to use conventional
optimisation techniques (including peepholes).
Source and patches can be found at
https://nowt.dyndns.org
As proof-of-concept I also implemented a simple register propagation pass, and
got a 15% speedup on the nbench benchmark.
Paul
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-30 9:08 ` Filip Navara
@ 2005-08-30 13:42 ` Francois Rioux
2005-08-30 14:02 ` Paul Brook
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Francois Rioux @ 2005-08-30 13:42 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 2810 bytes --]
Filip,
I'm not trying to put the guest in ram. As you state, let's Windows manage its whole memory, paging and swapping. I agree it would be as dumb as setting up a ramdisk to put the swapfile. Let's not trying to outsmart the OS.
I was trying to follow Fabrice recommendation to set the QEMU temp directory to a RAM disk while using kqemu:
"When using KQEMU, QEMU will create a big hidden file containing the RAM of the virtual machine. For best performance, it is important that this file is kept in RAM and not on the hard disk. QEMU uses the `/dev/shm' directory to create this file because tmpfs is usually mounted on it (check with the shell command df). Otherwise `/tmp' is used as fallback. You can use the QEMU_TMPDIR shell variable to set a new directory for the QEMU RAM file. " (excerpt from his 'kqemu-doc.html' file).
I (maybe incorrectly) interpreted that as setting the temp dir in RAM. But I'm not that familiar with Linux and I don't know what /shm or tmpfs are. I guessed they were 'virtual' storage devices in RAM. I'm simply trying to mimic that under Windows. Had I been right, using a RAM disk to store the 'big hidden file containing the RAM of the virtual machine' would not be useless given enough ram is available, would it? But I can't find that file at all under Windows and my understanding of the whole situation is probably wrong, or at least part of it.
Reading your other posts in this forum I understand you have an deep knowledge of Linux, Windows and QEMU insights so I take from your answer that RAMDISK is not gonna help kqemu.
Regards,
Francois
Filip Navara <navaraf@reactos.com> wrote:
Francois Rioux wrote:
[snip]
> Ramdisk might have been a real performance accelerator for Windows
> hosts with enough RAM available. Since I can't find the temp memory
> image file is saved, I can't use that option.
Why do you think that it would improve performance? Sorry, but that's
complete rubbish... The guest RAM is allocated using standard virtual
memory functions and as long as you have enough memory the system will
probably leave it in the physical RAM anyway... If you don't, it's
swapped out to page file. This is much more versatile solution since you
don't have to reserve a chunk of the RAM for a disk and _permanently_
waste your memory resources this way...
>
>
> */"Jim C. Brown" /* wrote:
[snip]
> IIUC this is a reference to shmfs. So this doesn't apply to KQEMU
> on Windows
> hosts. I'm not an expert on the Windows versions tho, so I'm not
> 100% sure of
> this.
>
Correct.
- Filip
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel
---------------------------------
Start your day with Yahoo! - make it your home page
[-- Attachment #2: Type: text/html, Size: 3477 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-30 13:42 ` Francois Rioux
@ 2005-08-30 14:02 ` Paul Brook
2005-09-03 13:51 ` ace
2005-09-03 14:48 ` Filip Navara
2 siblings, 0 replies; 16+ messages in thread
From: Paul Brook @ 2005-08-30 14:02 UTC (permalink / raw)
To: qemu-devel
> "When using KQEMU, QEMU will create a big hidden file containing the RAM of
> the virtual machine. For best performance, it is important that this file
> is kept in RAM and not on the hard disk. QEMU uses the `/dev/shm' directory
> to create this file because tmpfs is usually mounted on it (check with the
> shell command df). Otherwise `/tmp' is used as fallback. You can use the
> QEMU_TMPDIR shell variable to set a new directory for the QEMU RAM file. "
> (excerpt from his 'kqemu-doc.html' file).
Your mistake was assuming that this paragraph applies to the windows version
of kqemu. It seems that it only applies to the linux (and maybe bsd) version.
Paul
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] qemu optimization
2005-08-30 11:17 ` Paul Brook
@ 2005-08-30 18:05 ` John R. Hogerhuis
2005-08-30 18:30 ` Paul Brook
0 siblings, 1 reply; 16+ messages in thread
From: John R. Hogerhuis @ 2005-08-30 18:05 UTC (permalink / raw)
To: Paul Brook; +Cc: qemu-devel
On Tue, 2005-08-30 at 12:17 +0100, Paul Brook wrote:
> You might want to look at my hand-coded backed for qemu. The intention is that
> this will eventually replace dyngen/gcc altogether. Currently everything
> except the experimental m68k target uses a mixture of the old and the
> micro-ops.
>
Handwritten code generators are definitely the future for QEMU, at least
where virtualization doesn't make sense (host and guest CPU don't match,
or when you don't have root or admin access to the host).
> One of the differences is that most of the semantics and guest CPU state
> accesses are explicit, so it should be possible to use conventional
> optimisation techniques (including peepholes).
>
> Source and patches can be found at
> https://nowt.dyndns.org
>
> As proof-of-concept I also implemented a simple register propagation pass, and
> got a 15% speedup on the nbench benchmark.
>
> Paul
>
>
I just downloaded the patched tree off your page. Tried to build it
(./configure && make) compiling on Debian GNU/Linux, gcc version 3.3 but
no-workey.
Any idea what I'm doing wrong (I haven't given it a hard look yet)?
(last line of build, let me know if you need more).
gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -I.
-I/home/john/projects/qemu/target-mips -I/home/john/projects/qemu
-I/home/john/projects/qemu/host-i386 -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-I/home/john/projects/qemu/fpu -I/home/john/projects/qemu/slirp -c -o
translate-all.o /home/john/projects/qemu/translate-all.c
/home/john/projects/qemu/translate-all.c: In function
`cpu_restore_state':
/home/john/projects/qemu/translate-all.c:1496: error: `CC_OP_DYNAMIC'
undeclared (first use in this function)
/home/john/projects/qemu/translate-all.c:1496: error: (Each undeclared
identifier is reported only once
/home/john/projects/qemu/translate-all.c:1496: error: for each function
it appears in.)
/home/john/projects/qemu/translate-all.c:1497: error: structure has no
member named `cc_op'
make[1]: *** [translate-all.o] Error 1
make[1]: Leaving directory `/home/john/projects/qemu/mips-softmmu'
make: *** [all] Error 1
~/projects/qemu :(
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] qemu optimization
2005-08-30 18:05 ` John R. Hogerhuis
@ 2005-08-30 18:30 ` Paul Brook
0 siblings, 0 replies; 16+ messages in thread
From: Paul Brook @ 2005-08-30 18:30 UTC (permalink / raw)
To: qemu-devel, jhoger
> I just downloaded the patched tree off your page. Tried to build it
> (./configure && make) compiling on Debian GNU/Linux, gcc version 3.3 but
> no-workey.
> Any idea what I'm doing wrong (I haven't given it a hard look yet)?
Fixed.
Paul
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-30 13:42 ` Francois Rioux
2005-08-30 14:02 ` Paul Brook
@ 2005-09-03 13:51 ` ace
2005-09-03 17:35 ` Doctor Bill
2005-09-03 14:48 ` Filip Navara
2 siblings, 1 reply; 16+ messages in thread
From: ace @ 2005-09-03 13:51 UTC (permalink / raw)
To: qemu-devel
Hi.
Two points for you:
1. currently your tempfile with qemu quest system memory is located on
disk. Is your disk working hard? If you have enough free ram that you
consider the ramdisk, the whole file is probably cached in host system
memory so that read/write access is fast. Of course there it will be
flushed to disk, but probably asynchronously and not every time anything
in the file changes (depends on windows filesystem settings). So it
probably doesn't slow qemu down too much. I think if you have the ram,
the ramdisk surelly will help, but I don't know by how much. I can test
that.
2. you say you can't see the temporary file. Neither do I, on linux. I
suspect it is not hidden using plain filesystem attributes. On linux, if
you open a file and then delete (unlink) it, you can still work with it
until you hold the file descriptor. Only when you close the file, it is
removed from disk. But as soon as you unlink it, all referrences to it
are removed from the filesystem hierarchy. Therefore, no other program
(e.g. dir, ls) except the filesystem kernel driver knows about it. You
see no file, but something is still using up disk space (if you use
programs to show free disk space). Maybe Windows supports this too.
Peter
Francois Rioux wrote:
> Filip,
>
> I'm not trying to put the guest in ram. As you state, let's Windows
> manage its whole memory, paging and swapping. I agree it would be as
> dumb as setting up a ramdisk to put the swapfile. Let's not trying to
> outsmart the OS.
>
> I was trying to follow Fabrice recommendation to set the QEMU temp
> directory to a RAM disk while using kqemu:
>
> "When using KQEMU, QEMU will create a big hidden file containing the RAM
> of the virtual machine. For best performance, it is important that this
> file is kept in RAM and not on the hard disk. QEMU uses the `/dev/shm'
> directory to create this file because |tmpfs| is usually mounted on it
> (check with the shell command |df|). Otherwise `/tmp' is used as
> fallback. You can use the QEMU_TMPDIR shell variable to set a new
> directory for the QEMU RAM file. " (excerpt from his 'kqemu-doc.html' file).
>
> I (maybe incorrectly) interpreted that as setting the temp dir in RAM.
> But I'm not that familiar with Linux and I don't know what /shm or tmpfs
> are. I guessed they were 'virtual' storage devices in RAM. I'm simply
> trying to mimic that under Windows. Had I been right, using a RAM disk
> to store the 'big hidden file containing the RAM of the virtual machine'
> would not be useless given enough ram is available, would it? But I
> can't find that file at all under Windows and my understanding of the
> whole situation is probably wrong, or at least part of it.
>
> Reading your other posts in this forum I understand you have an deep
> knowledge of Linux, Windows and QEMU insights so I take from your answer
> that RAMDISK is not gonna help kqemu.
>
> Regards,
>
> Francois
>
> */Filip Navara <navaraf@reactos.com>/* wrote:
>
> Francois Rioux wrote:
> [snip]
>
> > Ramdisk might have been a real performance accelerator for Windows
> > hosts with enough RAM available. Since I can't find the temp memory
> > image file is saved, I can't use that option.
>
> Why do you think that it would improve performance? Sorry, but that's
> complete rubbish... The guest RAM is allocated using standard virtual
> memory functions and as long as you have enough memory the system will
> probably leave it in the physical RAM anyway... If you don't, it's
> swapped out to page file. This is much more versatile solution since
> you
> don't have to reserve a chunk of the RAM for a disk and _permanently_
> waste your memory resources this way...
>
> >
> >
> > */"Jim C. Brown" /* wrote:
>
> [snip]
>
> > IIUC this is a reference to shmfs. So this doesn't apply to KQEMU
> > on Windows
> > hosts. I'm not an expert on the Windows versions tho, so I'm not
> > 100% sure of
> > this.
> >
> Correct.
>
> - Filip
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
> ------------------------------------------------------------------------
> Start your day with Yahoo! - make it your home page
> <http://us.rd.yahoo.com/evt=34442/*http://www.yahoo.com/r/hs>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-08-30 13:42 ` Francois Rioux
2005-08-30 14:02 ` Paul Brook
2005-09-03 13:51 ` ace
@ 2005-09-03 14:48 ` Filip Navara
2 siblings, 0 replies; 16+ messages in thread
From: Filip Navara @ 2005-09-03 14:48 UTC (permalink / raw)
To: qemu-devel
Francois Rioux wrote:
> Filip,
>
> I'm not trying to put the guest in ram. As you state, let's Windows
> manage its whole memory, paging and swapping. I agree it would be as
> dumb as setting up a ramdisk to put the swapfile. Let's not trying to
> outsmart the OS.
There's slight misunderstaning there. What I'm saying is that on
QEMU/Windows there's no "big hidden file containing the RAM of the
virtual machine", it's simply stored in the host RAM (and the host OS
can decide to page out parts of it to disk - to pagefile.sys, or
whatever is setup - but it may not do so if you have enough physical
memory available).
On other platforms where QEMU runs there's the famous "big hidden file
containing the RAM of the virtual machine" and it's mapped into memory
and used as the storage of guest RAM. Whenever the OS decides the
in-memory contents are synced with the on-disk file. Actually I don't
understand the benefits of putting it on real ramdisk (...but /dev/shm,
or actually TMPFS is not *REAL RAMDISK* since it grows and shrink based
on the contents and the pages can be be swapped out ... so in a way it
does the same thing as we accomplish on Windows with pure virtual memory
allocation).
Maybe I haven't explained the details correctly (and I'm not exactly
sure about them on the *nix side of things), but the point is that no
such file containing the guest RAM is present on Windows.
- Filip
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows.
2005-09-03 13:51 ` ace
@ 2005-09-03 17:35 ` Doctor Bill
0 siblings, 0 replies; 16+ messages in thread
From: Doctor Bill @ 2005-09-03 17:35 UTC (permalink / raw)
To: qemu-devel
On 9/3/05, ace <acelists@atlas.sk> wrote:
> Hi.
> 2. you say you can't see the temporary file. Neither do I, on linux. I
> suspect it is not hidden using plain filesystem attributes. On linux, if
> you open a file and then delete (unlink) it, you can still work with it
> until you hold the file descriptor. Only when you close the file, it is
> removed from disk. But as soon as you unlink it, all referrences to it
> are removed from the filesystem hierarchy. Therefore, no other program
> (e.g. dir, ls) except the filesystem kernel driver knows about it. You
> see no file, but something is still using up disk space (if you use
> programs to show free disk space). Maybe Windows supports this too.
98% correct. In linux you can still access open unlinked files from
other processes if you know the process id and fileno. A link is
maintained in the proc filesystem. Some consider this a security
hole, others consider it a very useful feature.
Bill
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2005-09-03 17:54 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-29 16:56 [Qemu-devel] Re: qemu 0.7.1 + dkms-qvm86-0.7.1 (mandriva 2005 / cooker) produces version mismatch Hannes Fuchs
2005-08-29 18:05 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Francois Rioux
2005-08-29 18:53 ` John R. Hogerhuis
2005-08-29 21:59 ` Jim C. Brown
2005-08-30 7:29 ` [Qemu-devel] qemu optimization John R. Hogerhuis
2005-08-30 11:17 ` Paul Brook
2005-08-30 18:05 ` John R. Hogerhuis
2005-08-30 18:30 ` Paul Brook
2005-08-29 22:01 ` [Qemu-devel] QEMU_TMPDIR temp folder for KQEMU for Windows Jim C. Brown
2005-08-30 3:45 ` Francois Rioux
2005-08-30 9:08 ` Filip Navara
2005-08-30 13:42 ` Francois Rioux
2005-08-30 14:02 ` Paul Brook
2005-09-03 13:51 ` ace
2005-09-03 17:35 ` Doctor Bill
2005-09-03 14:48 ` Filip Navara
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).