On 11/04/2015 08:40 PM, Eduardo Habkost wrote:
On Wed, Nov 04, 2015 at 11:12:41AM +0800, Xiao Guangrong wrote:
On 11/04/2015 07:00 AM, Eduardo Habkost wrote:
On Mon, Nov 02, 2015 at 05:13:10PM +0800, Xiao Guangrong wrote:
Currently file_ram_alloc() is designed for hugetlbfs, however, the memory
of nvdimm can come from either raw pmem device eg, /dev/pmem, or the file
locates at DAX enabled filesystem
So this patch let it work on any kind of path
Signed-off-by: Xiao Guangrong <guangrong.xiao@xxxxxxxxxxxxxxx>
---
exec.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/exec.c b/exec.c
index 9de38be..9075f4d 100644
--- a/exec.c
+++ b/exec.c
@@ -1184,25 +1184,25 @@ static void *file_ram_alloc(RAMBlock *block,
char *c;
void *area;
int fd;
- uint64_t hpagesize;
+ uint64_t pagesize;
Error *local_err = NULL;
- hpagesize = qemu_file_get_page_size(path, &local_err);
+ pagesize = qemu_file_get_page_size(path, &local_err);
if (local_err) {
error_propagate(errp, local_err);
goto error;
}
- if (hpagesize == getpagesize()) {
- fprintf(stderr, "Warning: path not on HugeTLBFS: %s\n", path);
+ if (pagesize == getpagesize()) {
+ fprintf(stderr, "Memory is not allocated from HugeTlbfs.\n");
If the point of this patch is to allow file_ram_alloc() to not be
specific to hugetlbfs anymore, this warning can simply go away.
(And in case if you really want to keep the warning, I don't see the
point of the changes you made to it.)
This is the history why we did it like this:
https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg02862.html
The rule I am trying to follow is simple: if there are valid use cases
(e.g. nvdimm, tmpfs) where the warning will be printed every single time
QEMU runs, the warning is not appropriate.
If you really want to keep a warning, please make it not be printed on
all other valid use cases (nvdimm and tmpfs). Personally, I don't think
adding those additional checks would be worth the trouble, that's why I
suggest removing the warning.
Q:
| What this *actually* is trying to warn against is that
| mapping a regular file (as opposed to hugetlbfs)
| means transparent huge pages don't work.
I don't think the author of that warning even thought about transparent
huge pages (did THP even existed when it was written?). I believe they
just assumed that the only reason for using -mem-path would be hugetlbfs
and wanted to warn about it. That assumption isn't true anymore.
Michael, your idea?
If Michael will not beat me, i will drop this. :)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html