Displaying 20 results from an estimated 28 matches for "lguest_regs".
2007 Apr 18
1
[PATCH] lguest32 kallsyms backtrace of guest.
...->dead) \
(lg)->dead = (void *)1; \
@@ -248,5 +251,11 @@ static inline unsigned long guest_pa(str
{
return vaddr - lg->page_offset;
}
+
+/* lguest_debug.c */
+void lguest_print_address(struct lguest *lg, unsigned long address);
+void lguest_dump_trace(struct lguest *lg, struct lguest_regs *regs);
+void lguest_dump_lg_regs(struct lguest *lg);
+
#endif /* __ASSEMBLY__ */
#endif /* _LGUEST_H */
Index: linux-2.6.21-rc5-mm2/drivers/lguest/lguest.c
===================================================================
--- linux-2.6.21-rc5-mm2.orig/drivers/lguest/lguest.c
+++ linux-2.6.21-r...
2007 Apr 18
1
[PATCH] lguest32 kallsyms backtrace of guest.
...->dead) \
(lg)->dead = (void *)1; \
@@ -248,5 +251,11 @@ static inline unsigned long guest_pa(str
{
return vaddr - lg->page_offset;
}
+
+/* lguest_debug.c */
+void lguest_print_address(struct lguest *lg, unsigned long address);
+void lguest_dump_trace(struct lguest *lg, struct lguest_regs *regs);
+void lguest_dump_lg_regs(struct lguest *lg);
+
#endif /* __ASSEMBLY__ */
#endif /* _LGUEST_H */
Index: linux-2.6.21-rc5-mm2/drivers/lguest/lguest.c
===================================================================
--- linux-2.6.21-rc5-mm2.orig/drivers/lguest/lguest.c
+++ linux-2.6.21-r...
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 05/13] asm-offsets update
...;
+ ENTRY(nmi_gs_d);
+ ENTRY(nmi_gs_shadow_a);
+ ENTRY(nmi_gs_shadow_d);
+ ENTRY(nmi_stack_end);
+ ENTRY(nmi_gdt);
+ ENTRY(nmi_sw);
+#undef ENTRY
+#define ENTRY(entry) DEFINE(LGUEST_DATA_##entry, offsetof(struct lguest_data, entry))
+ ENTRY(irq_enabled);
+#undef ENTRY
+#define ENTRY(entry) DEFINE(LGUEST_REGS_##entry, offsetof(struct lguest_regs, entry))
+ ENTRY(errcode);
+ ENTRY(rip);
+ ENTRY(size);
+ BLANK();
+#endif
return 0;
}
--
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 05/13] asm-offsets update
...;
+ ENTRY(nmi_gs_d);
+ ENTRY(nmi_gs_shadow_a);
+ ENTRY(nmi_gs_shadow_d);
+ ENTRY(nmi_stack_end);
+ ENTRY(nmi_gdt);
+ ENTRY(nmi_sw);
+#undef ENTRY
+#define ENTRY(entry) DEFINE(LGUEST_DATA_##entry, offsetof(struct lguest_data, entry))
+ ENTRY(irq_enabled);
+#undef ENTRY
+#define ENTRY(entry) DEFINE(LGUEST_REGS_##entry, offsetof(struct lguest_regs, entry))
+ ENTRY(errcode);
+ ENTRY(rip);
+ ENTRY(size);
+ BLANK();
+#endif
return 0;
}
--
2007 May 09
2
[PATCH 0/2 v05] lguest: TSC & hrtimers
The following patches are the latest update of the TSC and hrtimer patches
I posted on 29/03.
Rusty's original TSC patch has been resynced to the latest lguest repo,
as has the hrtimer patch, which also incorporates feedback from Jeremy &
Rusty:
- Change clock event hrtimer to absolute time. 'now' is captured in the
host during the hypercall.
- Propagate -ETIME back to the
2007 May 09
2
[PATCH 0/2 v05] lguest: TSC & hrtimers
The following patches are the latest update of the TSC and hrtimer patches
I posted on 29/03.
Rusty's original TSC patch has been resynced to the latest lguest repo,
as has the hrtimer patch, which also incorporates feedback from Jeremy &
Rusty:
- Change clock event hrtimer to absolute time. 'now' is captured in the
host during the hypercall.
- Propagate -ETIME back to the
2007 May 02
3
[RELEASE] Lguest for 2.6.21
Hi all,
Lguest is a simple hypervisor which runs Linux under Linux, without
needing VT hardware.
Two people asked if I had a version of lguest which worked on
other-than-bleeding-edge-mm kernels, so I did a backport of the latest
version to 2.6.21.
http://lguest.ozlabs.org/lguest-2.6.21-254.patch.gz
See Documentation/lguest/lguest.txt for how to run,
drivers/lguest/README for the draft code
2007 May 02
3
[RELEASE] Lguest for 2.6.21
Hi all,
Lguest is a simple hypervisor which runs Linux under Linux, without
needing VT hardware.
Two people asked if I had a version of lguest which worked on
other-than-bleeding-edge-mm kernels, so I did a backport of the latest
version to 2.6.21.
http://lguest.ozlabs.org/lguest-2.6.21-254.patch.gz
See Documentation/lguest/lguest.txt for how to run,
drivers/lguest/README for the draft code
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 04/13] Useful debugging
...lock_irqrestore(&lgdebug_print_lock, flags);
+}
+
+void lgdebug_print(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (!lguest_debug)
+ return;
+
+ /* irq save? */
+ va_start(ap, fmt);
+ lgdebug_vprint(fmt, ap);
+ va_end(ap);
+}
+
+void lguest_dump_vcpu_regs(struct lguest_vcpu *vcpu)
+{
+ struct lguest_regs *regs = &vcpu->regs;
+
+ printk("Printing VCPU %d regs cr3: %016llx\n", vcpu->id, regs->cr3);
+ printk("RIP: %04llx: ", regs->cs & 0xffff);
+ lguest_print_address(vcpu, regs->rip);
+ printk("RSP: %04llx:%016llx EFLAGS: %08llx\n", regs->ss, re...
2007 Apr 18
0
[RFC/PATCH LGUEST X86_64 04/13] Useful debugging
...lock_irqrestore(&lgdebug_print_lock, flags);
+}
+
+void lgdebug_print(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (!lguest_debug)
+ return;
+
+ /* irq save? */
+ va_start(ap, fmt);
+ lgdebug_vprint(fmt, ap);
+ va_end(ap);
+}
+
+void lguest_dump_vcpu_regs(struct lguest_vcpu *vcpu)
+{
+ struct lguest_regs *regs = &vcpu->regs;
+
+ printk("Printing VCPU %d regs cr3: %016llx\n", vcpu->id, regs->cr3);
+ printk("RIP: %04llx: ", regs->cs & 0xffff);
+ lguest_print_address(vcpu, regs->rip);
+ printk("RSP: %04llx:%016llx EFLAGS: %08llx\n", regs->ss, re...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...quot;r" (sw_guest)
+ : "memory", "cc");
+}
+
+/* FIXME: don't know yet the right parameters to put here */
+int run_guest(struct lguest_vcpu *vcpu, char *__user user)
+{
+ struct lguest_guest_info *linfo = vcpu->guest;
+ struct desc_struct *gdt_table;
+ struct lguest_regs *regs = &vcpu->regs;
+ int ret;
+
+ unsigned long cr2 = 0;
+
+ while (!linfo->dead) {
+
+ if (regs->trapnum == LGUEST_TRAP_ENTRY) {
+
+ if (lguest_debug) {
+ printk("hit trap %lld rip=", regs->trapnum);
+ lguest_print_address(vcpu, regs->rip);
+ printk("...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...quot;r" (sw_guest)
+ : "memory", "cc");
+}
+
+/* FIXME: don't know yet the right parameters to put here */
+int run_guest(struct lguest_vcpu *vcpu, char *__user user)
+{
+ struct lguest_guest_info *linfo = vcpu->guest;
+ struct desc_struct *gdt_table;
+ struct lguest_regs *regs = &vcpu->regs;
+ int ret;
+
+ unsigned long cr2 = 0;
+
+ while (!linfo->dead) {
+
+ if (regs->trapnum == LGUEST_TRAP_ENTRY) {
+
+ if (lguest_debug) {
+ printk("hit trap %lld rip=", regs->trapnum);
+ lguest_print_address(vcpu, regs->rip);
+ printk("...
2007 May 09
1
[patch 3/9] lguest: the host code
...Boston, MA 02110-1301 USA
+*/
+#include <linux/uaccess.h>
+#include <linux/syscalls.h>
+#include <linux/mm.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <irq_vectors.h>
+#include "lg.h"
+
+static void do_hcall(struct lguest *lg, struct lguest_regs *regs)
+{
+ switch (regs->eax) {
+ case LHCALL_FLUSH_ASYNC:
+ break;
+ case LHCALL_LGUEST_INIT:
+ kill_guest(lg, "already have lguest_data");
+ break;
+ case LHCALL_CRASH: {
+ char msg[128];
+ lgread(lg, msg, regs->edx, sizeof(msg));
+ msg[sizeof(msg)-1] = '\0';
+ kil...
2007 May 09
1
[patch 3/9] lguest: the host code
...Boston, MA 02110-1301 USA
+*/
+#include <linux/uaccess.h>
+#include <linux/syscalls.h>
+#include <linux/mm.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <irq_vectors.h>
+#include "lg.h"
+
+static void do_hcall(struct lguest *lg, struct lguest_regs *regs)
+{
+ switch (regs->eax) {
+ case LHCALL_FLUSH_ASYNC:
+ break;
+ case LHCALL_LGUEST_INIT:
+ kill_guest(lg, "already have lguest_data");
+ break;
+ case LHCALL_CRASH: {
+ char msg[128];
+ lgread(lg, msg, regs->edx, sizeof(msg));
+ msg[sizeof(msg)-1] = '\0';
+ kil...
2007 May 14
5
[PATCH 1/6] lguest: host code tidyups
...%u@%#x", dma->len[i], dma->addr[i]);
+ kill_guest(lg, "bad DMA entry: %u@%#lx", dma->len[i], dma->addr[i]);
return 0;
}
===================================================================
--- a/drivers/lguest/lg.h
+++ b/drivers/lguest/lg.h
@@ -25,18 +25,18 @@ struct lguest_regs
struct lguest_regs
{
/* Manually saved part. */
- u32 ebx, ecx, edx;
- u32 esi, edi, ebp;
- u32 gs;
- u32 eax;
- u32 fs, ds, es;
- u32 trapnum, errcode;
+ unsigned long ebx, ecx, edx;
+ unsigned long esi, edi, ebp;
+ unsigned long gs;
+ unsigned long eax;
+ unsigned long fs, ds, es;
+ unsigned...
2007 May 14
5
[PATCH 1/6] lguest: host code tidyups
...%u@%#x", dma->len[i], dma->addr[i]);
+ kill_guest(lg, "bad DMA entry: %u@%#lx", dma->len[i], dma->addr[i]);
return 0;
}
===================================================================
--- a/drivers/lguest/lg.h
+++ b/drivers/lguest/lg.h
@@ -25,18 +25,18 @@ struct lguest_regs
struct lguest_regs
{
/* Manually saved part. */
- u32 ebx, ecx, edx;
- u32 esi, edi, ebp;
- u32 gs;
- u32 eax;
- u32 fs, ds, es;
- u32 trapnum, errcode;
+ unsigned long ebx, ecx, edx;
+ unsigned long esi, edi, ebp;
+ unsigned long gs;
+ unsigned long eax;
+ unsigned long fs, ds, es;
+ unsigned...
2007 Apr 18
1
[PATCH] lguest: clean up some l"references .init.text" warnings
Thanks to Andrew for pointing these out.
This patch moves the parvirtprobe section into .init.data: it's only
used in very very early boot, and for similar reasons, puts
lguest_maybe_init and lguest_memory_setup in init.text.
As well as fixing some warnings, this frees up a tiny bit more memory.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r ecec388180b2
2007 Apr 18
1
[PATCH] lguest: clean up some l"references .init.text" warnings
Thanks to Andrew for pointing these out.
This patch moves the parvirtprobe section into .init.data: it's only
used in very very early boot, and for similar reasons, puts
lguest_maybe_init and lguest_memory_setup in init.text.
As well as fixing some warnings, this frees up a tiny bit more memory.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r ecec388180b2
2007 May 04
1
[PATCH 1/3] Documentation and example updates
1) Example code: old libc headers don't have SIOCBRADDIF, and old zlibs
don't have gzdirect() -- it's a sanity check anyway.
2) Some people don't build in their source directories, so .config
isn't there (thanks to Tony Breeds <tony@bakeyournoodle.com>).
3) Point out that guest and host kernel are usually the same.
4) Set the "no checksum" option on the
2007 May 04
1
[PATCH 1/3] Documentation and example updates
1) Example code: old libc headers don't have SIOCBRADDIF, and old zlibs
don't have gzdirect() -- it's a sanity check anyway.
2) Some people don't build in their source directories, so .config
isn't there (thanks to Tony Breeds <tony@bakeyournoodle.com>).
3) Point out that guest and host kernel are usually the same.
4) Set the "no checksum" option on the