Displaying 6 results from an estimated 6 matches for "reserve_top".
2007 Apr 18
3
[patch] paravirt: VDSO page is essential
...nd disagree
with this patch.
VDSO is only a problem if (1) the hypervisor wants to reserve the top
virtual address space (CONFIG_PARAVIRT=y), and (2) the glibc is old and
can't handle a VDSO mapped anywhere but 0xFFFFE000
(CONFIG_COMPAT_VDSO=y).
Now, KVM wants to use CONFIG_PARAVIRT=y but not reserve_top_address(),
so we should split the config option. Let's not get too excited because
we kept it simple. Patch (untested, but fairly simple) below.
BTW, I had a patch to do a runtime test (old glibc causes init to
assert, then disable vdso and try again): everyone hated it.
Signed-off-by: Rust...
2007 Apr 18
3
[patch] paravirt: VDSO page is essential
...nd disagree
with this patch.
VDSO is only a problem if (1) the hypervisor wants to reserve the top
virtual address space (CONFIG_PARAVIRT=y), and (2) the glibc is old and
can't handle a VDSO mapped anywhere but 0xFFFFE000
(CONFIG_COMPAT_VDSO=y).
Now, KVM wants to use CONFIG_PARAVIRT=y but not reserve_top_address(),
so we should split the config option. Let's not get too excited because
we kept it simple. Patch (untested, but fairly simple) below.
BTW, I had a patch to do a runtime test (old glibc causes init to
assert, then disable vdso and try again): everyone hated it.
Signed-off-by: Rust...
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 07/13] lguest64 loader
...ecific data. */
+ void *priv;
+};
+
+static char buf[1024];
+static struct iovec discard_iov = { .iov_base=buf, .iov_len=sizeof(buf) };
+static int zero_fd;
+
+/* LGUEST_GUEST_TOP defined in Makefile, just below us.
+ FIXME: vdso gets mapped just under it, and we need to protect that. */
+#define RESERVE_TOP LGUEST_GUEST_TOP - 1024*1024
+
+static u32 memparse(const char *ptr)
+{
+ char *end;
+ unsigned long ret = strtoul(ptr, &end, 0);
+
+ switch (*end) {
+ case 'G':
+ case 'g':
+ ret <<= 10;
+ case 'M':
+ case 'm':
+ ret <<= 10;
+ case 'K':
+ c...
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 07/13] lguest64 loader
...ecific data. */
+ void *priv;
+};
+
+static char buf[1024];
+static struct iovec discard_iov = { .iov_base=buf, .iov_len=sizeof(buf) };
+static int zero_fd;
+
+/* LGUEST_GUEST_TOP defined in Makefile, just below us.
+ FIXME: vdso gets mapped just under it, and we need to protect that. */
+#define RESERVE_TOP LGUEST_GUEST_TOP - 1024*1024
+
+static u32 memparse(const char *ptr)
+{
+ char *end;
+ unsigned long ret = strtoul(ptr, &end, 0);
+
+ switch (*end) {
+ case 'G':
+ case 'g':
+ ret <<= 10;
+ case 'M':
+ case 'm':
+ ret <<= 10;
+ case 'K':
+ c...
2007 Apr 18
1
[PATCH 0/2] Use a single loader for i386 and x86_64
...ruct device *me);
+ unsigned long (*handle_output)(int fd, const struct iovec *iov,
+ unsigned int num, struct device *me);
/* Device-specific data. */
void *priv;
@@ -78,7 +89,7 @@ static int zero_fd;
FIXME: vdso gets mapped just under it, and we need to protect that. */
#define RESERVE_TOP LGUEST_GUEST_TOP - 1024*1024
-static u32 memparse(const char *ptr)
+static unsigned long memparse(const char *ptr)
{
char *end;
unsigned long ret = strtoul(ptr, &end, 0);
@@ -142,8 +153,8 @@ static void map_memory(unsigned long mem
err(1, "Mmaping /dev/zero for %li bytes", m...
2007 Apr 18
1
[PATCH 0/2] Use a single loader for i386 and x86_64
...ruct device *me);
+ unsigned long (*handle_output)(int fd, const struct iovec *iov,
+ unsigned int num, struct device *me);
/* Device-specific data. */
void *priv;
@@ -78,7 +89,7 @@ static int zero_fd;
FIXME: vdso gets mapped just under it, and we need to protect that. */
#define RESERVE_TOP LGUEST_GUEST_TOP - 1024*1024
-static u32 memparse(const char *ptr)
+static unsigned long memparse(const char *ptr)
{
char *end;
unsigned long ret = strtoul(ptr, &end, 0);
@@ -142,8 +153,8 @@ static void map_memory(unsigned long mem
err(1, "Mmaping /dev/zero for %li bytes", m...