[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] - return error when appropriate from increase_memory_reservation



This patch fixes a case in increasing a memory reservation where you
do not get the pages nor do you get an error.  While an argument might
be made that checking the page count independently is workable, it
does seem reasonable to have the operation return a failure in the
cases where it doesn't do what was asked. Right now, it mostly returns
the correct status.  This patch just adds another instance of this.

And, while-I-was-there, I've been generating linker maps for qemu in
my own builds. It's harmless, until you need it and then it's valuable.
Tweak the Makefile to create the map.

Signed-off-by:  Ben Thomas (ben@xxxxxxxxxxxxxxx)

--
------------------------------------------------------------------------
Ben Thomas                                         Virtual Iron Software
bthomas@xxxxxxxxxxxxxxx                            Tower 1, Floor 2
978-849-1214                                       900 Chelmsford Street
                                                   Lowell, MA 01851
--- a/tools/ioemu/target-i386-dm/Makefile       Fri Apr 14 14:31:13 2006 -0400
+++ b/tools/ioemu/target-i386-dm/Makefile       Thu Apr 20 13:56:56 2006 -0400
@@ -323,7 +323,7 @@ endif
 endif
 
 $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
-       $(CC) $(CFLAGS) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VNC_LIBS) 
$(VL_LIBS) -lpthread
+       $(CC) $(CFLAGS) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VNC_LIBS) 
$(VL_LIBS) -lpthread -Wl,-Map,qemu-dm.map -Wl,--cref
 
 vnc.o: vnc.c keyboard_rdesktop.c
        $(CC) $(CFLAGS) $(DEFINES) $(VNC_CFLAGS) -c -o $@ $<
diff -r 487f5e5c0fbd xen/common/memory.c
--- a/xen/common/memory.c       Fri Apr 14 14:31:13 2006 -0400
+++ b/xen/common/memory.c       Thu Apr 20 13:56:56 2006 -0400
@@ -348,6 +348,9 @@ long do_memory_op(unsigned long cmd, GUE
             break;
         }
 
+        if (rc < reservation.nr_extents && !preempted)
+            return -ENOMEM;
+ 
         if ( unlikely(reservation.domid != DOMID_SELF) )
             put_domain(d);
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.