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. > > | So I don't think we should drop this warning completely. > | Either let's add the nvdimm magic, or simply check the > | page size. > > A: > | Check the page size sounds good, will check: > | if (pagesize != getpagesize()) { > | ...print something... > |} > > | I agree with you that showing the info is needed, however, > | 'Warning' might scare some users, how about drop this word or > | just show “Memory is not allocated from HugeTlbfs”? With "warning:", I know it may be OK to do what I am doing and the software is just trying to warn me. If there's no "warning:", I don't even know if something is really broken in my config, or if it's just a warning, and I would be very confused. -- Eduardo -- 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